|
Winsplit 3.03
|
|
|
| Subject: Cracking Target: Winsplit 3.03 Author: BlackB Date: 1999-03-06 Tools used: Softice, W32DSM89, HIEW 6.01 Difficulty (scale 1-5): 2 Requirements: A bit more knowledge then basic stuff |
|
This essay is for knowledge purposes only!! Software developers spend much time in making their programs. They live from the money we give them! Please buy good software!! |
| I. Introduction |
| Here I am....again! I 've written quite some tuts the past weeks of programs I cracked. Probably coz I'm becomming better and better (hehehehe) :p Actually I should study some more.....but argh(!), what boring stuff we see in school. I'm convinced ur thinking the same :) They'd better drop some fuckin' boring lessons, and replace it with informatics or something. Btw, we have absolutely NO informatics......and that suxx very very badly! However, I'm here to show u how I cracked Winsplit 3.03......so where r u waiting for? huh? ;) |
| II. About the protection |
About the protection: 30 trial uses and a nag screen. There 's a registering option included, but as I am not so good at sniffing serials out, I almost always use the 'dead listing' (i.e. disassembling in w32dsm) approach. |
| III. Cracking it |
Okay, let's start......with disabling the "30 trial uses". First of all:
disassemble Winsplit.exe and save the disassembly text file.
Now, run Winsplit a few times. Notice that every time you start Winsplit,
de counter will decrease with 1. When all trial uses are used (hehe), the
following message is visible: "Sorry, your trial period of WinSplit has now
ended." Interesting.....let's search for this text in w32dsm and yes, you
should see:
------------------------Start of paritial code-------------------------------
* Referenced by a (U)nconditional or (C)onditional Jump at Address:
|:004425BF(C) <- Aha, this procedure is called by 004425BF :-)
|
:004425FA 6A00 push 00000000
:004425FC 668B0D64264400 mov cx, word ptr [00442664]
:00442603 B201 mov dl, 01
* Possible StringData Ref from Code Obj ->"Sorry, your trial period of WinSplit "
->"has now ended."
------------------------End of partial code----------------------------------
Nothing special here so, let's go to the call at 004425BF. U should see this:
------------------------Start of paritial code-------------------------------
* Referenced by a (U)nconditional or (C)onditional Jump at Address:
|:0044253F(C) <- procedure called at 0044253F
|
:004425B8 80BB2C02000000 cmp byte ptr [ebx+0000022C], 00
:004425BF 7539 jne 004425FA <- if end of trial then jump
------------------------End of partial code----------------------------------
Okay, we've got the jump, but if we just go 1 step higher, we'll save 1
jump. If u don't understand what I mean: don't bother, just go to code
location 0044253F.....our final destination :-))
------------------------Start of paritial code-------------------------------
:00442538 3200 xor al, byte ptr [eax]
:0044253A 0000 add byte ptr [eax], al
:0044253C 53 push ebx
:0044253D 6F outsd
:0044253F 667477 je 004425B8 <- if end of trial then jump
:00442541 61 popad
:00442542 7265 jb 004425A9
------------------------End of partial code----------------------------------
So, there we are :)) Just NOP the je 004425B8 instruction: trial disabled:)
Now there's still 1 enoying thing: the nag. If you press the OK button on the
nagscreen, the program starts. So we have to find where the program checks if
the OK button is pushed. Therefore I used Softice:
-Set a breakpoint on postmessage (=bpx postmessage).
-Start Winsplit
-Softice should pop
-Press CTRL-D twice.
-No press F10 until you get into an endless loop (u have to press quite some
time!)
-When ur in the endless loop, u should see:
00429AA9 test eax, eax
00429AAB jz 00429A6E <- jump if OK button is pressed
-Okay. The only thing we have to do now, is making a 'jmp' of the 'jz'.
-So go back to w32dsm and goto code location 00429AAB.
-There u see no 'jz' instruction but a 'je' instruction. That's normal:
Softice checks the Zero Flag, but actually that's the same as checking the
equality.
:00429AA0 8B45FC mov eax, dword ptr [ebp-04]
:00429AA3 8B8050010000 mov eax, dword ptr [eax+00000150]
:00429AA9 85C0 test eax, eax
:00429AAB 74C1 je 00429A6E <- the "OK" button check :)
:00429AAD 8945F8 mov dword ptr [ebp-08], eax
-Note the offset of the 'je 00429A6E' (that should be 28EAB)
-Open HIEW, load Winsplit.exe, press F4, press F3, press F5, type "28EAB",
press enter. Now u r at the 'je' instruction.
-Press F3 and type twice "90". Press F9 to save the changes:)
Now Winsplit thinks immediately that u pushed the OK button, so as a result
of that u won't see the nagscreen anymore. Winsplit is patched!
Note: Winsplit does still draw the nagscreen! It only disappears so fast u
won't see it! I know that crack is a little sloppy, but I had no time
figuring out how to prevent the nagscreen. My apologies!
|
| IV. In the end |
|
If u have any questions, comments, etc... mail me on cracking@softhome.net U can also visit my homepage at http://myplace.to.be/blackb. It's an anti- virus site....no cracking stuff. Thanks goto: +ORC, tKC, Qapla and all other fantastic tutorial writers who teached me cracking! :-) BlackB |
|
Essay written by The Blackbird © 1999-2000 This essay can be freely distributed/ published/ printed etc... as long as no modifications are made. |