home *** CD-ROM | disk | FTP | other *** search
- r0m4n's Crackme 1
-
- Crack tutorial by snaik !
- welcome to my tutor !!
-
- Tools : Soft Ice 4.05 or any other .
- w32dasm 8.93 ; by the way version 8.94 is out check out .
- hiew 6.16
-
- Level : a two minute noodle .
-
- ---====NOTE====---
- the author says the crackme is packed but beleive me it is not .
-
- ----------------------------------------------------------------------------
- remark : the author of the crackme has not set any rulez , so i am going to
- find a serial , keygen it ,and patch it so that it can receive any serial .
- -----------------------------------------------------------------------------
-
- 1. Serial ;
- first of all i started the crackme and clicked on check .and surely an incorrect
- messagebox popped up .
- so i fired up softice and put the breakpoints
- bpx GetWindowTextA
- bpx GetDlgItemTextA
- return to the proggy and click on check .-==boom==- sice breaks .
- now press "F5" key .we return to the proggy .
- why didn't it break again ,doesn't it want our name and serial .but it returned
- an error box .so maybe that a check was done before breaking on getwindowtext .
- So get back to sice and disable the previous breakpoints "bd *" .
- now set another breakpoint " bpx hmemcpy ".
- and press "F5" .and then check .
- sice breaks again .
- now press F11 & F12 till you get to the proggy .
- since we are only interested in the serial let's F10 our way till we encounter
- a conditional jump .
-
- :0042CE2F 8B55FC mov edx, dword ptr [ebp-04] ; you land here
- :0042CE32 8BC3 mov eax, ebx
- :0042CE34 8B08 mov ecx, dword ptr [eax]
- :0042CE36 FF5118 call [ecx+18]
-
- * Possible StringData Ref from Code Obj ->"420"
- |
- :0042CE39 68C4CE4200 push 0042CEC4
-
- * Possible StringData Ref from Code Obj ->"C00L"
- |
- :0042CE41 68D0CE4200 push 0042CED0
- :0042CE46 B818F74200 mov eax, 0042F718
- :0042CE4B BA03000000 mov edx, 00000003
- :0042CE50 E82B6AFDFF call 00403880
- :0042CE55 8D45FC lea eax, dword ptr [ebp-04]
- :0042CE58 8B0D18F74200 mov ecx, dword ptr [0042F718]
-
- * Possible StringData Ref from Code Obj ->"Rc1-"
- |
- :0042CE5E 8B15C8E84200 mov edx, dword ptr [0042E8C8]
- :0042CE64 E8A369FDFF call 0040380C
- :0042CE69 8B55FC mov edx, dword ptr [ebp-04] ;;correct serial
- :0042CE6C A110F74200 mov eax, dword ptr [0042F710] ;;our bogus serial
- :0042CE71 E85A6AFDFF call 004038D0 ;;call to check the serial
- :0042CE76 7516 jne 0042CE8E ;;first conditional jump's
- ;;error message .
-
- * Possible StringData Ref from Code Obj ->"Good work, cracker!!!"
- |
- :0042CE78 B8E0CE4200 mov eax, 0042CEE0
-
- now do a " d edx " and the correct serial will be displayed in the data window .
-
- Name : Snaik
- Serial : Rc1-420SnaikC00L
-
- 2. keygen ;
- now as you can see above our serial and the correct are pushed ont to the stack .
- we will set a breakpoint at the location 0042CE71 .
- So clear all previous breakpoints and set another at location of the Call.
-
- After this i tried different names and clicked check and when sice popped .do a
- "d edx"
- this reveals the correct serial .
- the serial is in the format , Rc1-420UsernameC00L , the username is the name you
- type in the name box of the crackme .
- so for me it will be Rcl-420SnaikC00L .
- i think this explains the keygen part .
-
- 3.patching ;
- this is to allow us to enter any serial and still make the proggy think that it is
- a valid serial .
- this is very very simple .
- just disassemble the proggy in w32dasm , when its done click on string references
- and search for "Good work, cracker!!!".
- now doubleclick on it to go to the location .
-
- :0042CE64 E8A369FDFF call 0040380C
- :0042CE69 8B55FC mov edx, dword ptr [ebp-04] ;;correct serial
- :0042CE6C A110F74200 mov eax, dword ptr [0042F710] ;;our bogus serial
- :0042CE71 E85A6AFDFF call 004038D0 ;;call to check the serial
- :0042CE76 7516 jne 0042CE8E ;;first conditional jump's
- ;;error message .
-
- * Possible StringData Ref from Code Obj ->"Good work, cracker!!!"
- |
- :0042CE78 B8E0CE4200 mov eax, 0042CEE0
-
- now keep the green bar on 0042CE76 and note the offset given at the bottom .
- we get the offset 2c276 .
- we have to change the jump to a nop (90) statement .
- since we have to change two bytes ,we will change 7516 to 9090 .
-
- So open the proggy in Hiew , press enter twice to goto decode mode .press F5
- and enter 2c276 .
- press F3 and enter 9090 . press F9 to update .and exit hiew .
- now run the proggy and enter any serial you want and it will treat it with due
- respect .
-
-
- -------------------====================Last Note========================-------------------
- how did you like my tutor ,
- send your suggestions to s_naik1@yahoo.com
-
- btw i also have written a crackme and already posted it to http://crackmes.cjb.net
- since that page is not updated for a long time (since 4/12/2k) you can mail me to have
- the same .
-
-