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

  1. Tutorial for Crystal Crackme ver Beta (crystal/cabeca
  2. by Sanhedrin
  3.  
  4. Tools
  5. Wdasm
  6. Softice
  7.  
  8.  
  9. This crackme requires two serial numbers in order for it to be registered.  Enter you 
  10. name and serials:
  11.  
  12. Sanhedrin
  13. 12344321
  14. 55555555
  15.  
  16. go into softice and enter the breakpoint:
  17.  
  18. bpx hmemcpy
  19.  
  20. exit softice and click on try.  Disable the breakpoint and press F12 a few times until 
  21. you end up:
  22.  
  23.  
  24. :0042D3FE 837DFC00                cmp dword ptr [ebp-04], 00000000<---you will land here
  25. :0042D402 7428                    je 0042D42C<---begin checks to see if fields are empty
  26. :0042D404 8D55F8                  lea edx, dword ptr [ebp-08]
  27. :0042D407 8B83E4010000            mov eax, dword ptr [ebx+000001E4]
  28. :0042D40D E8CEC9FEFF              call 00419DE0
  29. :0042D412 837DF800                cmp dword ptr [ebp-08], 00000000
  30. :0042D416 7414                    je 0042D42C
  31. :0042D418 8D55F4                  lea edx, dword ptr [ebp-0C]
  32. :0042D41B 8B83EC010000            mov eax, dword ptr [ebx+000001EC]
  33. :0042D421 E8BAC9FEFF              call 00419DE0
  34. :0042D426 837DF400                cmp dword ptr [ebp-0C], 00000000
  35. :0042D42A 7544                    jne 0042D470
  36.  
  37. * Referenced by a (U)nconditional or (C)onditional Jump at Addresses:
  38. |:0042D3E5(C), :0042D3EE(C), :0042D402(C), :0042D416(C)
  39. |
  40.  
  41. * Possible StringData Ref from Code Obj ->"Fill all boxes first dumb!"
  42.                                   |
  43. :0042D42C B8C4D54200              mov eax, 0042D5C4
  44. :0042D431 E856F6FFFF              call 0042CA8C
  45. :0042D436 33C0                    xor eax, eax
  46. :0042D438 A314F74200              mov dword ptr [0042F714], eax
  47. :0042D43D 33C0                    xor eax, eax
  48. :0042D43F A318F74200              mov dword ptr [0042F718], eax
  49. :0042D444 33D2                    xor edx, edx
  50. :0042D446 8B83E0010000            mov eax, dword ptr [ebx+000001E0]
  51. :0042D44C E8BFC9FEFF              call 00419E10
  52. :0042D451 33D2                    xor edx, edx
  53. :0042D453 8B83E4010000            mov eax, dword ptr [ebx+000001E4]
  54. :0042D459 E8B2C9FEFF              call 00419E10
  55. :0042D45E 33D2                    xor edx, edx
  56. :0042D460 8B83EC010000            mov eax, dword ptr [ebx+000001EC]
  57. :0042D466 E8A5C9FEFF              call 00419E10
  58. :0042D46B E91A010000              jmp 0042D58A
  59.  
  60. * Referenced by a (U)nconditional or (C)onditional Jump at Address:
  61. |:0042D42A(C)
  62. |
  63. :0042D470 833D14F7420000          cmp dword ptr [0042F714], 00000000
  64. :0042D477 746C                    je 0042D4E5
  65. :0042D479 833D18F7420000          cmp dword ptr [0042F718], 00000000
  66. :0042D480 7463                    je 0042D4E5
  67. :0042D482 8D55F0                  lea edx, dword ptr [ebp-10]
  68. :0042D485 A114F74200              mov eax, dword ptr [0042F714]
  69. :0042D48A E8C190FDFF              call 00406550
  70. :0042D48F 8B45F0                  mov eax, dword ptr [ebp-10]
  71. :0042D492 50                      push eax
  72. :0042D493 8D55FC                  lea edx, dword ptr [ebp-04]
  73. :0042D496 8B83E4010000            mov eax, dword ptr [ebx+000001E4]
  74. :0042D49C E83FC9FEFF              call 00419DE0
  75. :0042D4A1 8B55FC                  mov edx, dword ptr [ebp-04]
  76. :0042D4A4 58                      pop eax
  77. :0042D4A5 E82664FDFF              call 004038D0<---call to check first serial number
  78. :0042D4AA 7539                    jne 0042D4E5<---jump if not the same
  79. :0042D4AC 8D55F0                  lea edx, dword ptr [ebp-10]
  80. :0042D4AF A118F74200              mov eax, dword ptr [0042F718]
  81. :0042D4B4 E89790FDFF              call 00406550
  82. :0042D4B9 8B45F0                  mov eax, dword ptr [ebp-10]
  83. :0042D4BC 50                      push eax
  84. :0042D4BD 8D55FC                  lea edx, dword ptr [ebp-04]
  85. :0042D4C0 8B83EC010000            mov eax, dword ptr [ebx+000001EC]
  86. :0042D4C6 E815C9FEFF              call 00419DE0
  87. :0042D4CB 8B55FC                  mov edx, dword ptr [ebp-04]
  88. :0042D4CE 58                      pop eax
  89. :0042D4CF E8FC63FDFF              call 004038D0<---call to check second serial number
  90. :0042D4D4 750F                    jne 0042D4E5<---jump if not the same
  91.  
  92. * Possible StringData Ref from Code Obj ->"Hmmm.... Cracked... Congratulations "
  93.                                         ->"idiot! :-)"
  94.                                   |
  95. :0042D4D6 B8E8D54200              mov eax, 0042D5E8
  96. :0042D4DB E8ACF5FFFF              call 0042CA8C
  97. :0042D4E0 E9A5000000              jmp 0042D58A
  98.  
  99.  
  100. So we have to calls to the same routine checking our serial numbers.  Cancel the breakpoint 
  101. and enter a breakpoint:
  102.  
  103. bpx 0042D4A5
  104.  
  105. At 0042D4A5 press F8
  106.  
  107.  
  108. :004038D0 53                      push ebx<---you will land here
  109. :004038D1 56                      push esi
  110. :004038D2 57                      push edi
  111. :004038D3 89C6                    mov esi, eax
  112. :004038D5 89D7                    mov edi, edx
  113. :004038D7 39D0                    cmp eax, edx<---check our serial number
  114.  
  115. at 004038D7 type
  116.  
  117. D EDX <---the number we entered (12344321)
  118. D ECX <---the real number (7690377)
  119.  
  120. Exit softice and enter your name, the first real serial, and any number for the second serial.
  121. Return to softice, enable the breakpoint, exit then click again on Try.  You should now have broken 
  122. into softice at the call routine for the first serial number.  Press F10 until 0042D4CF.  Press 
  123. F8 to see the call routine again, and at 004038D7 check ECX for the real serial number (8736083).
  124.  
  125.  
  126. Greets to tC
  127.  
  128. Thanks to all of those coders that make these crackmes, to Pepper for sending me on the 
  129. right path so long ago and of course to Eternal Bliss.
  130.  
  131.  
  132. Sanhedrin
  133. stachi@geocities.com
  134.  
  135.  
  136.  
  137.