home *** CD-ROM | disk | FTP | other *** search
/ KeyGen Studio 2002 / KeyGen_Studio_2002.iso / Tutorials / CrackMesCbjNet / nh-ocm2.ZIP / nh-ocm2.txt < prev   
Encoding:
Text File  |  2001-04-23  |  3.3 KB  |  102 lines

  1. OutCast3k Crack Me #2 tutorial by nh
  2.  
  3. E-Mail: nh666@mail.ru
  4.  
  5. Need tools: Soft-Ice v4.xx, Tasm v5.0 for keygening
  6.  
  7. run crackme, enter serial, set breakpoint to hmemcpy (as usually %) ),
  8. and click "Press it" button & see this code:
  9.   
  10. seg000:0044305C            push    eax
  11. seg000:0044305D            push    dword ptr [ebp-4]  ; blah-blah-blah =)
  12. seg000:00443060            lea    edx, [ebp-10h]
  13. seg000:00443063            mov    eax, [ebx+2D0h]
  14. seg000:00443069            call    sub_0_423E70
  15. seg000:0044306E            push    dword ptr [ebp-10h]
  16. seg000:00443071            push    443140h
  17. seg000:00443076            lea    eax, [ebp-0Ch]
  18. seg000:00443079            mov    edx, 3
  19. seg000:0044307E            call    sub_0_403B0C
  20. seg000:00443083            mov    edx, [ebp-0Ch]
  21. seg000:00443086            pop    eax
  22. seg000:00443087            call    sub_0_403B5C    ; comparing
  23. seg000:0044308C            jnz    short bad_cracker
  24.  
  25. so, serial is 13028-31x23e93-z14d20. 
  26. wow, name/serial is enabled. oh, i forgot, remember function of outputing
  27. window message, because it's used in name/serial routine ("wrong serial"
  28. message): offset of this function is 442aa4, set breakpoint to this offset.
  29. enter any name & any serial & press "Check Code" button, press f12 and see 
  30. this code of comparing:
  31.   
  32. seg000:00443445            call    sub_0_403A98
  33. seg000:0044344A            mov    edx, [ebp-8]
  34. seg000:0044344D            pop    eax
  35. [...blah-blah...]
  36.  
  37.  
  38. see upper:
  39. theres is a strange number in 445830h, which is generated by crackme from ur
  40. name. bpmd 445830h. =)
  41.  
  42. seg000:004432D0            mov    eax, ds:445830h
  43. seg000:004432D5            mov    edx, 4434B4h
  44. seg000:004432DA            call    sub_0_403B5C
  45. seg000:004432DF            jnz    short loc_0_4432FB
  46.   
  47. after some tracing u see this code:
  48.  
  49. seg000:004431FC    loc_0_4431FC:                ; CODE XREF: seg000:0044326Ej
  50. seg000:004431FC            mov    eax, ds:445834h
  51. seg000:00443201            mov    edx, [ebx]
  52. seg000:00443203            movzx    eax, byte ptr [eax+edx-1] ; our name
  53. seg000:00443208            lea    edx, [ebp-8]
  54. seg000:0044320B            call    sub_0_407658
  55. seg000:00443210            mov    edx, [ebp-8]
  56. seg000:00443213            mov    eax, 445838h
  57. seg000:00443218            call    sub_0_403824
  58. seg000:0044321D            mov    eax, [ebx]
  59. seg000:0044321F            mov    ds:445844h, eax
  60. seg000:00443224            mov    eax, ds:445838h
  61. seg000:00443229            call    sub_0_407688
  62. seg000:0044322E            imul    dword ptr ds:445844h
  63. seg000:00443234            mov    ds:44584Ch, eax
  64. seg000:00443239            imul    eax, [ebx], 13h
  65. seg000:0044323C            mov    [esi], eax
  66. seg000:0044323E            mov    eax, [esi]
  67. seg000:00443240            add    eax, eax
  68. seg000:00443242            add    eax, 3
  69. seg000:00443245            mov    [esi], eax
  70. seg000:00443247            mov    eax, ds:44584Ch
  71. seg000:0044324C            imul    dword ptr [esi]
  72. seg000:0044324E            mov    ds:445850h, eax
  73. seg000:00443253            mov    eax, ds:445850h
  74. seg000:00443258            imul    dword ptr [esi]
  75. seg000:0044325A            add    ds:445840h, eax
  76. seg000:00443260            inc    dword ptr [ebx]
  77. seg000:00443262    
  78. seg000:00443262    loc_0_443262:                ; CODE XREF: seg000:004431FAj
  79. seg000:00443262            mov    eax, ds:445834h
  80. seg000:00443267            call    sub_0_403A4C
  81. seg000:0044326C            cmp    eax, [ebx]
  82. seg000:0044326E            jge    short loc_0_4431FC
  83.  
  84. it's simple algo of generating of key from a name.
  85.  
  86. seg000:00443270            lea    edx, [ebp-8]
  87. seg000:00443273            mov    eax, ds:445840h
  88. seg000:00443278            call    sub_0_407658
  89. seg000:0044327D            mov    edx, [ebp-8]
  90. seg000:00443280            mov    eax, 445830h
  91. seg000:00443285            call    sub_0_403824
  92.  
  93. then we add '-Oc3k' to our number & compare it.
  94.  
  95. so, i think, that's all. it's not so difficult, so tutorial is very short.
  96.  
  97. keygen source is in nh-ocm2.asm
  98.  
  99.  
  100. /nh
  101.  
  102.