home *** CD-ROM | disk | FTP | other *** search
- OutCast3k Crack Me #2 tutorial by nh
-
- E-Mail: nh666@mail.ru
-
- Need tools: Soft-Ice v4.xx, Tasm v5.0 for keygening
-
- run crackme, enter serial, set breakpoint to hmemcpy (as usually %) ),
- and click "Press it" button & see this code:
-
- seg000:0044305C push eax
- seg000:0044305D push dword ptr [ebp-4] ; blah-blah-blah =)
- seg000:00443060 lea edx, [ebp-10h]
- seg000:00443063 mov eax, [ebx+2D0h]
- seg000:00443069 call sub_0_423E70
- seg000:0044306E push dword ptr [ebp-10h]
- seg000:00443071 push 443140h
- seg000:00443076 lea eax, [ebp-0Ch]
- seg000:00443079 mov edx, 3
- seg000:0044307E call sub_0_403B0C
- seg000:00443083 mov edx, [ebp-0Ch]
- seg000:00443086 pop eax
- seg000:00443087 call sub_0_403B5C ; comparing
- seg000:0044308C jnz short bad_cracker
-
- so, serial is 13028-31x23e93-z14d20.
- wow, name/serial is enabled. oh, i forgot, remember function of outputing
- window message, because it's used in name/serial routine ("wrong serial"
- message): offset of this function is 442aa4, set breakpoint to this offset.
- enter any name & any serial & press "Check Code" button, press f12 and see
- this code of comparing:
-
- seg000:00443445 call sub_0_403A98
- seg000:0044344A mov edx, [ebp-8]
- seg000:0044344D pop eax
- [...blah-blah...]
-
-
- see upper:
- theres is a strange number in 445830h, which is generated by crackme from ur
- name. bpmd 445830h. =)
-
- seg000:004432D0 mov eax, ds:445830h
- seg000:004432D5 mov edx, 4434B4h
- seg000:004432DA call sub_0_403B5C
- seg000:004432DF jnz short loc_0_4432FB
-
- after some tracing u see this code:
-
- seg000:004431FC loc_0_4431FC: ; CODE XREF: seg000:0044326Ej
- seg000:004431FC mov eax, ds:445834h
- seg000:00443201 mov edx, [ebx]
- seg000:00443203 movzx eax, byte ptr [eax+edx-1] ; our name
- seg000:00443208 lea edx, [ebp-8]
- seg000:0044320B call sub_0_407658
- seg000:00443210 mov edx, [ebp-8]
- seg000:00443213 mov eax, 445838h
- seg000:00443218 call sub_0_403824
- seg000:0044321D mov eax, [ebx]
- seg000:0044321F mov ds:445844h, eax
- seg000:00443224 mov eax, ds:445838h
- seg000:00443229 call sub_0_407688
- seg000:0044322E imul dword ptr ds:445844h
- seg000:00443234 mov ds:44584Ch, eax
- seg000:00443239 imul eax, [ebx], 13h
- seg000:0044323C mov [esi], eax
- seg000:0044323E mov eax, [esi]
- seg000:00443240 add eax, eax
- seg000:00443242 add eax, 3
- seg000:00443245 mov [esi], eax
- seg000:00443247 mov eax, ds:44584Ch
- seg000:0044324C imul dword ptr [esi]
- seg000:0044324E mov ds:445850h, eax
- seg000:00443253 mov eax, ds:445850h
- seg000:00443258 imul dword ptr [esi]
- seg000:0044325A add ds:445840h, eax
- seg000:00443260 inc dword ptr [ebx]
- seg000:00443262
- seg000:00443262 loc_0_443262: ; CODE XREF: seg000:004431FAj
- seg000:00443262 mov eax, ds:445834h
- seg000:00443267 call sub_0_403A4C
- seg000:0044326C cmp eax, [ebx]
- seg000:0044326E jge short loc_0_4431FC
-
- it's simple algo of generating of key from a name.
-
- seg000:00443270 lea edx, [ebp-8]
- seg000:00443273 mov eax, ds:445840h
- seg000:00443278 call sub_0_407658
- seg000:0044327D mov edx, [ebp-8]
- seg000:00443280 mov eax, 445830h
- seg000:00443285 call sub_0_403824
-
- then we add '-Oc3k' to our number & compare it.
-
- so, i think, that's all. it's not so difficult, so tutorial is very short.
-
- keygen source is in nh-ocm2.asm
-
-
- /nh
-
-