Delphi - CrackMe og Keygen
|
|
|
- Lene Ibsen
- 9 år siden
- Visninger:
Transkript
1 Denne guide er oprindeligt udgivet på Eksperten.dk Delphi - CrackMe og Keygen Dette er min første artikel! :) Men jeg synes nu den er blevet meget god! :D Jeg giver et et eksempel på hvordan man kan lave registering på ens programmer... Så har du lavet et program, som du gerne vil have registering på så er chancen her! :) GoGo Skrevet den 04. Feb 2009 af mulbo I kategorien Programmering / Delphi Hejhej... I dag vil jeg fortælle om hvordan du kan lave et password beskytt af dit program Hvordan fungere en registerings form? 2. Vi starter med at lave CrackMe'en... altså selve Registreringen. 3. Vi laver keygen 4. Fuld Source 1. Hvordan fungere en registrerings form? Vi vil lave registrerings form... sådan at den tæller hvor mange bogstaver brugernes Username er... Derefter lave dem om til tal... Det gør vi med Ord();... Derefter vil hver tal(bogstav) blive ganget og plusset og bla bla... en masse gange... Så runder vi af... så der ikke er komma... Upti så har vi en kode... :D; Sådan fungere det i store træk... man kan også lave det på andre måder... men jeg synes den her er enklest Vi starter med at lave CrackMe'en... altså selve Registreringen. Du putter 2 edit boxe ind på en form... Name dem: EUser og EPassword Derefter put 2 buttons ind... Name dem: BCheck og BExit Så er vi ved at være klar til at kode :D Vi starter med at gøre sådan at man kun kan indtaste tal i EPassword... Det gør du ved at gå over i Events på din Obejct Inspector... dobbeltklik på OnKeyPress Skriv følge kode: procedure TForm1.EPasswordKeyPress(Ser: TObject; Key: Char); const nummer=['1','2','3','4','5','6','7','8','9','0',chr(vk_back)]; if not (key in nummer) then key:=#0;
2 Vi kan nu kun skrive tal og så slette (VK_BACK)... Så skal vi lige have lavet vores BExit button... Dobbeltklik på den (OnClick) Og skriv følge kode: procedure TForm1.BExitClick(Ser: TObject); Close; Går ud fra du ker kommando'en Close; ;) hvis ikke.. gæt selv hvad den gør ;) Så skal vi til at lave selve tjekket!.. Dobbeltklik på BCheck (OnClick) Jeg vil skrive source her og så forklare med kommentare... procedure TForm1.BCheckClick(Ser: TObject); userlength,i : integer; { Userlength = længede af EUser.Text. I bruger vi vores FOR løkke password,ipassword,ptmp : Exted; { Password = det password som bliver udregnet af computeren.. altså det rigtige password Ipassword = det password som brugeren indtaster Ptmp = Den iable vi bruger når vi udregner det rigtige password user : string; // det brugeren indtaster i username tmp : char; // tmp bruger vi som char... når vi skal lave bogstavet om til et tal. Begin // Begin? Hva tror i? :d if (length(euser.text) > 0) and (length(epassword.text) > 0) then { Hvis brugeren har skrevet noget user og password boxe.. user := EUser.text; // putter EUser.text ind I user iablen ipassword := StrToFloat(EPassword.text); { laver EPassword.text om til en float og putter ind I ipasword userlength := length(user); // Putter længe af user ind I userlength if (userlength >= 4) and (userlenth <= 20) then { hvis user er længere/= 4 og den er mindre/= 20 password := 0; // sætter password til 0 ;) for I := 1 to userl do // starter løkke tmp := user[i]; // laver temp char ptmp := Ord(tmp); // laver bogstavet om tilt al... og lægger det I ptmp ptmp := 5*ptmp*5*2*55*4477* /2-2; { her kan du redigere som du vil... det er her
3 passwordet bliver udregnet! password := Round(ptmp); // runder af hvis det fx. er 22,5 til 23 og hvis 22,3 til showmessage('brugernavn skal være 4-20 tegn'); // hvis brugernavet ikke 4-20 tegn.. if password = ipassword then showmessage('weeee sådan... du har nu låst programmet op!') // hvis det hele går godt! showmessage('forkert Registering! Prøv igen'); // hvis password forkert! showmessage('warning: ingen tekst skrevet'); // hvis ingen tekst skrevet! 3. Vi laver keygen Du laver en ny form.. der skal være 2 editboxes... EUser og EPassword Vi skal faktisk kun lave noget ved EUser Obejct Inspector > Events... > OnChange Regner med du fatter iden nu Hver gang man ændre i EUser kører den koden... Og afslutter med at lave output i EPassword EPassword.text := FloatToStr(password); Og skriv følge... procedure TForm1.EUserChange(Ser: TObject); userlength,i : integer; password,ipassword,ptmp,ptmp2 : Exted; user : string; tmp : char; if (length(euser1.text) > 0) and (length(epassword.text) > 0) then user := EUser.text; userl := length(user); if (userl >= 4) and (userl <= 20) then password := 0; for I := 1 to userl do tmp := user[i]; ptmp := Ord(tmp); ptmp := 5*ptmp*5*2*55*4477* /2-2; password := Round(ptmp);
4 EPassword.text := FloatToStr(password); EPassword.text := 'Password skal være 4-20 tegn!'; 4. Fuld Source: CrackMe unit Unit1; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls; type TForm1 = class(tform) EUser: TEdit; EPassword: TEdit; BCheck: TButton; Label1: TLabel; Label2: TLabel; BExit: TButton; procedure BCheckClick(Ser: TObject); procedure EPasswordKeyPress(Ser: TObject; Key: Char); procedure BExitClick(Ser: TObject); private { Private declarations public { Public declarations Form1: TForm1; implementation {$R *.dfm procedure TForm1.EPasswordKeyPress(Ser: TObject; Key: Char); const nummer=['1','2','3','4','5','6','7','8','9','0',chr(vk_back)]; if not (key in nummer) then key:=#0;
5 procedure TForm1.BCheckClick(Ser: TObject); userl,i : integer; password,ipassword,ptmp,ptmp2 : Exted; user : string; tmp : char; if (length(euser.text) > 0) and (length(epassword.text) > 0) then user := EUser.text; ipassword := StrToFloat(EPassword.text); userl := length(user); if (userl >= 4) and (userl <= 20) then password := 0; for I := 1 to userl do tmp := user[i]; ptmp := Ord(tmp); ptmp := 5*ptmp*5*2*55*4477* /2-2; password := Round(ptmp); showmessage('brugernavn skal være 4-20 tegn'); if password = ipassword then showmessage('weeee sådan... du har nu låst programmet op!') showmessage('forkert Registering! Prøv igen'); showmessage('warning... no text was registred!'); procedure TForm1.BExitClick(Ser: TObject); Close;. Keygen: unit Unit1; interface uses
6 Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls; type TForm1 = class(tform) EUser: TEdit; EPassword: TEdit; Label1: TLabel; Label2: TLabel; procedure EUserChange(Ser: TObject); procedure FormCreate(Ser: TObject); private { Private declarations public { Public declarations Form1: TForm1; implementation {$R *.dfm procedure TForm1.EUserChange(Ser: TObject); userl,i : integer; password,ipassword,ptmp,ptmp2 : Exted; user : string; tmp : char; if (length(edit1.text) > 0) and (length(edit2.text) > 0) then user := edit1.text; userl := length(user); if (userl >= 4) and (userl <= 20) then password := 0; for I := 1 to userl do tmp := user[i]; ptmp := Ord(tmp); ptmp := 5*ptmp*5*2*55*4477* /2-2; password := Round(ptmp); edit2.text := FloatToStr(password); edit2.text := 'Password shall be 4-20 char!'; procedure TForm1.FormCreate(Ser: TObject);
7 userl,i : integer; password,ptmp : Exted; user : string; tmp : char; user := edit1.text; userl := length(user); for I := 1 to userl do tmp := user[i]; ptmp := Ord(tmp); ptmp := 5*ptmp*5*2*55*4477* /2-2; password := Round(ptmp); edit2.text := FloatToStr(password);. Du må meget gerne skrive dine kommentare og evt. Fejl... (skal lige siges jeg 12 år gammel da jeg skrev den her artikel ;) Kommentar af snowball d. 10. Oct Idéen med artiklen er faktisk ganske god, men artiklen er ikke så godt skrevet. En meget stor fejl, er at koden du viser i BCheckClick for CrackMe (den med kommentarene), slet ikke er den samme kode som du senere viser under punkt 4 i din artikel. Koden kan faktisk slet ikke kompileres (det kan koden i punkt 4 dog)! Det bliver ikke meget bedre i din kode til EUserChange i punkt 3. Denne kode kan heller ikke kompileres og er igen heller ikke identisk med den kode du skriver i punkt 4, og hverken koden i punkt 3 eller 4 til keygen'en kan kompileres som den er skrevet her i artiklen. I begge tilfælde henviser du til iabler eller objekter som ikke findes - det ligner tastefejl, og så alligevel ikke. Koden indeholder også iabler der slet ikke bliver brugt, hvilket blot kan forvirre. En erfarren delphi programmør kan hurtigt rette fejlene, men fejlene skal ikke være der når du udgiver den et sted som Eksperten. Som sagt så er idéen med artiklen ganske god, men der er for mange fejl i din artikel. Prøv selv og følg dine egne henvisninger i denne artikel, og ret så de fejl der er i artiklen :) Kommentar af borrisholt d. 05. Jul God fin artikel... Den næste skal du arbejde lidt mere med :D Kommentar af mysitesolution d. 27. Jun For guds skyld, orden din kode ;) indryk osv. meget uoverskueligt :D Kommentar af stefmeister d. 29. Apr Meget god artikel... Lige til din første procedure, så istedet for at skrive: procedure TForm1.EPasswordKeyPress(Ser: TObject; Key: Char); const nummer=['1','2','3','4','5','6','7','8','9','0',chr(vk_back)];
8 if not (key in nummer) then key:=#0; så skriv procedure TForm1.EPasswordKeyPress(Ser: TObject; Key: Char); if not (Key in ['0'..'9',#08])then Key := #0; Det fylder ikke nær så meget. Kommentar af skriger d. 18. Jul fin Kommentar af over-load d. 18. Oct =) Kommentar af aqfi d. 27. May Go artikel du har lavet! ;-)
Undtagelseshåndtering i C#
Denne guide er oprindeligt udgivet på Eksperten.dk Undtagelseshåndtering i C# I modsætning til C++ kan man i C# ikke skrive et program uden undtagelseshåndtering, så derfor har jeg skrevet denne guide
Andreas Lauge V. Hansen klasse 3.3t Roskilde HTX
IT -Eksamen Andreas Lauge V. Hansen klasse 3.3t Roskilde HTX [Vælg en dato] Indhold Indledning... 2 Teori... 3 Hvorfor dette design... 4 Produktet... 4 Test og afprøvning... 9 Konklusion... 10 Indledning
6. Eventstyret programmering og Windows
6. Eventstyret programmering og Windows Indsigt i events og styresystemets rolle I det følgende skal vi se på en række mere tekniske ting vedrørende Delphi og Windows, nemlig hvordan programmer styres
Visual Basic for begyndere
Denne guide er oprindeligt udgivet på Eksperten.dk Visual Basic for begyndere I denne artikel vil jeg gennemgå Visual Basic (IKKE.NET / Visual Basic 2005 Express Edition) på et begynder-niveau. fed kursiv
Spil Master Mind. Indledning.
side 1 af 16 Indledning. Spillet som denne rapport beskriver, indgår i et større program, der er lavet som projekt i valgfaget programmering C på HTX i perioden 9/11-98 til 12/1-99. Spillet skal give de
//Udskriver System.out.println("Hej " + ditfornavn + " " + ditefternavn + "."); System.out.println("Du er " + dinalder + " aar gammel!
Denne guide er oprindeligt udgivet på Eksperten.dk Brugerinput i Java Denne her artikel gennemgår diverse ting ved brug af brugerinput i Java. Den starter med det simple og fortæller derefter skridt for
Database design for begyndere
Denne guide er oprindeligt udgivet på Eksperten.dk Database design for begyndere Denne artikel beskriver hvordan man kommer fra ide til database design. Den stopper inden normal former. Den forudsætter
Anvendelse af metoder - Programmering
Denne guide er oprindeligt udgivet på Eksperten.dk Anvendelse af metoder - Programmering En forhåbentlig rigtig god forklaring på hvad metoder er og hvordan de anvendes. Lidt om private og public, retur
Delphi og Databaser for begyndere
Denne guide er oprindeligt udgivet på Eksperten.dk Delphi og Databaser for begyndere Denne artikel handler om hvordan man udnytter noget af det bedste i Delphi: Dets gode muligheder for integrering med
Singleton pattern i Java
Denne guide er oprindeligt udgivet på Eksperten.dk Singleton pattern i Java Denne artikel beskriver Singleton pattern og implementation i Java. Den forudsætter kendskab til Java men ikke til Singleton.
I denne artikel vil du ved hjælp af arrays kunne afrunde et decimaltal til et helt tal.
Denne guide er oprindeligt udgivet på Eksperten.dk Afrund til helt tal I denne artikel vil du ved hjælp af arrays kunne afrunde et decimaltal til et helt tal. Skrevet den 03. Feb 2009 af tjomsen I kategorien
MS Visual Studio Basic 2010. En kort vejledning
Du kan hente programmet gratis her: MS Visual Studio Basic 2010 Express http://www.microsoft.com/visualstudio/eng/downloads#d-2010-express Tryk på Install Now og følg vejledningen. Indholdsfortegnelse
Dokumentation af programmering i Python 2.75
Dokumentation af programmering i Python 2.75 Af: Alexander Bergendorff Jeg vil i dette dokument, dokumentere det arbejde jeg har lavet i løbet opstarts forløbet i Programmering C. Jeg vil forsøge, så vidt
Hvad er Objekter - Programmering
Denne guide er oprindeligt udgivet på Eksperten.dk Hvad er Objekter - Programmering En rigtig god gennemgang af hvad objekter er! Hvordan de oprettes og anvendes! Det er helt klart til nybegyndere, som
RMI introduktion. Denne artikel beskriver Java RMI (Remtote Method Invocation).
Denne guide er oprindeligt udgivet på Eksperten.dk RMI introduktion Denne artikel beskriver Java RMI (Remtote Method Invocation). Den beskriver teorien bag RMI, viser et simpelt kode eksempel og forklarer
Listen over reserverede ord er meget lang, men de væsentligste vil jeg beskrive her i denne artikel:
Denne guide er oprindeligt udgivet på Eksperten.dk SQL og ASP En artikel omkring simpel SQL og hvordan disse opbygges, udformes og udføres, sådan at man kan få et brugbart resultat i ASP. Dette ligefra
Vejledning til at tjekke om du har sat manuel IP på din computer.
Indhold Vejledning til at, komme på nettet. (DANSK)... 2 Gælder alle systemer.... 2 Vejledning til at tjekke om du har sat manuel IP på din computer.... 2 Windows 7... 2 Windows Vista... 2 Windows XP...
Introduktion til funktioner, moduler og scopes i Python
Denne guide er oprindeligt udgivet på Eksperten.dk Introduktion til funktioner, moduler og scopes i Python Denne artikel er fortsættelsen af "I gang med Python", som blevet publiceret her på sitet for
Rumlige figurer. Matematik A og Programmering C - projekt
Rumlige figurer Matematik A og Programmering C - projekt Projektopgave bearbejdet af: Navn: Rami Kaddoura og Safa Sarac Fag: Matematik og Programmering Vejledere: Karl Bjarnason og Jørn Bendtsen Skole:
Threads i Java. Denne artikel giver en introduktion til threads i Java. Den beskriver hvad tråde er og forklarer hvordan de bruges i Java
Denne guide er oprindeligt udgivet på Eksperten.dk Threads i Java Denne artikel giver en introduktion til threads i Java. Den beskriver hvad tråde er og forklarer hvordan de bruges i Java Den forudsætter
Sådan skriver du artikler til Eksperten!
Denne guide er oprindeligt udgivet på Eksperten.dk Sådan skriver du artikler til Eksperten! Når du skriver artikler handler det om at få den ud til de rigtige personer, og vise den frem så den er let forståelig.
DANMARKS TEKNISKE UNIVERSITET
DANMARKS TEKNISKE UNIVERSITET Skriftlig prøve, 14. december 2018, 4 timer Side 1 af 18 Kursus navn: 02101 Indledende Programmering Kursus : 02101 Tilladte hjælpemidler: Ikke-digitale skriftlige hjælpemidler
Database tips. Den forudsætter lidt kendskab til SQL men er for mindre erfarne. Denne guide er oprindeligt udgivet på Eksperten.dk
Denne guide er oprindeligt udgivet på Eksperten.dk Database tips Denne artikel vil give nogle forskellige små praktiske råd om ting man skal tænke på når man arbejder med databaser og applikationer som
SQL for MySQL-begyndere
Denne guide er oprindeligt udgivet på Eksperten.dk SQL for MySQL-begyndere I denne artikel vil jeg prøve at beskrive MySQL på begynderniveau. SQL står for Structured Query Language, og er et sprog til
Programmering for begyndere Lektion 2. Opsamling mm
Lektion 2 Opsamling mm God tone Der er indlagt spørge sessioner Lektion 2 - Agenda Programmering for Lidt ændringer til teknikken, herunder hvordan du genser en lektion Lidt generelle tilbagemeldinger
#AlleKanKode. Lektion 2 - Konstanter og Variabler
#AlleKanKode Lektion 2 - Konstanter og Variabler Disclaimer / Ansvarsfraskrivelse Alt du deler og siger mm bliver optaget. Lad være med at dele privat oplysninger, adgangskoder, kreditkort oplysninger
Indledning. Hvorfor det forholder sig sådan har jeg en masse idéer om, men det bliver for meget at komme ind på her. God fornøjelse med læsningen.
Indledning...2 Variabler...13 Eksempel: 1...13 Eksempel 2:...13 Eksempel 3:...15 Eksempel 4:...16 Metoder...17 Metode (intet ind og intet ud)...17 Metode (tekst ind)...18 Metode (tekst ind og tekst ud)...19
Tagwall med Php & MySQL
Denne guide er oprindeligt udgivet på Eksperten.dk Tagwall med Php & MySQL Her laver vi en tagwall i Php & MySQL... jeg forklarer dog ikke så meget, men jeg håber du kan få det til at blive til en tagwall
Læringsprogram. Christian Hjortshøj, Bjarke Sørensen og Asger Hansen Vejleder: Karl G Bjarnason Fag: Programmering Klasse 3.4
Læringsprogram Christian Hjortshøj, Bjarke Sørensen og Asger Hansen Vejleder: Karl G Bjarnason Fag: Programmering Klasse 3.4 R o s k i l d e T e k n i s k e G y m n a s i u m Indholdsfortegnelse FORMÅL...
Videregående programmering i Java
Videregående programmering i Java Dag 6 Komponenter (og lidt Swing og MVC) Læsning: VP 4, evt. VP 6 Dette materiale er under Åben Dokumentlicens, se http://www.sslug.dk/linuxbog/licens.html Grafiske komponenter
Gem dine dokumenter i BON s Content Management System (CMS)
24. august 2007 Gem dine dokumenter i BON s Content Management System (CMS) INDHOLDSFORTEGNELSE 1. Indledning... 2 2. Se indholdet i dit Content Management System... 3 3. Tilgå dokumenterne i My Content
Program Dokumentation PC Software Skrevet af. Gruppen. Version 1.0
Program Dokumentation PC Software Skrevet af Gruppen. Version 1.0 Indholds fortegnelse 1. INDLEDNING...3 1.1. FORMÅL...3 1.2. REFERENCER...3 1.3. VERSIONSHISTORIE...3 1.4. DEFINITIONER...3 1.5. DOKUMENTATIONENS
Databaseadgang fra Java
Databaseadgang fra Java Grundlæggende Programmering med Projekt Peter Sestoft Fredag 2007-11-23 Relationsdatabasesystemer Der er mange databaseservere Microsoft Access del af Microsoft Office MySQL god,
Introduktion til TI-Interactive!
Introduktion til TI-Interactive! TI-Interactive! er et program, som befinder sig i grænseområdet mellem almindelig tekstbehandling, regneark og egentlige tunge matematikprogrammer. Man kan gøre mange af
DM507 Algoritmer og datastrukturer
DM507 Algoritmer og datastrukturer Forår 2019 Projekt, del I Institut for matematik og datalogi Syddansk Universitet 27. februar, 2019 Dette projekt udleveres i tre dele. Hver del har sin deadline, således
E-PAD Bluetooth hængelås E-PAD Bluetooth padlock E-PAD Bluetooth Vorhängeschloss
E-PAD Bluetooth hængelås E-PAD Bluetooth padlock E-PAD Bluetooth Vorhängeschloss Brugervejledning (side 2-6) Userguide (page 7-11) Bedienungsanleitung 1 - Hvordan forbinder du din E-PAD hængelås med din
Forskellige Java versioner
Denne guide er oprindeligt udgivet på Eksperten.dk Forskellige Java versioner Denne artikel beskriver lidt om de forskellige Java versioner. Den forklarer J2SE/J2ME/J2EE, plugin/jre/sdk og Sun Java/Microsoft
MySQL C API. Denne artikel beskriver hvordan man bruger MySQL C API. Der er beskrivelse af build med forskellige compilere.
Denne guide er oprindeligt udgivet på Eksperten.dk MySQL C API Denne artikel beskriver hvordan man bruger MySQL C API. Der er beskrivelse af build med forskellige compilere. Den forudsætter lidt kendskab
Introduktion til SQL queries
Denne guide er oprindeligt udgivet på Eksperten.dk Introduktion til SQL queries Denne artikel beskriver nogle forskellige muligheder i SQL queries. Eksemplerne skulle gerne være standard SQL og virke i
Web Admin 5.5. Brugsvejledning for User admin. Copyright 2003 Gullestrup.net
Web Admin 5.5 Copyright 2003 Gullestrup.net Log ind på systemet Start med at gå ind på http://mailadmin.gullestrup.net i din browser. Indtast din Email Adresse samt Password, som hører til din konto, tryk
Ekstra hastighed med array's i Excel-VBA
Denne guide er oprindeligt udgivet på Eksperten.dk Ekstra hastighed med array's i Excel-VBA Brugen af arrays til indlæsning af og skrivning til celler i Excel kan give betragtelige hastighedsforøgelser
Project Step 7. Behavioral modeling of a dual ported register set. 1/8/ L11 Project Step 5 Copyright Joanne DeGroat, ECE, OSU 1
Project Step 7 Behavioral modeling of a dual ported register set. Copyright 2006 - Joanne DeGroat, ECE, OSU 1 The register set Register set specifications 16 dual ported registers each with 16- bit words
Operation Manual SMS Air Conditioner Remote Controller Model No.: SR-001
Operation Manual SMS Air Conditioner Remote Controller Model No.: SR-001 Ls venligst denne instruktions manual igennem inden brug af produktet Thank you for purchasing our product. This smart unit is not
En Kort Introduktion til Oracle
En Kort Introduktion til Oracle Henrik Bulskov 12. februar 2001 [email protected] 1 Start SQL*Plus... 1 1.1 TELNET... 1 1.2 WINDOWS SQL PLUS... 2 2 Kør et SQL-script... 3 3 Hjælp i SQL*Plus... 3 4 Editering
Vejledning til SmartSignatur Proof Of Concept
Vejledning til SmartSignatur Proof Of Concept Version 0.9.1 15. marts 2013 Indhold Vejledning til SmartSignatur Proof Of Concept... 1 Hvad er en medarbejdersignatur... 3 Juridiske aspekter ved brug af
