首页
社区
课程
招聘
[旧帖] [求助]代码分析实例 0.00雪花
发表于: 2008-9-1 14:37 3051

[旧帖] [求助]代码分析实例 0.00雪花

2008-9-1 14:37
3051
这是我破解一个软件时找到的关键代码。我看不怎么太懂。大概是从注册代里读出机器码然后算出注册码吧。但到底怎么算的我看不懂。那位懂的帮我看下。如果能加上实例解解说更好。比如说我机器上的机器码是: 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

[注意]传递专业知识、拓宽行业人脉——看雪讲师团队等你加入!

收藏
免费 0
支持
分享
最新回复 (7)
雪    币: 427
活跃值: (65)
能力值: ( LV6,RANK:90 )
在线值:
发帖
回帖
粉丝
2
这样的帖子。。
无语问苍天
2008-9-1 14:41
0
雪    币: 200
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
3
无语问苍天???
如果你懂的话但又没空的话。只少可帮我确认一下我分析的对不对?
尽你的能力和时间帮我 们一下初学者不是一种美德。
再者你可以跟我说一下,要看懂这些代码先从哪着手?
一句无语问苍天???就不必浪费你的时间回这样的话了。
2008-9-1 14:55
0
雪    币: 132
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
4
确实无语..
这一段只是操作注册表的代码,什么也看不出来
2008-9-1 15:07
0
雪    币: 200
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
5
知道了。你的无语至少让我知道这段代码什么都看不出。
2008-9-1 16:09
0
雪    币: 200
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
6
但我看的有点像是注册码的算法?
难道真是只有操作注册表没有算法在里面?
2008-9-1 16:13
0
雪    币: 207
活跃值: (20)
能力值: ( LV4,RANK:50 )
在线值:
发帖
回帖
粉丝
7
\RegQueryValueExA -> \RegCloseKey 操作了注册表.
2008-9-19 14:01
0
雪    币: 261
活跃值: (22)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
8
这段代码只是实现读取注册表的值,大家当然无语了。
2008-9-19 17:20
0
游客
登录 | 注册 方可回帖
返回
//