这是我破解一个软件时找到的关键代码。我看不怎么太懂。大概是从注册代里读出机器码然后算出注册码吧。但到底怎么算的我看不懂。那位懂的帮我看下。如果能加上实例解解说更好。比如说我机器上的机器码是: 5R4WD0713 那么它对应的注册码是什么?怎么算的。
004924C0 /. 55 push ebp
004924C1 |. 8BEC mov ebp, esp
004924C3 |. 83EC 14 sub esp, 14
004924C6 |. 53 push ebx
004924C7 |. 57 push edi
004924C8 |. 33FF xor edi, edi
004924CA |. 89B9 9C000000 mov dword ptr [ecx+9C], edi
004924D0 |. 393D 44364C00 cmp dword ptr [4C3644], edi
004924D6 |. 894D F0 mov dword ptr [ebp-10], ecx
004924D9 |. 897D FC mov dword ptr [ebp-4], edi
004924DC |. 897D F8 mov dword ptr [ebp-8], edi
004924DF |. C745 EC 04000>mov dword ptr [ebp-14], 4
004924E6 |. 897D F4 mov dword ptr [ebp-C], edi
004924E9 |. BB 44364C00 mov ebx, 004C3644
004924EE |. 0F84 88000000 je 0049257C
004924F4 |. 56 push esi
004924F5 |> 8D45 FC /lea eax, dword ptr [ebp-4]
004924F8 |. 50 |push eax ; /pHandle
004924F9 |. 6A 01 |push 1 ; |Access = KEY_QUERY_VALUE
004924FB |. 57 |push edi ; |Reserved
004924FC |. FF33 |push dword ptr [ebx] ; |Subkey
004924FE |. 68 01000080 |push 80000001 ; |hKey = HKEY_CURRENT_USER
00492503 |. FF15 10E04900 |call dword ptr [<&ADVAPI32.RegOpenKe>; \RegOpenKeyExA
00492509 |. 85C0 |test eax, eax
0049250B |. 75 57 |jnz short 00492564
0049250D |. 8B73 04 |mov esi, dword ptr [ebx+4]
00492510 |. EB 4C |jmp short 0049255E
00492512 |> 8D4D EC |/lea ecx, dword ptr [ebp-14]
00492515 |. 51 ||push ecx ; /pBufSize
00492516 |. 8D4D F8 ||lea ecx, dword ptr [ebp-8] ; |
00492519 |. 51 ||push ecx ; |Buffer
0049251A |. 8D4D F4 ||lea ecx, dword ptr [ebp-C] ; |
0049251D |. 51 ||push ecx ; |pValueType
0049251E |. 57 ||push edi ; |Reserved
0049251F |. 50 ||push eax ; |ValueName
00492520 |. FF75 FC ||push dword ptr [ebp-4] ; |hKey
00492523 |. FF15 14E04900 ||call dword ptr [<&ADVAPI32.RegQuery>; \RegQueryValueExA
00492529 |. 85C0 ||test eax, eax
0049252B 75 21 jnz short 0049254E
0049252D |. 837D F4 04 ||cmp dword ptr [ebp-C], 4
00492531 75 1B jnz short 0049254E
00492533 |. 397D F8 ||cmp dword ptr [ebp-8], edi
00492536 |. 8B45 F0 ||mov eax, dword ptr [ebp-10]
00492539 |. 8B4E 04 ||mov ecx, dword ptr [esi+4]
0049253C 74 08 je short 00492546
0049253E |. 0988 9C000000 ||or dword ptr [eax+9C], ecx
00492544 |. EB 08 ||jmp short 0049254E
00492546 |> F7D1 ||not ecx
00492548 |. 2188 9C000000 ||and dword ptr [eax+9C], ecx
0049254E |> 897D F8 ||mov dword ptr [ebp-8], edi
00492551 |. C745 EC 04000>||mov dword ptr [ebp-14], 4
00492558 |. 897D F4 ||mov dword ptr [ebp-C], edi
0049255B |. 83C6 08 ||add esi, 8
0049255E |> 8B06 | mov eax, dword ptr [esi]
00492560 |. 3BC7 ||cmp eax, edi
00492562 ^ 75 AE jnz short 00492512
00492564 |> FF75 FC |push dword ptr [ebp-4] ; /hKey
00492567 |. FF15 30E04900 |call dword ptr [<&ADVAPI32.RegCloseK>; \RegCloseKey
0049256D |. 83C3 08 |add ebx, 8
00492570 |. 393B |cmp dword ptr [ebx], edi
00492572 |. 897D FC |mov dword ptr [ebp-4], edi
00492575 |.^ 0F85 7AFFFFFF \jnz 004924F5
0049257B |. 5E pop esi
0049257C |> 57 push edi ; /hKey
0049257D |. FF15 30E04900 call dword ptr [<&ADVAPI32.RegCloseKe>; \RegCloseKey
00492583 |. 33C0 xor eax, eax
00492585 |. 5F pop edi
00492586 |. 40 inc eax
00492587 |. 5B pop ebx
00492588 |. C9 leave
00492589 \. C3 retn
[注意]传递专业知识、拓宽行业人脉——看雪讲师团队等你加入!