看见楼上的朋友分析了一下XXXXX3000英雄版的注册码的比较过程的分析,也分析一下,看一看注册码的生成的过程。 所用工具:TRW2000,W32DASM
Referenced by a CALL at Addresses: :00401C93 , :00401EF9
:00402840 83EC20 sub esp, 00000020 :00402843 56 push esi :00402844 57 push edi :00402845 B908000000 mov ecx, 00000008 :0040284A 33C0 xor eax, eax :0040284C 8D7C2408 lea edi, dword ptr [esp+08] :00402850 F3 repz :00402851 AB stosd :00402852 8B44242C mov eax, dword ptr [esp+2C] <----得到用户名的地址 :00402856 50 push eax <----将用户名作为参数传入 :00402857 E8B4010000 call 00402A10 <----此CALL(记为CALL 1)内将用户名进行变化后在EAX以长整数返回,按F8进入. :0040285C 83C404 add esp, 00000004 :0040285F 89442408 mov dword ptr [esp+08], eax <----将返回的值放入地址2 :00402863 33F6 xor esi, esi
* Referenced by a (U)nconditional or (C)onditional Jump at Address: :00402888(C)
:00402865 0FBE443408 movsx eax, byte ptr [esp+esi+08] :0040286A 83F841 cmp eax, 00000041 :0040286D 7C08 jl 00402877 :0040286F 83F85A cmp eax, 0000005A :00402872 7F03 jg 00402877 :00402874 83C020 add eax, 00000020 <---- 如果是大写的,则变为小写。
* Referenced by a (U)nconditional or (C)onditional Jump at Addresses: :0040286D(C), :00402872(C)
:00402877 50 push eax :00402878 E863020000 call 00402AE0 <---- 将EAX 转化为一个字符。(记为CALL 3) :0040287D 83C404 add esp, 00000004 :00402880 88443408 mov byte ptr [esp+esi+08], <----保存这个字符 :00402884 46 inc esi :00402885 83FE04 cmp esi, 00000004 :00402888 7CDB jl 00402865 <----是否完成第一组 :0040288A 8B7C2430 mov edi, dword ptr [esp+30] :0040288E 8D4C2408 lea ecx, dword ptr [esp+08] :00402892 8BF7 mov esi, edi :00402894 33D2 xor edx, edx :00402896 2BF1 sub esi, ecx
* Referenced by a (U)nconditional or (C)onditional Jump at Address: :004028BC(C)
:00402898 8D4C1408 lea ecx, dword ptr [esp+edx+08] :0040289C 0FBE040E movsx eax, byte ptr [esi+ecx] :004028A0 83F841 cmp eax, 00000041 :004028A3 7C08 jl 004028AD :004028A5 83F85A cmp eax, 0000005A :004028A8 7F03 jg 004028AD :004028AA 83C020 add eax, 00000020
* Referenced by a (U)nconditional or (C)onditional Jump at Addresses: :004028A3(C), :004028A8(C)
:004028AD 0FBE09 movsx ecx, byte ptr [ecx] :004028B0 3BC1 cmp eax, ecx <----比较第一组注册码 :004028B2 0F8520010000 jne 004029D8 :004028B8 42 inc edx :004028B9 83FA04 cmp edx, 00000004 :004028BC 7CDA jl 00402898 :004028BE 8B442408 mov eax, dword ptr [esp+08] :004028C2 8D1480 lea edx, dword ptr [eax+4*eax]
上一篇:Registry Crawler 4.0注册码算法分析 - OCG
下一篇:语音界面 V2.0算法分析
|