| 
注册时间2010-5-23
阅读权限30
最后登录1970-1-1UID66880 龙战于野 
 
 TA的每日心情|  | 开心 2023-6-2 15:44
 | 
|---|
 签到天数: 18 天 [LV.4]偶尔看看III | 
 
| 本帖最后由 blackk 于 2011-7-8 13:54 编辑 
 【破文标题】高效e人 Ver2.98(Build 243) 算法分析
 【破文作者】Blackk
 【作者邮箱】[email protected]
 【作者主页】Http://Blackk.co.cc
 【破解工具】OD
 【破解平台】XP SP3
 【软件名称】高效e人 Ver2.98(Build 243)
 【软件大小】3.96 MB
 【原版下载】http://www.gaoxiaoeren.com/download.htm
 【破解声明】本解密分析文章仅限用于学习和研究目的,不得将上述内容用于商业或者非法用途,否则,一切后果请用户自负。如果您喜欢该程序,请支持正版软件,购买注册,得到更好的正版服务。
 ------------------------------------------------------------------------
 【破解过程】bp MessageBoxExA
 
 
 //算法入口
 00B4378C  /$  55            push    ebp
 00B4378D  |.  8BEC          mov     ebp, esp
 00B4378F  |.  33C9          xor     ecx, ecx
 00B43791  |.  51            push    ecx
 00B43792  |.  51            push    ecx
 00B43793  |.  51            push    ecx
 00B43794  |.  51            push    ecx
 00B43795  |.  51            push    ecx
 00B43796  |.  53            push    ebx
 00B43797  |.  8BD8          mov     ebx, eax
 00B43799  |.  33C0          xor     eax, eax
 00B4379B  |.  55            push    ebp
 00B4379C  |.  68 A038B400   push    00B438A0
 00B437A1  |.  64:FF30       push    dword ptr fs:[eax]
 00B437A4  |.  64:8920       mov     dword ptr fs:[eax], esp
 00B437A7  |.  8D55 F8       lea     edx, dword ptr [ebp-8]
 00B437AA  |.  8BC3          mov     eax, ebx
 00B437AC  |.  E8 53010000   call    00B43904                         ;  取用户名
 00B437B1  |.  8B45 F8       mov     eax, dword ptr [ebp-8]
 00B437B4  |.  E8 CB198CFF   call    00405184                         ;  取用户名长度
 00B437B9  |.  85C0          test    eax, eax
 00B437BB  |.  75 3E         jnz     short 00B437FB                   ;  验证是否输入用户名
 00B437BD  |.  A0 AC38B400   mov     al, byte ptr [B438AC]
 00B437C2  |.  50            push    eax
 00B437C3  |.  B2 01         mov     dl, 1
 00B437C5  |.  A1 08179400   mov     eax, dword ptr [941708]
 00B437CA  |.  E8 256DE0FF   call    0094A4F4
 00B437CF  |.  8D55 F4       lea     edx, dword ptr [ebp-C]
 00B437D2  |.  E8 6962E0FF   call    00949A40
 00B437D7  |.  8B55 F4       mov     edx, dword ptr [ebp-C]
 00B437DA  |.  33C9          xor     ecx, ecx
 00B437DC  |.  A1 E87D8800   mov     eax, dword ptr [887DE8]
 00B437E1  |.  E8 3A59D4FF   call    00889120
 00B437E6  |.  8B93 28030000 mov     edx, dword ptr [ebx+328]
 00B437EC  |.  A1 347D8800   mov     eax, dword ptr [887D34]
 00B437F1  |.  E8 8A51D4FF   call    00888980
 00B437F6  |.  E8 F1EE8CFF   call    004126EC
 00B437FB  |>  E8 D0EAFCFF   call    00B122D0
 00B43800  |.  8945 FC       mov     dword ptr [ebp-4], eax
 00B43803  |.  33C0          xor     eax, eax
 00B43805  |.  55            push    ebp
 00B43806  |.  68 7E38B400   push    00B4387E
 00B4380B  |.  64:FF30       push    dword ptr fs:[eax]
 00B4380E  |.  64:8920       mov     dword ptr fs:[eax], esp
 00B43811  |.  8D55 F0       lea     edx, dword ptr [ebp-10]
 00B43814  |.  8BC3          mov     eax, ebx
 00B43816  |.  E8 95000000   call    00B438B0                         ;  取注册码
 00B4381B  |.  8B55 F0       mov     edx, dword ptr [ebp-10]
 00B4381E  |.  8B45 FC       mov     eax, dword ptr [ebp-4]
 00B43821  |.  E8 86C9E0FF   call    009501AC                         ;  算法CALL
 
 
 //算法CALL
 009501AC  /$  55            push ebp
 009501AD  |.  8BEC          mov ebp,esp
 009501AF  |.  B9 06000000   mov ecx,0x6
 009501B4  |>  6A 00         /push 0x0
 009501B6  |.  6A 00         |push 0x0
 009501B8  |.  49            |dec ecx
 009501B9  |.^ 75 F9         \jnz short Efficien.009501B4
 009501BB  |.  53            push ebx
 009501BC  |.  56            push esi
 009501BD  |.  57            push edi
 009501BE  |.  8BF2          mov esi,edx
 009501C0  |.  8BF8          mov edi,eax
 009501C2  |.  33C0          xor eax,eax
 009501C4  |.  55            push ebp
 009501C5  |.  68 85039500   push Efficien.00950385
 009501CA  |.  64:FF30       push dword ptr fs:[eax]
 009501CD  |.  64:8920       mov dword ptr fs:[eax],esp
 009501D0  |.  33DB          xor ebx,ebx
 009501D2  |.  8B47 08       mov eax,dword ptr ds:[edi+0x8]
 009501D5  |.  E8 AA4FABFF   call Efficien.00405184
 009501DA  |.  50            push eax
 009501DB  |.  8B47 0C       mov eax,dword ptr ds:[edi+0xC]
 009501DE  |.  E8 A14FABFF   call Efficien.00405184
 009501E3  |.  C1E0 02       shl eax,0x2
 009501E6  |.  5A            pop edx
 009501E7  |.  03D0          add edx,eax
 009501E9  |.  83C2 1B       add edx,0x1B
 009501EC  |.  42            inc edx
 009501ED  |.  52            push edx
 009501EE  |.  8BC6          mov eax,esi
 009501F0  |.  E8 8F4FABFF   call Efficien.00405184
 009501F5  |.  5A            pop edx
 009501F6  |.  3BD0          cmp edx,eax
 009501F8  |.  0F85 6C010000 jnz Efficien.0095036A                    ;  验证注册码是否37位
 009501FE  |.  8D4D F0       lea ecx,[local.4]
 00950201  |.  8BD6          mov edx,esi
 00950203  |.  8BC7          mov eax,edi
 00950205  |.  E8 8E010000   call Efficien.00950398
 0095020A  |.  8D45 FC       lea eax,[local.1]
 0095020D  |.  50            push eax
 0095020E  |.  8B47 08       mov eax,dword ptr ds:[edi+0x8]
 00950211  |.  E8 6E4FABFF   call Efficien.00405184
 00950216  |.  8BF0          mov esi,eax
 00950218  |.  8B47 0C       mov eax,dword ptr ds:[edi+0xC]
 0095021B  |.  E8 644FABFF   call Efficien.00405184
 00950220  |.  03F0          add esi,eax
 00950222  |.  8BCE          mov ecx,esi
 00950224  |.  BA 01000000   mov edx,0x1
 00950229  |.  8B45 F0       mov eax,[local.4]
 0095022C  |.  E8 B351ABFF   call Efficien.004053E4
 00950231  |.  8D45 EC       lea eax,[local.5]
 00950234  |.  8B4F 0C       mov ecx,dword ptr ds:[edi+0xC]
 00950237  |.  8B57 08       mov edx,dword ptr ds:[edi+0x8]
 0095023A  |.  E8 914FABFF   call Efficien.004051D0
 0095023F  |.  8B55 EC       mov edx,[local.5]
 00950242  |.  8B45 FC       mov eax,[local.1]
 00950245  |.  E8 16CAABFF   call Efficien.0040CC60                   ;  比较前6位是否为EP200-
 0095024A  |.  84C0          test al,al
 0095024C  |.  0F84 18010000 je Efficien.0095036A
 00950252  |.  8D45 E8       lea eax,[local.6]
 00950255  |.  50            push eax
 00950256  |.  8B47 08       mov eax,dword ptr ds:[edi+0x8]
 00950259  |.  E8 264FABFF   call Efficien.00405184
 0095025E  |.  8BD8          mov ebx,eax
 00950260  |.  8B47 0C       mov eax,dword ptr ds:[edi+0xC]
 00950263  |.  E8 1C4FABFF   call Efficien.00405184
 00950268  |.  03C0          add eax,eax
 0095026A  |.  03D8          add ebx,eax
 0095026C  |.  8BD3          mov edx,ebx
 0095026E  |.  83C2 07       add edx,0x7
 00950271  |.  B9 03000000   mov ecx,0x3
 00950276  |.  8B45 F0       mov eax,[local.4]
 00950279  |.  E8 6651ABFF   call Efficien.004053E4                   ;  取注册码第17、18、20位=A组
 0095027E  |.  8B45 E8       mov eax,[local.6]
 00950281  |.  50            push eax
 00950282  |.  8D45 E4       lea eax,[local.7]
 00950285  |.  50            push eax
 00950286  |.  8B47 08       mov eax,dword ptr ds:[edi+0x8]
 00950289  |.  E8 F64EABFF   call Efficien.00405184
 0095028E  |.  8BD8          mov ebx,eax
 00950290  |.  8B47 0C       mov eax,dword ptr ds:[edi+0xC]
 00950293  |.  E8 EC4EABFF   call Efficien.00405184
 00950298  |.  03D8          add ebx,eax
 0095029A  |.  8BD3          mov edx,ebx
 0095029C  |.  42            inc edx
 0095029D  |.  B9 06000000   mov ecx,0x6
 009502A2  |.  8B45 F0       mov eax,[local.4]
 009502A5  |.  E8 3A51ABFF   call Efficien.004053E4                   ;  取注册码第7、9、10、12、13、15位=B组
 009502AA  |.  8B55 E4       mov edx,[local.7]
 009502AD  |.  8D45 F8       lea eax,[local.2]
 009502B0  |.  59            pop ecx
 009502B1  |.  E8 1A4FABFF   call Efficien.004051D0                   ;  A、B组组合
 009502B6  |.  8D45 E0       lea eax,[local.8]
 009502B9  |.  50            push eax
 009502BA  |.  8B47 08       mov eax,dword ptr ds:[edi+0x8]
 009502BD  |.  E8 C24EABFF   call Efficien.00405184
 009502C2  |.  8BD8          mov ebx,eax
 009502C4  |.  8B47 0C       mov eax,dword ptr ds:[edi+0xC]
 009502C7  |.  E8 B84EABFF   call Efficien.00405184
 009502CC  |.  8D0440        lea eax,dword ptr ds:[eax+eax*2]
 009502CF  |.  03D8          add ebx,eax
 009502D1  |.  8BD3          mov edx,ebx
 009502D3  |.  83C2 0D       add edx,0xD
 009502D6  |.  B9 06000000   mov ecx,0x6
 009502DB  |.  8B45 F0       mov eax,[local.4]
 009502DE  |.  E8 0151ABFF   call Efficien.004053E4                   ;  取注册码第28、29、30、32、33、34位=C组
 009502E3  |.  8B45 E0       mov eax,[local.8]
 009502E6  |.  50            push eax
 009502E7  |.  8D45 DC       lea eax,[local.9]
 009502EA  |.  50            push eax
 009502EB  |.  8B47 08       mov eax,dword ptr ds:[edi+0x8]
 009502EE  |.  E8 914EABFF   call Efficien.00405184
 009502F3  |.  8BD8          mov ebx,eax
 009502F5  |.  8B47 0C       mov eax,dword ptr ds:[edi+0xC]
 009502F8  |.  E8 874EABFF   call Efficien.00405184
 009502FD  |.  03C0          add eax,eax
 009502FF  |.  03D8          add ebx,eax
 00950301  |.  8BD3          mov edx,ebx
 00950303  |.  83C2 0A       add edx,0xA
 00950306  |.  B9 03000000   mov ecx,0x3
 0095030B  |.  8B45 F0       mov eax,[local.4]
 0095030E  |.  E8 D150ABFF   call Efficien.004053E4                   ;  取注册码第22、24、25位=D组
 00950313  |.  8B55 DC       mov edx,[local.9]
 00950316  |.  8D45 F4       lea eax,[local.3]
 00950319  |.  59            pop ecx
 0095031A  |.  E8 B14EABFF   call Efficien.004051D0                   ;  C、D组组合
 0095031F  |.  8D4D F4       lea ecx,[local.3]
 
 小结:
 
 1. 取注册码第17、18、20位=A组
 2. 取注册码第7、9、10、12、13、15位=B组
 3. A、B组合(B在前A在后)
 4. 取注册码第28、29、30、32、33、34位=C组
 5. 取注册码第22、24、25位=D组
 6. C和D组合(D在前C在后)
 
 //接下来
 00950322  |.  8D55 F8       lea edx,[local.2]
 00950325  |.  8BC7          mov eax,edi
 00950327  |.  E8 64010000   call Efficien.00950490                   ;  两组数据移位运算
 0095032C  |.  8D45 D0       lea eax,[local.12]
 0095032F  |.  50            push eax
 00950330  |.  8B4F 04       mov ecx,dword ptr ds:[edi+0x4]
 00950333  |.  8B55 F8       mov edx,[local.2]
 00950336  |.  A1 78F79400   mov eax,dword ptr ds:[0x94F778]
 0095033B  |.  E8 28FCFFFF   call Efficien.0094FF68                   ;  加密运算1
 00950340  |.  8B55 D0       mov edx,[local.12]
 00950343  |.  8D4D D4       lea ecx,[local.11]
 00950346  |.  A1 847C8800   mov eax,dword ptr ds:[0x887C84]
 0095034B  |.  E8 6CA2F3FF   call Efficien.0088A5BC                   ;  加密运算2
 00950350  |.  8B55 D4       mov edx,[local.11]
 00950353  |.  8D4D D8       lea ecx,[local.10]
 00950356  |.  8BC7          mov eax,edi
 00950358  |.  E8 DBFDFFFF   call Efficien.00950138                   ;  取加密2的奇数位
 0095035D  |.  8B45 D8       mov eax,[local.10]
 00950360  |.  8B55 F4       mov edx,[local.3]
 00950363  |.  E8 F8C8ABFF   call Efficien.0040CC60                   ;  比较...相等就注册成功
 
 
 //移位运算入口
 00950490  /$  55            push ebp
 00950491  |.  8BEC          mov ebp,esp
 00950493  |.  51            push ecx
 00950494  |.  B9 09000000   mov ecx,0x9
 00950499  |>  6A 00         /push 0x0
 0095049B  |.  6A 00         |push 0x0
 0095049D  |.  49            |dec ecx
 0095049E  |.^ 75 F9         \jnz short Efficien.00950499
 009504A0  |.  51            push ecx
 009504A1  |.  874D FC       xchg [local.1],ecx
 009504A4  |.  53            push ebx
 009504A5  |.  56            push esi
 
 按以下方式两组数据交替移位
 
 009504D0  |.  B9 01000000   mov ecx,0x1
 009504D5  |.  BA 01000000   mov edx,0x1
 
 009504E9  |.  B9 01000000   mov ecx,0x1
 009504EE  |.  BA 08000000   mov edx,0x8
 
 00950502  |.  B9 01000000   mov ecx,0x1
 00950507  |.  BA 04000000   mov edx,0x4
 
 0095051B  |.  B9 01000000   mov ecx,0x1
 00950520  |.  BA 07000000   mov edx,0x7
 
 00950534  |.  B9 01000000   mov ecx,0x1
 00950539  |.  BA 05000000   mov edx,0x5
 
 0095054D  |.  B9 01000000   mov ecx,0x1
 00950552  |.  BA 09000000   mov edx,0x9
 
 00950566  |.  B9 01000000   mov ecx,0x1
 0095056B  |.  BA 02000000   mov edx,0x2
 
 0095057F  |.  B9 01000000   mov ecx,0x1
 00950584  |.  BA 03000000   mov edx,0x3
 
 00950598  |.  B9 01000000   mov ecx,0x1
 0095059D  |.  BA 06000000   mov edx,0x6
 
 ---------------------------------------
 
 009505BD  |.  B9 01000000   mov ecx,0x1
 009505C2  |.  BA 07000000   mov edx,0x7
 
 009505D6  |.  B9 01000000   mov ecx,0x1
 009505DB  |.  BA 08000000   mov edx,0x8
 
 009505EF  |.  B9 01000000   mov ecx,0x1
 009505F4  |.  BA 06000000   mov edx,0x6
 
 00950608  |.  B9 01000000   mov ecx,0x1
 0095060D  |.  BA 02000000   mov edx,0x2
 
 00950621  |.  B9 01000000   mov ecx,0x1
 00950626  |.  BA 04000000   mov edx,0x4
 
 0095063A  |.  B9 01000000   mov ecx,0x1
 0095063F  |.  BA 03000000   mov edx,0x3
 
 00950653  |.  B9 01000000   mov ecx,0x1
 00950658  |.  BA 01000000   mov edx,0x1
 
 0095066C  |.  B9 01000000   mov ecx,0x1
 00950671  |.  BA 05000000   mov edx,0x5
 
 00950685  |.  B9 01000000   mov ecx,0x1
 0095068A  |.  BA 09000000   mov edx,0x9
 
 
 移位小结:
 
 假设A组=578123567,B组=023568124
 
 先B组:
 A[1]-->B[1],B[8]-->B[2],B[4]-->B[3],A[7]-->B[4],A[5]-->B[5],A[9]-->B[6],B[2]-->B[7],A[3]-->B[8],B[6]-->B[9]
 
 再A组:
 
 B[7]-->A[1],A[8]-->A[2],A[6]-->A[3],A[2]-->A[4],A[4]-->A[5],B[3]-->A[6],B[1]-->A[7],B[5]-->A[8],B[9]-->A[9]
 
 移位结果:
 A组=163713064,B组=525527288
 
 
 //加密运算1入口
 0094FBC8  /$  55            push ebp
 0094FBC9  |.  8BEC          mov ebp,esp
 0094FBCB  |.  83C4 F0       add esp,-0x10
 0094FBCE  |.  53            push ebx
 0094FBCF  |.  56            push esi
 
 加密运算1是以加密移位后的B组数据为依据
 
 0094FC64  |> /8BC3          /mov eax,ebx
 0094FC66  |. |25 01000080   |and eax,0x80000001
 0094FC6B  |. |79 05         |jns short Efficien.0094FC72
 0094FC6D  |. |48            |dec eax
 0094FC6E  |. |83C8 FE       |or eax,-0x2
 0094FC71  |. |40            |inc eax
 0094FC72  |> |85C0          |test eax,eax
 0094FC74  |. |75 2D         |jnz short Efficien.0094FCA3
 0094FC76  |. |8BC6          |mov eax,esi
 0094FC78  |. |E8 5F57ABFF   |call Efficien.004053DC
 0094FC7D  |. |8D4418 FF     |lea eax,dword ptr ds:[eax+ebx-0x1]
 0094FC81  |. |50            |push eax
 0094FC82  |. |8B06          |mov eax,dword ptr ds:[esi]
 0094FC84  |. |0FB64418 FF   |movzx eax,byte ptr ds:[eax+ebx-0x1]     ;  偶数位依次放入Eax,参与运算
 0094FC89  |. |33D2          |xor edx,edx
 0094FC8B  |. |8A55 F7       |mov dl,byte ptr ss:[ebp-0x9]            ;  DL=2
 0094FC8E  |. |03C2          |add eax,edx
 0094FC90  |. |83E8 20       |sub eax,0x20
 0094FC93  |. |B9 5F000000   |mov ecx,0x5F
 0094FC98  |. |99            |cdq
 0094FC99  |. |F7F9          |idiv ecx
 0094FC9B  |. |83C2 20       |add edx,0x20                            ;  ((Eax-18) Mod 5F)+20
 0094FC9E  |. |58            |pop eax
 0094FC9F  |. |8810          |mov byte ptr ds:[eax],dl
 0094FCA1  |. |EB 2B         |jmp short Efficien.0094FCCE
 0094FCA3  |> |8BC6          |mov eax,esi
 0094FCA5  |. |E8 3257ABFF   |call Efficien.004053DC
 0094FCAA  |. |8D4418 FF     |lea eax,dword ptr ds:[eax+ebx-0x1]
 0094FCAE  |. |50            |push eax
 0094FCAF  |. |8B06          |mov eax,dword ptr ds:[esi]
 0094FCB1  |. |0FB64418 FF   |movzx eax,byte ptr ds:[eax+ebx-0x1]     ;  奇数位依次放入Eax,参与运算
 0094FCB6  |. |33D2          |xor edx,edx
 0094FCB8  |. |8A55 F6       |mov dl,byte ptr ss:[ebp-0xA]            ;  DL=4
 0094FCBB  |. |03C2          |add eax,edx
 0094FCBD  |. |83E8 20       |sub eax,0x20
 0094FCC0  |. |B9 5F000000   |mov ecx,0x5F
 0094FCC5  |. |99            |cdq
 0094FCC6  |. |F7F9          |idiv ecx
 0094FCC8  |. |83C2 20       |add edx,0x20
 0094FCCB  |. |58            |pop eax
 0094FCCC  |. |8810          |mov byte ptr ds:[eax],dl                ;  ((Eax-16) Mod 5F)+20
 0094FCCE  |> |43            |inc ebx
 0094FCCF  |. |4F            |dec edi
 0094FCD0  |.^\75 92         \jnz short Efficien.0094FC64
 
 运算结果:
 525527288 --> 9497696:<
 
 //把得到的数据反转
 0094FCDE  |> /8B06          /mov eax,dword ptr ds:[esi]
 0094FCE0  |. |8A4418 FF     |mov al,byte ptr ds:[eax+ebx-0x1]
 0094FCE4  |. |8845 F5       |mov byte ptr ss:[ebp-0xB],al
 0094FCE7  |. |8BC6          |mov eax,esi
 0094FCE9  |. |E8 EE56ABFF   |call Efficien.004053DC
 0094FCEE  |. |8B55 FC       |mov edx,[local.1]
 0094FCF1  |. |42            |inc edx
 0094FCF2  |. |2BD3          |sub edx,ebx
 0094FCF4  |. |8B0E          |mov ecx,dword ptr ds:[esi]
 0094FCF6  |. |8A5411 FF     |mov dl,byte ptr ds:[ecx+edx-0x1]
 0094FCFA  |. |885418 FF     |mov byte ptr ds:[eax+ebx-0x1],dl
 0094FCFE  |. |8BC6          |mov eax,esi
 0094FD00  |. |E8 D756ABFF   |call Efficien.004053DC
 0094FD05  |. |8B55 FC       |mov edx,[local.1]
 0094FD08  |. |42            |inc edx
 0094FD09  |. |2BD3          |sub edx,ebx
 0094FD0B  |. |8A4D F5       |mov cl,byte ptr ss:[ebp-0xB]
 0094FD0E  |. |884C10 FF     |mov byte ptr ds:[eax+edx-0x1],cl
 0094FD12  |. |43            |inc ebx
 0094FD13  |. |4F            |dec edi
 0094FD14  |.^\75 C8         \jnz short Efficien.0094FCDE
 
 运算结果:
 9497696:< --> <:6967949
 
 //以三个单位为一个小组,进行前移一位运算
 
 0094FD1D  |> /8B06          /mov eax,dword ptr ds:[esi]
 0094FD1F  |. |8A4418 FF     |mov al,byte ptr ds:[eax+ebx-0x1]
 0094FD23  |. |8845 F5       |mov byte ptr ss:[ebp-0xB],al
 0094FD26  |. |8BC6          |mov eax,esi
 0094FD28  |. |E8 AF56ABFF   |call Efficien.004053DC
 0094FD2D  |. |8B16          |mov edx,dword ptr ds:[esi]
 0094FD2F  |. |8A141A        |mov dl,byte ptr ds:[edx+ebx]
 0094FD32  |. |885418 FF     |mov byte ptr ds:[eax+ebx-0x1],dl
 0094FD36  |. |8BC6          |mov eax,esi
 0094FD38  |. |E8 9F56ABFF   |call Efficien.004053DC
 0094FD3D  |. |8B16          |mov edx,dword ptr ds:[esi]
 0094FD3F  |. |8A541A 01     |mov dl,byte ptr ds:[edx+ebx+0x1]
 0094FD43  |. |881418        |mov byte ptr ds:[eax+ebx],dl
 0094FD46  |. |8BC6          |mov eax,esi
 0094FD48  |. |E8 8F56ABFF   |call Efficien.004053DC
 0094FD4D  |. |8A55 F5       |mov dl,byte ptr ss:[ebp-0xB]
 0094FD50  |. |885418 01     |mov byte ptr ds:[eax+ebx+0x1],dl
 0094FD54  |. |83C3 03       |add ebx,0x3
 0094FD57  |> |8B45 FC        mov eax,[local.1]
 0094FD5A  |. |83E8 02       |sub eax,0x2
 0094FD5D  |. |3BD8          |cmp ebx,eax
 0094FD5F  |.^\7E BC         \jle short Efficien.0094FD1D
 
 运算结果:
 <:6967949 --> :6<679499
 
 //加密算法2入口
 0088A5BC  /$  53            push ebx
 0088A5BD  |.  56            push esi
 0088A5BE  |.  57            push edi
 0088A5BF  |.  55            push ebp
 0088A5C0  |.  83C4 F8       add esp,-0x8
 0088A5C3  |.  8BE9          mov ebp,ecx
 
 加密运算2是以加密运算1的结果为依据的运算
 
 //加密算法2
 0088A5F0  |> /8B0424        /mov eax,dword ptr ss:[esp]
 0088A5F3  |. |8B5424 04     |mov edx,dword ptr ss:[esp+0x4]
 0088A5F7  |. |0FB67410 FF   |movzx esi,byte ptr ds:[eax+edx-0x1]     ;  字符串ASC码依次放入Eax
 0088A5FC  |. |8BC6          |mov eax,esi
 0088A5FE  |. |83E0 0F       |and eax,0xF                             ;  Eax=Eax and F
 0088A601  |. |E8 A6FFFFFF   |call Efficien.0088A5AC                  ;  若Eax的值大于≥A,则Eax+37.否则Eax+30
 0088A606  |. |50            |push eax
 0088A607  |. |8BC5          |mov eax,ebp
 0088A609  |. |E8 CEADB7FF   |call Efficien.004053DC
 0088A60E  |. |5A            |pop edx
 0088A60F  |. |885418 FF     |mov byte ptr ds:[eax+ebx-0x1],dl
 0088A613  |. |43            |inc ebx
 0088A614  |. |8BC6          |mov eax,esi
 0088A616  |. |C1E8 04       |shr eax,0x4                             ;  将Eax的值右移4位
 0088A621  |.  E8 B6ADB7FF   |call Efficien.004053DC                  ;  若Eax的值大于≥A,则Eax+37.否则Eax+30
 0088A61E  |. |50            |push eax
 0088A61F  |. |8BC5          |mov eax,ebp
 0088A621  |. |E8 B6ADB7FF   |call Efficien.004053DC
 0088A626  |. |5A            |pop edx
 0088A627  |. |885418 FF     |mov byte ptr ds:[eax+ebx-0x1],dl
 0088A62B  |. |43            |inc ebx
 0088A62C  |. |FF4424 04     |inc dword ptr ss:[esp+0x4]
 0088A630  |. |4F            |dec edi
 0088A631  |.^\75 BD         \jnz short Efficien.0088A5F0
 
 运算结果:
 A363C3637393439393
 
 //取加密运算2结果的奇数位为最后结果
 00950358  |.  E8 DBFDFFFF   call Efficien.00950138
 
 得到结果:
 A6C679499
 
 
 将得到的结果和A组数据进行比较,若相同则注册成功
 
 0095035D  |.  8B45 D8       mov     eax, dword ptr [ebp-28]
 00950360  |.  8B55 F4       mov     edx, dword ptr [ebp-C]
 
 通过A组数据我们可以分析出A组数据每一位对应的是注册码的第几位,按顺序改成最终结果即可:
 
 修改位数顺序 17、33、30、24、28、10、7、13、20  修改注册码
 
 结果:
 A6C679499
 A组数据:
 163713064
 
 可用注册码:
 EP200-A12B4457695828416939095A4769890
 ------------------------------------------------------------------------
 【破解总结】
 
 如有错误请大牛指出
 ------------------------------------------------------------------------
 转载请说明出处
 | 
 评分
查看全部评分
 |