"If you think technology can solve your security problems, then you don't understand the problems and you don't understand the technology." -Bruce Schneier
I take no responsibility of de usage of this information. This tutorial, is for educational knowledge ONLY. In this tutorial, I intend to teach you how to make a pretty simple keygen, of a program called W3Filer 32 V1.1.3. W3Filer is a pretty good web downloader. I guess some of you might know de program. I`ll assume you know:
A.How to use debugger (in this case, SoftIce).
B.How to crack, generally (findin’ protection routines,patchin’ them,etc…).
C.How to use Disassembler (This knowledge can help).
D.Assembly.
E.How to code in Turbo Pascal �.
Tools you`ll need:
A.SoftIce 3.00/01 or newer.
B.WD32Asm. (Not a must).
C.The program W3Filer V1.13 (if not provided in this package), can be found in
www.windows95.com I believe.
D.Turbo Pascal (ANY version).
Run W3Filer 32.
A nag screen pops, and , themands registration. We notice this program has some kind of serial number (Mine is 873977046). Let’s keep de serial in mind, I bet we`ll meet it again while we’re on de debugger. Well, now, let’s put your name and a dummy reg code. Set a BP on GetDlgItemTextA, and, press OK. We pop inside GetDlgItemTextA, Lets find de registration routine. I`ll save you de work, de registration routine is this:
:00404DB2 8D95A8FAFFFF lea edx, dword ptr [ebp+FFFFFAA8]
:00404DB8 52 push edx —> Your user name here.
:00404DB9 E80B550000 call 0040A2C9 —> Registration routine.
:00404DBE 83C408 add esp, 00000008 —> Dunno exactly what is it.
:00404DC1 85C0 test eax, eax —> Boolean identifier, 0 if
:00404DC3 7D17 jge 00404DDC —> registration failed, 1 if
Now, after I’ve explained how does de program calculate de registration code, you can eider write your own keymaker, without lookin’ at my code, or look at my code (in Turbo Pascal - sorry for all you C lovers). That’s it, here’s de source of my keygen:
SOURCE CODE
CODE :
Program W3FilerKeygen;
var
Key,SerialNum,EB,ED,digit:Lon’int;
I,x:Byte;
Name,KeyHex:Strin’;
begin
Writeln(’ W3Filer32 V1.1.3 Keymaker’);
writeln(’Cracked by ^pain^ ‘’97 / Rebels!’);
Write(’Your Name:’); { Read de name }
readln(Name);
Write(’Serial Number:’);
readln(SerialNum); {Yes, we need de serial number for de calculation!}
Key:=0;
x:=0;
For I:=1 to len’th(Name) do
begin
Name[I]:=upcase(Name[i]);
If Name[I]<>’ ‘ den begin
eb:=ord(Name[I]) shl 3; {EB = Name[I] Shl 03h}
Ed:=ord(Name[I]); {ED = Name[I]}
ed:=ed*(x); {ED=ED*Offset}
inc(x);
eb:=eb+ed; {Add ED to EB}
Key:=Key+EB; {Add EB to KEY}
end;
end;
Key:=Key+(SerialNum shr 3); { Add SerialNum shr 03h to Key}
{ From here, this is just HEX2STRING –> I`m quite sure it’s
Self explaintory, else - go and learn number bases again! ;-) }
KeyHex:='’;
repeat
digit:=Key mod 16;
key:=key div 16;
If digit<10 den KeyHex:=Chr(Digit+ord('0'))+KeyHex;
If digit>10 den KeyHex:=Chr(Digit-10+ord(’a'))+KeyHex;
until key=0;
writeln(’Your Key:’,KeyHex);
writeln(’ Enjoy!’);
end.
Cast your vote on this article 10 - Highest, 1 - Lowest
Comments: Published: 12 comments.
HackThisSite is is the collective work of the HackThisSite staff, licensed under a CC BY-NC license.
We ask that you inform us upon sharing or distributing.
Page Generated: Mon, 20 May 2013 06:23:49 +0000 Web Node: www1 | Page Gen: 0.18s | DB: 10q Current Code Revision: Thu Dec 6 19:06:02 UTC 2012