搜易无需SMTP群发器算法分析

时间:2005-12-20 来源: 作者: 点击:
Delphi写成,N10Click就是注册对话框。 004C7201 8B45D4 mov eax, [ebp-$2C] * Reference to: sysutils.StrToInt64(System.AnsiString):System.Int64; | 004C7204 E86B1BF4FF call 00408D74 ;输入的注册码变成数值 004C7209 8945F0 mov [ebp-$10], eax 004C720C 8955F4
  Delphi写成,N10Click就是注册对话框。

004C7201   8B45D4                 mov     eax, [ebp-$2C]

* Reference to: sysutils.StrToInt64(System.AnsiString):System.Int64;
|
004C7204   E86B1BF4FF             call    00408D74                     ;输入的注册码变成数值
004C7209   8945F0                 mov     [ebp-$10], eax
004C720C   8955F4                 mov     [ebp-$0C], edx               ;保存在edx,eax中
004C720F   6A00                   push    $00
004C7211   6A18                   push    $18
004C7213   8B45F0                 mov     eax, [ebp-$10]
004C7216   8B55F4                 mov     edx, [ebp-$0C]

* Reference to: system.@_lldiv;
|
004C7219   E8A4F5F3FF             call    004067C2                     ;除以$18
004C721E   8945F0                 mov     [ebp-$10], eax
004C7221   8955F4                 mov     [ebp-$0C], edx
004C7224   8B45F0                 mov     eax, [ebp-$10]
004C7227   8B55F4                 mov     edx, [ebp-$0C]
004C722A   2D84410100             sub     eax, $00014184
004C722F   83DA00                 sbb     edx, +$00                    ;减去$00014184
004C7232   8945F0                 mov     [ebp-$10], eax
004C7235   8955F4                 mov     [ebp-$0C], edx
004C7238   8D45D8                 lea     eax, [ebp-$28]

|
004C723B   E81840FFFF             call    004BB258
004C7240   8B45D8                 mov     eax, [ebp-$28]               ;eax保存着CPUID
004C7243   99                     cdq
004C7244   8945E8                 mov     [ebp-$18], eax
004C7247   8955EC                 mov     [ebp-$14], edx
004C724A   8B45F0                 mov     eax, [ebp-$10]
004C724D   8B55F4                 mov     edx, [ebp-$0C]
004C7250   3B55EC                 cmp     edx, [ebp-$14]
004C7253   754B                   jnz     004C72A0
004C7255   3B45E8                 cmp     eax, [ebp-$18]
004C7258   7546                   jnz     004C72A0
004C725A   6A00                   push    $00
004C725C   668B0D28734C00         mov     cx, word ptr [$4C7328]
004C7263   B202                   mov     dl, $02

* Possible String Reference to: '软件登记注册成功!'
|
004C7265   B834734C00             mov     eax, $004C7334

然后看看和机器码怎么挂钩:
004AC730   E87FFFFFFF             call    004AC6B4
004AC735   8B45E8                 mov     eax, [ebp-$18]               ;CPUID
004AC738   99                     cdq
004AC739   8945F8                 mov     [ebp-$08], eax
004AC73C   8955FC                 mov     [ebp-$04], edx
004AC73F   8B45F8                 mov     eax, [ebp-$08]
004AC742   8B55FC                 mov     edx, [ebp-$04]
004AC745   0584410100             add     eax, +$00014184              ;加上$00014184
004AC74A   83D200                 adc     edx, +$00
004AC74D   8945F8                 mov     [ebp-$08], eax
004AC750   8955FC                 mov     [ebp-$04], edx
004AC753   6A00                   push    $00
004AC755   6A18                   push    $18
004AC757   8B45F8                 mov     eax, [ebp-$08]
004AC75A   8B55FC                 mov     edx, [ebp-$04]

|
004AC75D   E81AA0F5FF             call    0040677C                     ;乘以$18
004AC762   8945F8                 mov     [ebp-$08], eax
004AC765   8955FC                 mov     [ebp-$04], edx
004AC768   8B45F8                 mov     eax, [ebp-$08]
004AC76B   8B55FC                 mov     edx, [ebp-$04]
004AC76E   2DCDB40000             sub     eax, $0000B4CD               ;减去$0000B4CD
004AC773   83DA00                 sbb     edx, +$00
004AC776   8945F8                 mov     [ebp-$08], eax
004AC779   8955FC                 mov     [ebp-$04], edx
004AC77C   6A00                   push    $00
004AC77E   6A4B                   push    $4B
004AC780   8B45F8                 mov     eax, [ebp-$08]
004AC783   8B55FC                 mov     edx, [ebp-$04]

|
004AC786   E8F19FF5FF             call    0040677C                     ;乘以$4B
004AC78B   8945F8                 mov     [ebp-$08], eax
004AC78E   8955FC                 mov     [ebp-$04], edx
004AC791   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    00408D04
004AC79F   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

------分隔线----------------------------
顶一下
(0)
0%
踩一下
(0)
0%
------分隔线----------------------------
最新评论 查看所有评论
发表评论 查看所有评论
请自觉遵守互联网相关的政策法规,严禁发布色情、暴力、反动的言论。
评价:
表情:
用户名: 密码: 验证码:
推荐内容