home *** CD-ROM | disk | FTP | other *** search
/ KeyGen Studio 2002 / KeyGen_Studio_2002.iso / Tutorials / CrackMesCbjNet / snaik-roman1.txt < prev    next >
Encoding:
Text File  |  2001-09-21  |  5.2 KB  |  127 lines

  1. r0m4n's Crackme 1
  2.  
  3. Crack tutorial by snaik !
  4. welcome to my tutor !!
  5.  
  6. Tools : Soft Ice 4.05 or any other .
  7.     w32dasm 8.93  ; by the way version 8.94 is out check out .
  8.     hiew 6.16 
  9.        
  10. Level : a two minute noodle .
  11.  
  12. ---====NOTE====---
  13. the author says the crackme is packed but beleive me it is not .
  14.  
  15. ----------------------------------------------------------------------------
  16. remark : the author of the crackme has not set any rulez , so i am going to
  17. find a serial , keygen it ,and patch it so that it can receive any serial .
  18. -----------------------------------------------------------------------------
  19.  
  20. 1. Serial ;
  21. first of all i started the crackme and clicked on check .and surely an incorrect
  22. messagebox popped up .
  23. so i fired up softice and put the breakpoints  
  24. bpx GetWindowTextA
  25. bpx GetDlgItemTextA
  26. return to the proggy and click on check .-==boom==- sice breaks .
  27. now press "F5" key .we return to the proggy .
  28. why didn't it break again ,doesn't it want our name and serial .but it returned
  29. an error box .so maybe that a check was done before breaking on getwindowtext .
  30. So get back to sice and disable the previous breakpoints "bd *" .
  31. now set another breakpoint " bpx hmemcpy ".
  32. and press "F5" .and then check .
  33. sice breaks again .
  34. now press F11 & F12 till you get to the proggy .
  35. since we are only interested in the serial let's F10 our way till we encounter 
  36. a conditional jump .
  37.  
  38. :0042CE2F 8B55FC                  mov edx, dword ptr [ebp-04] ; you land here 
  39. :0042CE32 8BC3                    mov eax, ebx
  40. :0042CE34 8B08                    mov ecx, dword ptr [eax]
  41. :0042CE36 FF5118                  call [ecx+18]
  42.  
  43. * Possible StringData Ref from Code Obj ->"420"
  44.                                   |
  45. :0042CE39 68C4CE4200              push 0042CEC4
  46.  
  47. * Possible StringData Ref from Code Obj ->"C00L"
  48.                                   |
  49. :0042CE41 68D0CE4200              push 0042CED0
  50. :0042CE46 B818F74200              mov eax, 0042F718
  51. :0042CE4B BA03000000              mov edx, 00000003
  52. :0042CE50 E82B6AFDFF              call 00403880
  53. :0042CE55 8D45FC                  lea eax, dword ptr [ebp-04]
  54. :0042CE58 8B0D18F74200            mov ecx, dword ptr [0042F718]
  55.  
  56. * Possible StringData Ref from Code Obj ->"Rc1-"
  57.                                   |
  58. :0042CE5E 8B15C8E84200            mov edx, dword ptr [0042E8C8]
  59. :0042CE64 E8A369FDFF              call 0040380C
  60. :0042CE69 8B55FC                  mov edx, dword ptr [ebp-04]    ;;correct serial 
  61. :0042CE6C A110F74200              mov eax, dword ptr [0042F710]  ;;our bogus serial
  62. :0042CE71 E85A6AFDFF              call 004038D0                  ;;call to check the serial
  63. :0042CE76 7516                    jne 0042CE8E             ;;first conditional jump's
  64.                                  ;;error message . 
  65.  
  66. * Possible StringData Ref from Code Obj ->"Good work, cracker!!!"
  67.                                   |
  68. :0042CE78 B8E0CE4200              mov eax, 0042CEE0
  69.  
  70. now do a " d edx " and the correct serial will be displayed in the data window .
  71.  
  72. Name   : Snaik
  73. Serial : Rc1-420SnaikC00L
  74.  
  75. 2. keygen ;
  76. now as you can see above our serial and the correct are pushed ont to the stack .
  77. we will set a breakpoint at the location 0042CE71 .
  78. So clear all previous breakpoints and set another at location of the Call.
  79.  
  80. After this i tried different names and clicked check and when sice popped .do a
  81. "d edx"
  82. this reveals the correct serial .
  83. the serial is in the format ,  Rc1-420UsernameC00L , the username is the name you 
  84. type in the name box of the crackme .
  85. so for me it will be Rcl-420SnaikC00L .
  86. i think this explains the keygen part .
  87.  
  88. 3.patching ;
  89. this is to allow us to enter any serial and still make the proggy think that it is 
  90. a valid serial .
  91. this is very very simple .
  92. just disassemble the proggy in w32dasm  , when its done click on string references
  93. and search for "Good work, cracker!!!".
  94. now doubleclick on it to go to the location .
  95.  
  96. :0042CE64 E8A369FDFF              call 0040380C
  97. :0042CE69 8B55FC                  mov edx, dword ptr [ebp-04]    ;;correct serial 
  98. :0042CE6C A110F74200              mov eax, dword ptr [0042F710]  ;;our bogus serial
  99. :0042CE71 E85A6AFDFF              call 004038D0                  ;;call to check the serial
  100. :0042CE76 7516                    jne 0042CE8E             ;;first conditional jump's
  101.                                  ;;error message . 
  102.  
  103. * Possible StringData Ref from Code Obj ->"Good work, cracker!!!"
  104.                                   |
  105. :0042CE78 B8E0CE4200              mov eax, 0042CEE0
  106.  
  107.  now keep the green bar on 0042CE76 and note the offset given at the bottom .
  108.  we get the offset 2c276 .
  109.  we have to change the jump to a nop (90) statement .
  110.  since we have to change two bytes ,we will change 7516 to 9090 .
  111.  
  112.  So open the proggy in Hiew , press enter twice to goto decode mode .press F5 
  113.  and enter 2c276 .
  114.  press F3 and enter 9090 . press F9 to update .and exit hiew .
  115.  now run the proggy and enter any serial you want and it will treat it with due 
  116.   respect .
  117.  
  118.  
  119.  -------------------====================Last Note========================-------------------
  120.  how did you like my tutor ,
  121.  send your suggestions to s_naik1@yahoo.com
  122.  
  123.  btw i also have written a crackme and already posted it to http://crackmes.cjb.net 
  124.  since that page is not updated for a long time (since 4/12/2k) you can mail me to have 
  125.  the same .
  126.  
  127.