本帖最后由 zbnysjwsnd8 于 2017-9-3 10:41 编辑
我只是把代码优化了一下
你那个用了链表
我没加到keygen里面。
还有那个乘法的 我也不知道翻译成什么样的C代码才好。
所以就直接用汇编写了
[Asm] 纯文本查看 复制代码 00FF142F |. FF75 C8 push [local.14] ; /seed = 0x0
00FF1432 |. FF15 3431FF00 call dword ptr ds:[<&api-ms-win-crt-util>; \srand
00FF1438 |. 6A 08 push 0x8
00FF143A |. E8 650C0000 call hardCM.00FF20A4
00FF143F |. 8BD8 mov ebx,eax
00FF1441 |. 895D D4 mov [local.11],ebx
00FF1444 |. FF15 3831FF00 call dword ptr ds:[<&api-ms-win-crt-util>; [rand
00FF144A |. 8BC8 mov ecx,eax
00FF144C |. B8 56555555 mov eax,0x55555556
00FF1451 |. F7E9 imul ecx ; hardCM.<ModuleEntryPoint>
00FF1453 |. B9 0A000000 mov ecx,0xA
00FF1458 |. 8BC2 mov eax,edx ; hardCM.<ModuleEntryPoint>
00FF145A |. C1E8 1F shr eax,0x1F
00FF145D |. 03C2 add eax,edx ; hardCM.<ModuleEntryPoint>
00FF145F |. 99 cdq
00FF1460 |. F7F9 idiv ecx ; hardCM.<ModuleEntryPoint>
00FF1462 |. B9 0E000000 mov ecx,0xE
00FF1467 |. 8913 mov dword ptr ds:[ebx],edx ; hardCM.<ModuleEntryPoint>
00FF1469 |. E8 B2FCFFFF call hardCM.00FF1120
[Asm] 纯文本查看 复制代码 00FF1120 /$ 56 push esi ; hardCM.<ModuleEntryPoint>
00FF1121 |. 57 push edi ; hardCM.<ModuleEntryPoint>
00FF1122 |. 6A 08 push 0x8 ; /Arg1 = 00000008
00FF1124 |. 8BF9 mov edi,ecx ; |hardCM.<ModuleEntryPoint>
00FF1126 |. E8 790F0000 call hardCM.00FF20A4 ; \hardCM.012020A4
00FF112B |. 83C4 04 add esp,0x4
00FF112E |. 8BF0 mov esi,eax
00FF1130 |. FF15 3831FF00 call dword ptr ds:[<&api-ms-win-crt-util>; [rand
00FF1136 |. 8BD0 mov edx,eax
00FF1138 |. B9 0A000000 mov ecx,0xA
00FF113D |. B8 56555555 mov eax,0x55555556
00FF1142 |. F7EA imul edx ; hardCM.<ModuleEntryPoint>
00FF1144 |. 8BC2 mov eax,edx ; hardCM.<ModuleEntryPoint>
00FF1146 |. C1E8 1F shr eax,0x1F
00FF1149 |. 03C2 add eax,edx ; hardCM.<ModuleEntryPoint>
00FF114B |. 99 cdq
00FF114C |. F7F9 idiv ecx ; hardCM.<ModuleEntryPoint>
00FF114E |. 8916 mov dword ptr ds:[esi],edx ; hardCM.<ModuleEntryPoint>
00FF1150 |. 83FF 01 cmp edi,0x1
00FF1153 |. 7C 10 jl short hardCM.00FF1165
00FF1155 |. 8D4F FF lea ecx,dword ptr ds:[edi-0x1]
00FF1158 |. E8 C3FFFFFF call hardCM.00FF1120
00FF115D |. 8946 04 mov dword ptr ds:[esi+0x4],eax
00FF1160 |. 8BC6 mov eax,esi ; hardCM.<ModuleEntryPoint>
00FF1162 |. 5F pop edi ; kernel32.74F738F4
00FF1163 |. 5E pop esi ; kernel32.74F738F4
00FF1164 |. C3 retn
00FF1165 |> 5F pop edi ; kernel32.74F738F4
00FF1166 |. C746 04 00000>mov dword ptr ds:[esi+0x4],0x0
00FF116D |. 8BC6 mov eax,esi ; hardCM.<ModuleEntryPoint>
00FF116F |. 5E pop esi ; kernel32.74F738F4
00FF1170 \. C3 retn
|