004C7201 8B45D4 mov eax, [ebp-$2C]
* Reference to: sysutils.StrToInt64(System.AnsiString):System.Int64;|004C7204 E86B1BF4FF call 00408D74 ;输入的注册码变成数值004C7209 8945F0 mov [ebp-$10], eax004C720C 8955F4 mov [ebp-$0C], edx ;保存在edx,eax中004C720F 6A00 push $00004C7211 6A18 push $18004C7213 8B45F0 mov eax, [ebp-$10]004C7216 8B55F4 mov edx, [ebp-$0C]
* Reference to: system.@_lldiv;|004C7219 E8A4F5F3FF call 004067C2 ;除以$18004C721E 8945F0 mov [ebp-$10], eax004C7221 8955F4 mov [ebp-$0C], edx004C7224 8B45F0 mov eax, [ebp-$10]004C7227 8B55F4 mov edx, [ebp-$0C]004C722A 2D84410100 sub eax, $00014184004C722F 83DA00 sbb edx, +$00 ;减去$00014184004C7232 8945F0 mov [ebp-$10], eax004C7235 8955F4 mov [ebp-$0C], edx004C7238 8D45D8 lea eax, [ebp-$28]
|004C723B E81840FFFF call 004BB258004C7240 8B45D8 mov eax, [ebp-$28] ;eax保存着CPUID004C7243 99 cdq004C7244 8945E8 mov [ebp-$18], eax004C7247 8955EC mov [ebp-$14], edx004C724A 8B45F0 mov eax, [ebp-$10]004C724D 8B55F4 mov edx, [ebp-$0C]004C7250 3B55EC cmp edx, [ebp-$14]004C7253 754B jnz 004C72A0004C7255 3B45E8 cmp eax, [ebp-$18]004C7258 7546 jnz 004C72A0004C725A 6A00 push $00004C725C 668B0D28734C00 mov cx, word ptr [$4C7328]004C7263 B202 mov dl, $02
* Possible String Reference to: '软件登记注册成功!'|004C7265 B834734C00 mov eax, $004C7334
然后看看和机器码怎么挂钩:004AC730 E87FFFFFFF call 004AC6B4004AC735 8B45E8 mov eax, [ebp-$18] ;CPUID004AC738 99 cdq004AC739 8945F8 mov [ebp-$08], eax004AC73C 8955FC mov [ebp-$04], edx004AC73F 8B45F8 mov eax, [ebp-$08]004AC742 8B55FC mov edx, [ebp-$04]004AC745 0584410100 add eax, +$00014184 ;加上$00014184004AC74A 83D200 adc edx, +$00004AC74D 8945F8 mov [ebp-$08], eax004AC750 8955FC mov [ebp-$04], edx004AC753 6A00 push $00004AC755 6A18 push $18004AC757 8B45F8 mov eax, [ebp-$08]004AC75A 8B55FC mov edx, [ebp-$04]
|004AC75D E81AA0F5FF call 0040677C ;乘以$18004AC762 8945F8 mov [ebp-$08], eax004AC765 8955FC mov [ebp-$04], edx004AC768 8B45F8 mov eax, [ebp-$08]004AC76B 8B55FC mov edx, [ebp-$04]004AC76E 2DCDB40000 sub eax, $0000B4CD ;减去$0000B4CD004AC773 83DA00 sbb edx, +$00004AC776 8945F8 mov [ebp-$08], eax004AC779 8955FC mov [ebp-$04], edx004AC77C 6A00 push $00004AC77E 6A4B push $4B004AC780 8B45F8 mov eax, [ebp-$08]004AC783 8B55FC mov edx, [ebp-$04]
|004AC786 E8F19FF5FF call 0040677C ;乘以$4B004AC78B 8945F8 mov [ebp-$08], eax004AC78E 8955FC mov [ebp-$04], edx004AC791 FF75FC push dword ptr [ebp-$04]004AC794 FF75F8 push dword ptr [ebp-$08]004AC797 8D45E4 lea eax, [ebp-$1C]
* Reference to: sysutils.IntToStr(System.Int64):System.AnsiString;overload;|004AC79A E865C5F5FF call 00408D04004AC79F 8B55E4 mov edx, [ebp-$1C]
总结:机器码 = ((CPUID + $14184) * $18 - $B4CD) * $4B注册码 = (CPUID + $14184) * $18
所以:注册码 = 机器码 div $4B + $B4CD
附录:搜易的邮件地址搜索专家form1.N13Click
机器码 = ((CPUID + $1452D) * $3BA - $106DB) * $243注册码 = (CPUID + $1452D) * $3BA
所以:注册码 = 机器码 div $243 + $106DB