0055C09B . E8 80C0EEFF call 00448120
0055C0A0 . 8B85 84FEFFFF mov eax, dword ptr [ebp-17C]
0055C0A6 . E8 3DD8EAFF call 004098E8
0055C0AB . 69C0 B1040000 imul eax, eax, 4B1 ; 这是第一个运算常数,4B1
0055C0B1 . 8D95 88FEFFFF lea edx, dword ptr [ebp-178]
0055C0B7 . E8 8CFDFFFF call 0055BE48 ; 这个call里面进行第二次运算,和一个常数xor
0055C0BC . 8B95 88FEFFFF mov edx, dword ptr [ebp-178] ; 下面就是比较
0055C0C2 . 58 pop eax
0055C0C3 . E8 288FEAFF call 00404FF0
0055C0C8 . 0F85 F3000000 jnz 0055C1C1
复制代码新版这个过程vmp了,但是仅仅vmp了这个过程,过程里调用的call没有vmp,查看一下上面call里的代码:0055BE46 8BC0 mov eax, eax
0055BE48 /$ 55 push ebp
0055BE49 |. 8BEC mov ebp, esp
0055BE4B |. 33C9 xor ecx, ecx
0055BE4D |. 51 push ecx
0055BE4E |. 51 push ecx
0055BE4F |. 51 push ecx
0055BE50 |. 51 push ecx
0055BE51 |. 53 push ebx
0055BE52 |. 56 push esi
复制代码二进制:8B C0 55 8B EC 33 C9 51 51 51 51 53 56 8B F2 8B D8 33 C0
复制代码在新版里搜索二进制,找到一处:0055BE41 697432 00 008BC055 imul esi, dword ptr [edx+esi], 55C08B>
0055BE49 8BEC mov ebp, esp
0055BE4B 33C9 xor ecx, ecx
0055BE4D 51 push ecx
0055BE4E 51 push ecx
0055BE4F 51 push ecx
0055BE50 51 push ecx
0055BE51 53 push ebx
0055BE52 56 push esi
0055BE53 8BF2 mov esi, edx
0055BE55 8BD8 mov ebx, eax
0055BE57 33C0 xor eax, eax
0055BE59 55 push ebp
0055BE5A 68 18BF5500 push 0055BF18
0055BE5F 64:FF30 push dword ptr fs:[eax]
复制代码应该是:0055BE48 55 push ebp
0055BE49 8BEC mov ebp, esp
0055BE4B 33C9 xor ecx, ecx
0055BE4D 51 push ecx
0055BE4E 51 push ecx
0055BE4F 51 push ecx
0055BE50 51 push ecx
0055BE51 53 push ebx
0055BE52 56 push esi
0055BE53 8BF2 mov esi, edx
0055BE55 8BD8 mov ebx, eax
0055BE57 33C0 xor eax, eax
0055BE59 55 push ebp
0055BE5A 68 18BF5500 push 0055BF18
0055BE5F 64:FF30 push dword ptr fs:[eax]
0055BE62 64:8920 mov dword ptr fs:[eax], esp
0055BE65 81F3 F1250B00 xor ebx, 0B25F1
0055BE6B 8BC3 mov eax, ebx
复制代码在这个call的第一行下断,注册时中断正好是第一次运算后的值。EAX E67B846E
复制代码输入的序列号是"12345678"
可以看到第二个常数是xor ebx, 0B25F1这一句里的0B25F1
12345678 的十六进制是 BC614E
可以写段代码,穷举第一个常数:0055BE4D BA 01000000 mov edx, 1
0055BE52 B8 4E61BC00 mov eax, 0BC614E
0055BE57 0FAFC2 imul eax, edx
0055BE5A 3D 6E847BE6 cmp eax, E67B846E
0055BE5F 74 05 je short 0055BE66
0055BE61 83C2 01 add edx, 1
0055BE64 ^ EB EC jmp short 0055BE52
0055BE66 90 nop
复制代码eip到第一句。
在最末一句下断,运行断下后,edx就是第一个常数了。
[注意]传递专业知识、拓宽行业人脉——看雪讲师团队等你加入!