February 23, 1999

YOUR FIRST CRACK (A tutorial for beginners)

By:  Phantom_Stranger

Target:  ZoomPlus.exe (www.download.com) or 
(member.tripod.com/~Abject_Darkness/zoomps13.zip)

Tools:  W32DSM89.exe, Hedit.exe (or any decent hex editor), and a base 
coverter (if needed)

I downloaded this program from www.download.com (I've found it to be 
ripe with the fruits of shareware).  The reason I chose this program was 
for none other than that it was small (60K).  Me being lazy today, I 
didn't want thousands of pages of assembly code to wade through.

After I unzipped ZoomPlus, I ran the executable.  Right away it asks for 
the registration key or click on Evaluate to, of course, evaluate the 
program.  I entered a bogus key and clicked on Register.  An error box 
with "Invalid registration number." popped up.  Now I had a definite 
string value to look for.

I then ran W32DSM89.exe and disassembled ZoomPlus.exe.  I clicked on the 
Strn Ref button, located the "Invalid registration number." string and 
double-clicked on it.  Which took me to this code segment:

*Possible Reference to String Resource ID=32795: "Invalid registration 
number."

:0040428D 681B800000     push 0000801B

I worked my way up the code to see what jumps referenced this code 
segment.  About ten lines up, I find the reference:

*Referenced by a (U)nconditional or (C)onditional Jump at Addresses:
|:00404243(C), :0040425F(C), :00404266(C)

I move up to these addresses and find:

*Reference To:USER32.GetWindowTextA, Ord:015Eh

:0040423B FF159C924000   Call dword ptr [0040929C]
:00404241 85C0           test eax, eax      ;tests if the text field is 
empty
:00404243 7431           je 00404276        ;if so, jump to error
:00404245 8D450C         lea eax, dword ptr [ebp+0C]
:00404248 6A0A           push 0000000A
:0040424A 50             push eax
:0040424B 8D85E0FEFFFF   lea eax, dword ptr [ebp+FFFFFEE0]
:00404251 50             push eax
:00404252 E83C120000     call 00405493
:00404257 83C40C         add esp, 0000000C
:0040425A 3DA0F69500     cmp eax, 0095F6A0  ;compares your key to lowest 
possible key minus one
:0040425F 7E15           jle 00404276       ;if lower than or equal to, 
jump to error
:00404261 3DE00F9700     cmp eax, 00970FE0  ;compares your key to 
highest possible key plus one
:00404266 7D0E           jge 00404276       ;if greater than or equal 
to, jump to error 
:00404268 A34CBB4000     mov dword ptr [0040BB4C]
:0040426D 56             push esi

So, I fired up my trusty base converter and entered for hex - 0095F6A0.  
This gave me a decimal value of 9828000.  Then I entered 00970FE0.  This 
gave me a decimal value of 9900000.  After scribbling down these values, 
I exited W32DSM89 and started ZoomPlus.  Now I know that any number 
lower than or equal to 9828000 and any number above or equal to 9900000 
will give me an error.  So, I enter 9828001 for my registration number 
and it worked!  ZoomPlus.exe is now registered with no patching.

Now, anyone may download ZoomPlus from www.download.com somewhere under 
the utilities section and follow this tutorial for further insight into 
cracking (especially beginners).  But, trust me, there's no greater 
feeling than cracking your first program without the help of any tutorial.

Well, hopefully, this will be useful to someone out there or at least it 
can be a laugh to more experienced crackers when they see how easy it 
was to pop this program's cherry.  Either way, it really doesn't make 
any difference to me.  Peace out.

Phantom_Stranger

