home *** CD-ROM | disk | FTP | other *** search
/ Reverse Code Engineering RCE CD +sandman 2000 / ReverseCodeEngineeringRceCdsandman2000.iso / RCE / E_bliss / crackme8tut.txt < prev    next >
Text File  |  2000-05-25  |  3KB  |  94 lines

  1. Tutorial - Crackme #8 by tC
  2.  
  3. --Finding the proper breakpoint--
  4.  
  5. The first thing that you notice with this crackme is that it gives you a message and a beep after you have entered an incorrect serial number.  This usually means a messagebox, so enter the breakpoint
  6.  
  7. bpx messageboxa
  8.  
  9. Now enter your name and serial number.
  10.  
  11. Sanhedrin
  12. 12344321
  13.  
  14. Press Validate and you will land at:
  15.  
  16.  
  17. * Referenced by a CALL at Address:
  18. |:00441B21   
  19. |
  20. :004417B4 6A00                    push 00000000
  21.  
  22. * Possible StringData Ref from Code Obj ->"Reg.Error"
  23.                                   |
  24. :004417B6 68D4174400              push 004417D4
  25.  
  26. * Possible StringData Ref from Code Obj ->"Invalid Serial - Use the Serial "
  27.                                         ->"you paid for;)"
  28.                                   |
  29. :004417BB 68E0174400              push 004417E0
  30. :004417C0 A1302C4400              mov eax, dword ptr [00442C30]
  31. :004417C5 8B00                    mov eax, dword ptr [eax]
  32. :004417C7 8B4024                  mov eax, dword ptr [eax+24]
  33. :004417CA 50                      push eax
  34.  
  35. * Reference To: user32.MessageBoxA, Ord:0000h
  36.                                   |
  37. :004417CB E8004CFCFF              Call 004063D0
  38. :004417D0 C3                      ret<---------You will end up here.
  39.  
  40.  
  41. --Checking the Code--
  42.  
  43. Press F10 once to find out where this call originated from, and you will end up at:
  44.  
  45.  
  46. :00441B03 E84020FCFF              call 00403B48
  47. :00441B08 A134384400              mov eax, dword ptr [00443834]
  48. :00441B0D 8B1538384400            mov edx, dword ptr [00443838]
  49. :00441B13 E8F420FCFF              call 00403C0C<-----checks our code with the real code
  50. :00441B18 7507                    jne 00441B21<------jump to good cracker if correct
  51. :00441B1A E8F1FCFFFF              call 00441810
  52. :00441B1F EB05                    jmp 00441B26<------jump to bad cracker if incorrect
  53.  
  54. * Referenced by a (U)nconditional or (C)onditional Jump at Address:
  55. |:00441B18(C)
  56. |
  57. :00441B21 E88EFCFFFF              call 004417B4
  58.  
  59. * Referenced by a (U)nconditional or (C)onditional Jump at Address:
  60. |:00441B1F(U)
  61. |
  62. :00441B26 33D2                    xor edx, edx<---------You will end up here.
  63. :00441B28 8B83C4020000            mov eax, dword ptr [ebx+000002C4]
  64. :00441B2E E86917FEFF              call 0042329C
  65. :00441B33 33D2                    xor edx, edx
  66.  
  67.  
  68. Clear the breakpoint and enter
  69.  
  70. bpx 00441B13
  71.  
  72. Re-enter you name and serial number and press validate.  Once you have broken into Softice type
  73.  
  74. D EAX <-----the number that we entered (12344321)
  75. D EDX <-----the real serial number (IRE-1639033)
  76.  
  77.  
  78. --Reversing the code--
  79.  
  80. The other method of cracking is changing the code.  In this case, changing
  81.  
  82. 00441B18 7507                    jne 00441B21 (found at 00040F18h)
  83. to
  84. 00441B18 7407             je  00441B21 
  85.  
  86. and the program will be cracked.
  87.  
  88. --Final notes--
  89.  
  90. Sometimes it is just as easy to start at the end (error message) and work your way backwards to find that magic compare code, as it is from the beginning.
  91. Thanks to all of those coders that make these crackmes.
  92.  
  93. Sanhedrin
  94. stachi@geocities.com