bt仓库的算法分析:
这个软件的算法其实并不难,只是进行的算法过长,让人看了有点晕晕的感觉
这个软件是由用户名得到注册码的,它首先对用户名进行判断,不足16位的用
00填充,大于的话只取前16位,然后把它分成4组,下面用c1,c3,c4,c5表示
同时还有3个中间量,c2,c6,c7.
运行软件后用olldbg的附加功能加载程序,点注册选项,下断点bp getdlgitem
输入假码,regname:ligyuan,regcode:123456789点击注册,被断下,Alt+F9返回
到这里:
0042D947  |>mov ecx,eax
0042D949  |>call <jmp.&MFC42.#3874>          //获取用户名
0042D94E  |>lea ecx,dword ptr ss:[ebp-10]
0042D951  |>push ecx
0042D952  |>push 414
0042D957  |>mov ecx,dword ptr ss:[ebp-24]
0042D95A  |>call <jmp.&MFC42.#3092>
0042D95F  |>mov ecx,eax
0042D961  |>call <jmp.&MFC42.#3874>        //获取注册码
0042D966  |>push ecx
0042D967  |>mov ecx,esp
0042D969  |>mov dword ptr ss:[ebp-18],esp
0042D96C  |>lea edx,dword ptr ss:[ebp-10]
0042D96F  |>push edx
0042D970  |>call <jmp.&MFC42.#535>
0042D975  |>mov dword ptr ss:[ebp-28],eax
0042D978  |>mov eax,dword ptr ss:[ebp-28]
0042D97B  |>mov dword ptr ss:[ebp-2C],eax
0042D97E  |>mov byte ptr ss:[ebp-4],2
0042D982  |>push ecx
0042D983  |>mov ecx,esp
0042D985  |>mov dword ptr ss:[ebp-1C],esp
0042D988  |>lea edx,dword ptr ss:[ebp-14]
0042D98B  |>push edx
0042D98C  |>call <jmp.&MFC42.#535>
0042D991  |>mov dword ptr ss:[ebp-30],eax        ; |
0042D994  |>mov ecx,BTLocal.0045C528             ; |
0042D999  |>mov byte ptr ss:[ebp-4],1            ; |这里就是关键call
0042D99D  |>call BTLocal.00436F88                ; \BTLocal.00436F88
0042D9A2  |>mov dword ptr ss:[ebp-34],eax
0042D9A5  |>cmp dword ptr ss:[ebp-34],0
0042D9A9  |>jnz short BTLocal.0042D9EB
跟进后很快你就回找到一个处理用户名的call,处理完后,在下面见call就F7,不久
就可以来到这里,具体的就不说了,很简单的,下面的几百行代码都是它的注册码
生成代码,熬了一个晚上才把它搞定。晕!!!!
/////////////////////////////////////////////////////
0043273B  /$ >push ebp
0043273C  |. >mov ebp,esp
0043273E  |. >sub esp,20
00432741  |. >mov dword ptr ss:[ebp-20],ecx        ; 一数据地址存栈
00432744  |. >mov eax,dword ptr ss:[ebp+8]         ; 取用户地址 
00432747  |. >mov ecx,dword ptr ds:[eax]           ;  取c1
00432749  |. >mov edx,dword ptr ss:[ebp-20]        ;
0043274C  |. >add ecx,dword ptr ds:[edx+4]         ;  与一数据相加
0043274F  |. >mov dword ptr ss:[ebp-4],ecx         ;  存于栈中
00432752  |. >mov eax,dword ptr ss:[ebp+8]
00432755  |. >mov ecx,dword ptr ds:[eax+4]         ;  取c3   
00432758  |. >mov edx,dword ptr ss:[ebp-20]        
0043275B  |. >add ecx,dword ptr ds:[edx+8]         ;  与一数据相加
0043275E  |. >mov dword ptr ss:[ebp-C],ecx         ;  存于栈中
00432761  |. >mov eax,dword ptr ss:[ebp+8]
00432764  |. >mov ecx,dword ptr ds:[eax+8]         ;  取c4
00432767  |. >mov edx,dword ptr ss:[ebp-20]
0043276A  |. >add ecx,dword ptr ds:[edx+C]         ;  与一数据相加
0043276D  |. >mov dword ptr ss:[ebp-10],ecx        ;  存于栈中
00432770  |. >mov eax,dword ptr ss:[ebp+8]
00432773  |. >mov ecx,dword ptr ds:[eax+C]         ;  取c5
00432776  |. >mov edx,dword ptr ss:[ebp-20]
00432779  |. >add ecx,dword ptr ds:[edx+10]        ;  与一数据相加
0043277C  |. >mov dword ptr ss:[ebp-14],ecx        ;  存于栈中
/////////////////////////////////////////////////////////////////////
/////////////////////////////////////////////////////////////////////
下面这段是对上面变换后的用户名进行处理的一个阶段,分8个部分,每部分执行的都是类似
操作,取一组用户名比如c1,循环右移0x8后得到c2,然后取c1的低8位值,由它在表中得到
一数据,把它与下一组(这里是c3)异或,并替换c3,取c1的低8位值,由它在表中得到一
数据与c3异或替换c3;c1循环右移0x10替换c2,c1循环右移0x18替换c1;取c2低8位,得一表
中数据并与再下一组相加并替换(这里是c4);取c1的低8位,得一数据与最后一组异或并替疑惑
换(这里是c5);只有少许不同。


0043277F  |. >mov eax,dword ptr ss:[ebp-4]         ;  取c1
00432782  |. >ror eax,8                            ;  循环右移0x8
00432785  |. >mov dword ptr ss:[ebp-8],eax         ;  存为c2
00432788  |. >mov ecx,dword ptr ss:[ebp-4]         ;  取c1
0043278B  |. >and ecx,0FF                          ;  取低8位
00432791  |. >mov edx,dword ptr ss:[ebp-C]         ;  取c3
00432794  |. >xor edx,dword ptr ds:[ecx*4+45B3C0]  ;  用一数据与edx异或
0043279B  |. >mov dword ptr ss:[ebp-C],edx         ;  替换原数据
0043279E  |. >mov eax,dword ptr ss:[ebp-8]         ;  取c2
004327A1  |. >and eax,0FF                          ;  取低2位
004327A6  |. >mov ecx,dword ptr ss:[ebp-C]         ;  取c3
004327A9  |. >add ecx,dword ptr ds:[eax*4+45B7C0]  ;  与表中一数据加
004327B0  |. >mov dword ptr ss:[ebp-C],ecx         ;  替换c3
004327B3  |. >mov edx,dword ptr ss:[ebp-4]         ;  取c1
004327B6  |. >ror edx,10                           ;  循环右移0x10
004327B9  |. >mov dword ptr ss:[ebp-8],edx         ;  替换c2
004327BC  |. >mov eax,dword ptr ss:[ebp-4]         ;  取c1
004327BF  |. >ror eax,18                           ;  循环右移0x18
004327C2  |. >mov dword ptr ss:[ebp-4],eax         ;  替换c1
004327C5  |. >mov ecx,dword ptr ss:[ebp-8]         ;  取c2
004327C8  |. >and ecx,0FF                          ;  取低8位
004327CE  |. >mov edx,dword ptr ss:[ebp-10]        ;  取c4
004327D1  |. >add edx,dword ptr ds:[ecx*4+45B3C0]  ;  与表中一数据相加
004327D8  |. >mov dword ptr ss:[ebp-10],edx        ;  替换c4
004327DB  |. >mov eax,dword ptr ss:[ebp-4]         ;  取c1
004327DE  |. >and eax,0FF                          ;  取低8位
004327E3  |. >mov ecx,dword ptr ss:[ebp-14]        ;  取c5
004327E6  |. >xor ecx,dword ptr ds:[eax*4+45B7C0]  ;  与表中一数据异或
004327ED  |. >mov dword ptr ss:[ebp-14],ecx        ;  替换c5
004327F0  |. >mov edx,dword ptr ss:[ebp-4]         ;  取c1
004327F3  |. >add edx,dword ptr ss:[ebp-14]        ;  与c5相加
004327F6  |. >mov dword ptr ss:[ebp-4],edx         ;  替换c1
/////////////////////////////////////////////////////////////////

004327F9  |. >mov eax,dword ptr ss:[ebp-C]         ;  取c3
004327FC  |. >ror eax,8                            ;  循环右移0x8
004327FF  |. >mov dword ptr ss:[ebp-8],eax         ;  替换c2
00432802  |. >mov ecx,dword ptr ss:[ebp-C]         ;  取c3
00432805  |. >and ecx,0FF                          ;  取低2位
0043280B  |. >mov edx,dword ptr ss:[ebp-10]        ;  取c4
0043280E  |. >xor edx,dword ptr ds:[ecx*4+45B3C0]  ;  与表中一数据异或
00432815  |. >mov dword ptr ss:[ebp-10],edx        ;  替换c4
00432818  |. >mov eax,dword ptr ss:[ebp-8]         ;  取c2
0043281B  |. >and eax,0FF                          ;  取低2位
00432820  |. >mov ecx,dword ptr ss:[ebp-10]        ;  取c4
00432823  |. >add ecx,dword ptr ds:[eax*4+45B7C0]  ;  与表中一数据相加
0043282A  |. >mov dword ptr ss:[ebp-10],ecx        ;  替换c4
0043282D  |. >mov edx,dword ptr ss:[ebp-C]         ;  取c3
00432830  |. >ror edx,10                           ;  取低2位
00432833  |. >mov dword ptr ss:[ebp-8],edx         ;  替换c2
00432836  |. >mov eax,dword ptr ss:[ebp-C]         ;  取c3
00432839  |. >ror eax,18                           ;  循环右移0x18
0043283C  |. >mov dword ptr ss:[ebp-C],eax         ;  替换c3
0043283F  |. >mov ecx,dword ptr ss:[ebp-8]         ;  取c2
00432842  |. >and ecx,0FF                          ;  取低2位
00432848  |. >mov edx,dword ptr ss:[ebp-14]        ;  取c5
0043284B  |. >add edx,dword ptr ds:[ecx*4+45B3C0]  ;  与表中一数据相加
00432852  |. >mov dword ptr ss:[ebp-14],edx        ;  替换c5
00432855  |. >mov eax,dword ptr ss:[ebp-C]         ;  取c3
00432858  |. >and eax,0FF                          ;  取低2位
0043285D  |. >mov ecx,dword ptr ss:[ebp-4]         ;  取c1
00432860  |. >xor ecx,dword ptr ds:[eax*4+45B7C0]  ;  与表中一数据异或
00432867  |. >mov dword ptr ss:[ebp-4],ecx         ;  替换c1
0043286A  |. >mov edx,dword ptr ss:[ebp-C]         ;  取c3
0043286D  |. >add edx,dword ptr ss:[ebp-10]        ;  与表中一数据相加
00432870  |. >mov dword ptr ss:[ebp-C],edx         ;  替换c3
////////////////////////////////////////////////////////////////////////

00432873  |. >mov eax,dword ptr ss:[ebp-10]        ;  取c4
00432876  |. >ror eax,8                            ;  循环右移0x8
00432879  |. >mov dword ptr ss:[ebp-8],eax         ;  替换c2
0043287C  |. >mov ecx,dword ptr ss:[ebp-10]        ;  取c4
0043287F  |. >and ecx,0FF                          ;  取低2位
00432885  |. >mov edx,dword ptr ss:[ebp-14]        ;  取c5
00432888  |. >xor edx,dword ptr ds:[ecx*4+45B3C0]  ;  与表中一数据异或
0043288F  |. >mov dword ptr ss:[ebp-14],edx        ;  替换c5
00432892  |. >mov eax,dword ptr ss:[ebp-8]         ;  取c2
00432895  |. >and eax,0FF                          ;  取低2位
0043289A  |. >mov ecx,dword ptr ss:[ebp-14]        ;  取c5
0043289D  |. >add ecx,dword ptr ds:[eax*4+45B7C0]  ;  与表中一数据加
004328A4  |. >mov dword ptr ss:[ebp-14],ecx        ;  替换c5
004328A7  |. >mov edx,dword ptr ss:[ebp-10]        ;  取c4
004328AA  |. >ror edx,10                           ;  循环右移 0x10
004328AD  |. >mov dword ptr ss:[ebp-8],edx         ;  替换c2
004328B0  |. >mov eax,dword ptr ss:[ebp-10]        ;  取c4
004328B3  |. >ror eax,18                           ;  循环右移0x18
004328B6  |. >mov dword ptr ss:[ebp-10],eax        ;  替换c4
004328B9  |. >mov ecx,dword ptr ss:[ebp-8]         ;  取c2
004328BC  |. >and ecx,0FF                          ;  取低2位
004328C2  |. >mov edx,dword ptr ss:[ebp-4]         ;  取c1
004328C5  |. >add edx,dword ptr ds:[ecx*4+45B3C0]  ;  与表中一数据加
004328CC  |. >mov dword ptr ss:[ebp-4],edx         ;  替换c1
004328CF  |. >mov eax,dword ptr ss:[ebp-10]        ;  取c4
004328D2  |. >and eax,0FF                          ;  取低2位
004328D7  |. >mov ecx,dword ptr ss:[ebp-C]         ;  取c3
004328DA  |. >xor ecx,dword ptr ds:[eax*4+45B7C0]  ;  与表中一数据异或
004328E1  |. >mov dword ptr ss:[ebp-C],ecx         ;  替换c3
//////////////////////////////////////////////////////////////////////

004328E4  |. >mov edx,dword ptr ss:[ebp-14]        ;  取c5
004328E7  |. >ror edx,8                            ;  循环右移0x8
004328EA  |. >mov dword ptr ss:[ebp-8],edx         ;  替换c2
004328ED  |. >mov eax,dword ptr ss:[ebp-14]        ;  取c5
004328F0  |. >and eax,0FF                          ;  取低2位
004328F5  |. >mov ecx,dword ptr ss:[ebp-4]         ;  取c1
004328F8  |. >xor ecx,dword ptr ds:[eax*4+45B3C0]  ;  与表中一数据异或
004328FF  |. >mov dword ptr ss:[ebp-4],ecx         ;  替换c1
00432902  |. >mov edx,dword ptr ss:[ebp-8]         ;  取c2
00432905  |. >and edx,0FF                          ;  取低2位
0043290B  |. >mov eax,dword ptr ss:[ebp-4]         ;  取c1
0043290E  |. >add eax,dword ptr ds:[edx*4+45B7C0]  ;  与表中一数据加
00432915  |. >mov dword ptr ss:[ebp-4],eax         ;  替换c1
00432918  |. >mov ecx,dword ptr ss:[ebp-14]        ;  取c5
0043291B  |. >ror ecx,10                           ;  循环右移0x10
0043291E  |. >mov dword ptr ss:[ebp-8],ecx         ;  替换c2
00432921  |. >mov edx,dword ptr ss:[ebp-14]        ;  取c5
00432924  |. >ror edx,18                           ;  循环右移0x18
00432927  |. >mov dword ptr ss:[ebp-14],edx        ;  替换c5
0043292A  |. >mov eax,dword ptr ss:[ebp-8]         ;  取c2
0043292D  |. >and eax,0FF                          ;  取低2位
00432932  |. >mov ecx,dword ptr ss:[ebp-C]         ;  取c3
00432935  |. >add ecx,dword ptr ds:[eax*4+45B3C0]  ;  与表中一数据加
0043293C  |. >mov dword ptr ss:[ebp-C],ecx         ;  替换c3
0043293F  |. >mov edx,dword ptr ss:[ebp-14]        ;  取c5
00432942  |. >and edx,0FF                          ;  取低位
00432948  |. >mov eax,dword ptr ss:[ebp-10]        ;  取c4
0043294B  |. >xor eax,dword ptr ds:[edx*4+45B7C0]  ;  与表中一数据异或
00432952  |. >mov dword ptr ss:[ebp-10],eax        ;  替换c4
/////////////////////////////////////////////////////////////////////////
下面这一段代码和上面的是完全一样的操作,相当于上面执行了两个回合
00432955  |. >mov ecx,dword ptr ss:[ebp-4]
00432958  |. >ror ecx,8
0043295B  |. >mov dword ptr ss:[ebp-8],ecx
0043295E  |. >mov edx,dword ptr ss:[ebp-4]        
00432961  |. >and edx,0FF
00432967  |. >mov eax,dword ptr ss:[ebp-C]
0043296A  |. >xor eax,dword ptr ds:[edx*4+45B3C0]
00432971  |. >mov dword ptr ss:[ebp-C],eax
00432974  |. >mov ecx,dword ptr ss:[ebp-8]
00432977  |. >and ecx,0FF
0043297D  |. >mov edx,dword ptr ss:[ebp-C]
00432980  |. >add edx,dword ptr ds:[ecx*4+45B7C0]
00432987  |. >mov dword ptr ss:[ebp-C],edx
0043298A  |. >mov eax,dword ptr ss:[ebp-4]
0043298D  |. >ror eax,10
00432990  |. >mov dword ptr ss:[ebp-8],eax
00432993  |. >mov ecx,dword ptr ss:[ebp-4]
00432996  |. >ror ecx,18
00432999  |. >mov dword ptr ss:[ebp-4],ecx
0043299C  |. >mov edx,dword ptr ss:[ebp-8]
0043299F  |. >and edx,0FF
004329A5  |. >mov eax,dword ptr ss:[ebp-10]
004329A8  |. >add eax,dword ptr ds:[edx*4+45B3C0]
004329AF  |. >mov dword ptr ss:[ebp-10],eax
004329B2  |. >mov ecx,dword ptr ss:[ebp-4]
004329B5  |. >and ecx,0FF
004329BB  |. >mov edx,dword ptr ss:[ebp-14]
004329BE  |. >xor edx,dword ptr ds:[ecx*4+45B7C0]
004329C5  |. >mov dword ptr ss:[ebp-14],edx
004329C8  |. >mov eax,dword ptr ss:[ebp-4]
004329CB  |. >add eax,dword ptr ss:[ebp-14]
004329CE  |. >mov dword ptr ss:[ebp-4],eax
004329D1  |. >mov ecx,dword ptr ss:[ebp-C]
004329D4  |. >ror ecx,8
004329D7  |. >mov dword ptr ss:[ebp-8],ecx
004329DA  |. >mov edx,dword ptr ss:[ebp-C]         
004329DD  |. >and edx,0FF
004329E3  |. >mov eax,dword ptr ss:[ebp-10]
004329E6  |. >xor eax,dword ptr ds:[edx*4+45B3C0]
004329ED  |. >mov dword ptr ss:[ebp-10],eax
004329F0  |. >mov ecx,dword ptr ss:[ebp-8]
004329F3  |. >and ecx,0FF
004329F9  |. >mov edx,dword ptr ss:[ebp-10]
004329FC  |. >add edx,dword ptr ds:[ecx*4+45B7C0]
00432A03  |. >mov dword ptr ss:[ebp-10],edx
00432A06  |. >mov eax,dword ptr ss:[ebp-C]
00432A09  |. >ror eax,10
00432A0C  |. >mov dword ptr ss:[ebp-8],eax
00432A0F  |. >mov ecx,dword ptr ss:[ebp-C]
00432A12  |. >ror ecx,18
00432A15  |. >mov dword ptr ss:[ebp-C],ecx
00432A18  |. >mov edx,dword ptr ss:[ebp-8]
00432A1B  |. >and edx,0FF
00432A21  |. >mov eax,dword ptr ss:[ebp-14]
00432A24  |. >add eax,dword ptr ds:[edx*4+45B3C0]
00432A2B  |. >mov dword ptr ss:[ebp-14],eax
00432A2E  |. >mov ecx,dword ptr ss:[ebp-C]
00432A31  |. >and ecx,0FF
00432A37  |. >mov edx,dword ptr ss:[ebp-4]
00432A3A  |. >xor edx,dword ptr ds:[ecx*4+45B7C0]
00432A41  |. >mov dword ptr ss:[ebp-4],edx
00432A44  |. >mov eax,dword ptr ss:[ebp-C]
00432A47  |. >add eax,dword ptr ss:[ebp-10]
00432A4A  |. >mov dword ptr ss:[ebp-C],eax
00432A4D  |. >mov ecx,dword ptr ss:[ebp-10]
00432A50  |. >ror ecx,8
00432A53  |. >mov dword ptr ss:[ebp-8],ecx
00432A56  |. >mov edx,dword ptr ss:[ebp-10]        
00432A59  |. >and edx,0FF
00432A5F  |. >mov eax,dword ptr ss:[ebp-14]
00432A62  |. >xor eax,dword ptr ds:[edx*4+45B3C0]
00432A69  |. >mov dword ptr ss:[ebp-14],eax
00432A6C  |. >mov ecx,dword ptr ss:[ebp-8]
00432A6F  |. >and ecx,0FF
00432A75  |. >mov edx,dword ptr ss:[ebp-14]
00432A78  |. >add edx,dword ptr ds:[ecx*4+45B7C0]
00432A7F  |. >mov dword ptr ss:[ebp-14],edx
00432A82  |. >mov eax,dword ptr ss:[ebp-10]
00432A85  |. >ror eax,10
00432A88  |. >mov dword ptr ss:[ebp-8],eax
00432A8B  |. >mov ecx,dword ptr ss:[ebp-10]
00432A8E  |. >ror ecx,18
00432A91  |. >mov dword ptr ss:[ebp-10],ecx
00432A94  |. >mov edx,dword ptr ss:[ebp-8]
00432A97  |. >and edx,0FF
00432A9D  |. >mov eax,dword ptr ss:[ebp-4]
00432AA0  |. >add eax,dword ptr ds:[edx*4+45B3C0]
00432AA7  |. >mov dword ptr ss:[ebp-4],eax
00432AAA  |. >mov ecx,dword ptr ss:[ebp-10]
00432AAD  |. >and ecx,0FF
00432AB3  |. >mov edx,dword ptr ss:[ebp-C]
00432AB6  |. >xor edx,dword ptr ds:[ecx*4+45B7C0]
00432ABD  |. >mov dword ptr ss:[ebp-C],edx
00432AC0  |. >mov eax,dword ptr ss:[ebp-14]
00432AC3  |. >ror eax,8
00432AC6  |. >mov dword ptr ss:[ebp-8],eax
00432AC9  |. >mov ecx,dword ptr ss:[ebp-14]        
00432ACC  |. >and ecx,0FF
00432AD2  |. >mov edx,dword ptr ss:[ebp-4]
00432AD5  |. >xor edx,dword ptr ds:[ecx*4+45B3C0]
00432ADC  |. >mov dword ptr ss:[ebp-4],edx
00432ADF  |. >mov eax,dword ptr ss:[ebp-8]
00432AE2  |. >and eax,0FF
00432AE7  |. >mov ecx,dword ptr ss:[ebp-4]
00432AEA  |. >add ecx,dword ptr ds:[eax*4+45B7C0]
00432AF1  |. >mov dword ptr ss:[ebp-4],ecx
00432AF4  |. >mov edx,dword ptr ss:[ebp-14]
00432AF7  |. >ror edx,10
00432AFA  |. >mov dword ptr ss:[ebp-8],edx
00432AFD  |. >mov eax,dword ptr ss:[ebp-14]
00432B00  |. >ror eax,18
00432B03  |. >mov dword ptr ss:[ebp-14],eax
00432B06  |. >mov ecx,dword ptr ss:[ebp-8]
00432B09  |. >and ecx,0FF
00432B0F  |. >mov edx,dword ptr ss:[ebp-C]
00432B12  |. >add edx,dword ptr ds:[ecx*4+45B3C0]
00432B19  |. >mov dword ptr ss:[ebp-C],edx
00432B1C  |. >mov eax,dword ptr ss:[ebp-14]
00432B1F  |. >and eax,0FF
00432B24  |. >mov ecx,dword ptr ss:[ebp-10]
00432B27  |. >xor ecx,dword ptr ds:[eax*4+45B7C0]
00432B2E  |. >mov dword ptr ss:[ebp-10],ecx
/////////////////////////////////////////////////////////////////////////////1
这里是对用户名处理的第二阶段:
找几段分析一下,看看规律
00432B31  |. >mov edx,dword ptr ss:[ebp-20]
00432B34  |. >mov eax,dword ptr ss:[ebp-4]         ;  取c1
00432B37  |. >add eax,dword ptr ds:[edx+14]        ;  与一数据加
00432B3A  |. >mov dword ptr ss:[ebp-1C],eax        ;  给c6赋值
00432B3D  |. >mov ecx,dword ptr ss:[ebp-4]         ;  取c1
00432B40  |. >rol ecx,0D                           ;  循环左移0xd
00432B43  |. >mov dword ptr ss:[ebp-4],ecx         ;  替换c1
00432B46  |. >mov edx,dword ptr ss:[ebp-20]
00432B49  |. >mov eax,dword ptr ss:[ebp-4]         ;  取c1
00432B4C  |. >imul eax,dword ptr ds:[edx+18]       ;  与一数据相乘
00432B50  |. >mov dword ptr ss:[ebp-8],eax         ;  替换c2
00432B53  |. >mov ecx,dword ptr ss:[ebp-1C]        ;  取c6
00432B56  |. >and ecx,1FF                          ;  取低9位(2进制)
00432B5C  |. >mov edx,dword ptr ds:[ecx*4+45B3C0]  ;  取一数据
00432B63  |. >mov dword ptr ss:[ebp-18],edx        ;  存于c7
00432B66  |. >mov eax,dword ptr ss:[ebp-8]         ;  取c2
00432B69  |. >rol eax,5                            ;  循环左移0x5
00432B6C  |. >mov dword ptr ss:[ebp-8],eax         ;  替换c2
00432B6F  |. >mov ecx,dword ptr ss:[ebp-8]         ;  取c2
00432B72  |. >mov edx,dword ptr ss:[ebp-1C]        ;  取c6
00432B75  |. >rol edx,cl                           ;  循环左移cl
00432B77  |. >mov eax,dword ptr ss:[ebp-10]        ;  取c4
00432B7A  |. >add eax,edx
00432B7C  |. >mov dword ptr ss:[ebp-10],eax        ;  替换c4
00432B7F  |. >mov ecx,dword ptr ss:[ebp-18]        ;  取c7
00432B82  |. >xor ecx,dword ptr ss:[ebp-8]         ;  与c2异或
00432B85  |. >mov dword ptr ss:[ebp-18],ecx        ;  替换c7
00432B88  |. >mov edx,dword ptr ss:[ebp-8]         ;  取c2
00432B8B  |. >rol edx,5                            ;  循环左移0x5
00432B8E  |. >mov dword ptr ss:[ebp-8],edx         ;  替换c2
00432B91  |. >mov eax,dword ptr ss:[ebp-18]        ;  取c7
00432B94  |. >xor eax,dword ptr ss:[ebp-8]         ;  与c2异或
00432B97  |. >mov dword ptr ss:[ebp-18],eax        ;  替换c7
00432B9A  |. >mov ecx,dword ptr ss:[ebp-14]        ;  取c5
00432B9D  |. >xor ecx,dword ptr ss:[ebp-8]         ;  与c2异或
00432BA0  |. >mov dword ptr ss:[ebp-14],ecx        ;  替换c5
00432BA3  |. >mov ecx,dword ptr ss:[ebp-8]         ;  取c2
00432BA6  |. >mov edx,dword ptr ss:[ebp-18]        ;  取c7
00432BA9  |. >rol edx,cl                           ;  循环左移cl
00432BAB  |. >mov eax,dword ptr ss:[ebp-C]         ;  取c3
00432BAE  |. >add eax,edx
00432BB0  |. >mov dword ptr ss:[ebp-C],eax         ;  替换c3
///////////////////////////////////////////////////////////2
00432BB3  |. >mov ecx,dword ptr ss:[ebp-20]
00432BB6  |. >mov edx,dword ptr ss:[ebp-C]         ;  取c3
00432BB9  |. >add edx,dword ptr ds:[ecx+1C]        ;  与一数据加
00432BBC  |. >mov dword ptr ss:[ebp-1C],edx        ;  替换c6
00432BBF  |. >mov eax,dword ptr ss:[ebp-C]         ;  取c3
00432BC2  |. >rol eax,0D                           ;  循环左移0xd
00432BC5  |. >mov dword ptr ss:[ebp-C],eax         ;  替换c3
00432BC8  |. >mov ecx,dword ptr ss:[ebp-20]
00432BCB  |. >mov edx,dword ptr ss:[ebp-C]         ;  取c3
00432BCE  |. >imul edx,dword ptr ds:[ecx+20]       ;  与一数据乘
00432BD2  |. >mov dword ptr ss:[ebp-8],edx         ;  替换c2
00432BD5  |. >mov eax,dword ptr ss:[ebp-1C]        ;  取c6
00432BD8  |. >and eax,1FF                          ;  取低9位(2进制)
00432BDD  |. >mov ecx,dword ptr ds:[eax*4+45B3C0]  ;  取 一数据
00432BE4  |. >mov dword ptr ss:[ebp-18],ecx        ;  替换c7
00432BE7  |. >mov edx,dword ptr ss:[ebp-8]         ;  取c2
00432BEA  |. >rol edx,5                            ;  循环左移0x5
00432BED  |. >mov dword ptr ss:[ebp-8],edx         ;  替换c2
00432BF0  |. >mov ecx,dword ptr ss:[ebp-8]         ;  取c2
00432BF3  |. >mov eax,dword ptr ss:[ebp-1C]        ;  取c6
00432BF6  |. >rol eax,cl                           ;  循环左移cl
00432BF8  |. >mov ecx,dword ptr ss:[ebp-14]        ;  取 c5
00432BFB  |. >add ecx,eax
00432BFD  |. >mov dword ptr ss:[ebp-14],ecx        ;  替换c5
00432C00  |. >mov edx,dword ptr ss:[ebp-18]        ;  取c7
00432C03  |. >xor edx,dword ptr ss:[ebp-8]         ;  与c2异或
00432C06  |. >mov dword ptr ss:[ebp-18],edx        ;  替换c7
00432C09  |. >mov eax,dword ptr ss:[ebp-8]         ;  取c2
00432C0C  |. >rol eax,5                            ;  循环左移0x5
00432C0F  |. >mov dword ptr ss:[ebp-8],eax         ;  替换c2
00432C12  |. >mov ecx,dword ptr ss:[ebp-18]        ;  取c7
00432C15  |. >xor ecx,dword ptr ss:[ebp-8]         ;  异或c2
00432C18  |. >mov dword ptr ss:[ebp-18],ecx        ;  替换c7
00432C1B  |. >mov edx,dword ptr ss:[ebp-4]         ;  取c1
00432C1E  |. >xor edx,dword ptr ss:[ebp-8]         ;  异或c2
00432C21  |. >mov dword ptr ss:[ebp-4],edx         ;  替换c1
00432C24  |. >mov ecx,dword ptr ss:[ebp-8]         ;  取c2
00432C27  |. >mov eax,dword ptr ss:[ebp-18]        ;  取c7
00432C2A  |. >rol eax,cl                           ;  循环左移cl
00432C2C  |. >mov ecx,dword ptr ss:[ebp-10]        ;  取c4
00432C2F  |. >add ecx,eax
00432C31  |. >mov dword ptr ss:[ebp-10],ecx        ;  替换c4
/////////////////////////////////////////////////////////////////3
下面这13个操做几乎都是雷同的代码,看都看花了
00432C34  |. >mov edx,dword ptr ss:[ebp-20]
00432C37  |. >mov eax,dword ptr ss:[ebp-10]
00432C3A  |. >add eax,dword ptr ds:[edx+24]
00432C3D  |. >mov dword ptr ss:[ebp-1C],eax
00432C40  |. >mov ecx,dword ptr ss:[ebp-10]
00432C43  |. >rol ecx,0D
00432C46  |. >mov dword ptr ss:[ebp-10],ecx
00432C49  |. >mov edx,dword ptr ss:[ebp-20]
00432C4C  |. >mov eax,dword ptr ss:[ebp-10]
00432C4F  |. >imul eax,dword ptr ds:[edx+28]
00432C53  |. >mov dword ptr ss:[ebp-8],eax
00432C56  |. >mov ecx,dword ptr ss:[ebp-1C]
00432C59  |. >and ecx,1FF
00432C5F  |. >mov edx,dword ptr ds:[ecx*4+45B3C0]
00432C66  |. >mov dword ptr ss:[ebp-18],edx
00432C69  |. >mov eax,dword ptr ss:[ebp-8]
00432C6C  |. >rol eax,5
00432C6F  |. >mov dword ptr ss:[ebp-8],eax
00432C72  |. >mov ecx,dword ptr ss:[ebp-8]
00432C75  |. >mov edx,dword ptr ss:[ebp-1C]
00432C78  |. >rol edx,cl
00432C7A  |. >mov eax,dword ptr ss:[ebp-4]
00432C7D  |. >add eax,edx
00432C7F  |. >mov dword ptr ss:[ebp-4],eax
00432C82  |. >mov ecx,dword ptr ss:[ebp-18]
00432C85  |. >xor ecx,dword ptr ss:[ebp-8]
00432C88  |. >mov dword ptr ss:[ebp-18],ecx
00432C8B  |. >mov edx,dword ptr ss:[ebp-8]
00432C8E  |. >rol edx,5
00432C91  |. >mov dword ptr ss:[ebp-8],edx
00432C94  |. >mov eax,dword ptr ss:[ebp-18]
00432C97  |. >xor eax,dword ptr ss:[ebp-8]
00432C9A  |. >mov dword ptr ss:[ebp-18],eax
00432C9D  |. >mov ecx,dword ptr ss:[ebp-C]
00432CA0  |. >xor ecx,dword ptr ss:[ebp-8]
00432CA3  |. >mov dword ptr ss:[ebp-C],ecx
00432CA6  |. >mov ecx,dword ptr ss:[ebp-8]
00432CA9  |. >mov edx,dword ptr ss:[ebp-18]
00432CAC  |. >rol edx,cl
00432CAE  |. >mov eax,dword ptr ss:[ebp-14]
00432CB1  |. >add eax,edx
00432CB3  |. >mov dword ptr ss:[ebp-14],eax
00432CB6  |. >mov ecx,dword ptr ss:[ebp-20]
00432CB9  |. >mov edx,dword ptr ss:[ebp-14]
00432CBC  |. >add edx,dword ptr ds:[ecx+2C]
00432CBF  |. >mov dword ptr ss:[ebp-1C],edx
00432CC2  |. >mov eax,dword ptr ss:[ebp-14]
00432CC5  |. >rol eax,0D
00432CC8  |. >mov dword ptr ss:[ebp-14],eax
00432CCB  |. >mov ecx,dword ptr ss:[ebp-20]
00432CCE  |. >mov edx,dword ptr ss:[ebp-14]
00432CD1  |. >imul edx,dword ptr ds:[ecx+30]
00432CD5  |. >mov dword ptr ss:[ebp-8],edx
00432CD8  |. >mov eax,dword ptr ss:[ebp-1C]
00432CDB  |. >and eax,1FF
00432CE0  |. >mov ecx,dword ptr ds:[eax*4+45B3C0]
00432CE7  |. >mov dword ptr ss:[ebp-18],ecx
00432CEA  |. >mov edx,dword ptr ss:[ebp-8]
00432CED  |. >rol edx,5
00432CF0  |. >mov dword ptr ss:[ebp-8],edx
00432CF3  |. >mov ecx,dword ptr ss:[ebp-8]
00432CF6  |. >mov eax,dword ptr ss:[ebp-1C]
00432CF9  |. >rol eax,cl
00432CFB  |. >mov ecx,dword ptr ss:[ebp-C]
00432CFE  |. >add ecx,eax
00432D00  |. >mov dword ptr ss:[ebp-C],ecx
00432D03  |. >mov edx,dword ptr ss:[ebp-18]
00432D06  |. >xor edx,dword ptr ss:[ebp-8]
00432D09  |. >mov dword ptr ss:[ebp-18],edx
00432D0C  |. >mov eax,dword ptr ss:[ebp-8]
00432D0F  |. >rol eax,5
00432D12  |. >mov dword ptr ss:[ebp-8],eax
00432D15  |. >mov ecx,dword ptr ss:[ebp-18]
00432D18  |. >xor ecx,dword ptr ss:[ebp-8]
00432D1B  |. >mov dword ptr ss:[ebp-18],ecx
00432D1E  |. >mov edx,dword ptr ss:[ebp-10]
00432D21  |. >xor edx,dword ptr ss:[ebp-8]
00432D24  |. >mov dword ptr ss:[ebp-10],edx
00432D27  |. >mov ecx,dword ptr ss:[ebp-8]
00432D2A  |. >mov eax,dword ptr ss:[ebp-18]
00432D2D  |. >rol eax,cl
00432D2F  |. >mov ecx,dword ptr ss:[ebp-4]
00432D32  |. >add ecx,eax
00432D34  |. >mov dword ptr ss:[ebp-4],ecx
/////////////////////////////////////////////////
00432D37  |. >mov edx,dword ptr ss:[ebp-20]
00432D3A  |. >mov eax,dword ptr ss:[ebp-4]
00432D3D  |. >add eax,dword ptr ds:[edx+34]
00432D40  |. >mov dword ptr ss:[ebp-1C],eax
00432D43  |. >mov ecx,dword ptr ss:[ebp-4]
00432D46  |. >rol ecx,0D
00432D49  |. >mov dword ptr ss:[ebp-4],ecx
00432D4C  |. >mov edx,dword ptr ss:[ebp-20]
00432D4F  |. >mov eax,dword ptr ss:[ebp-4]
00432D52  |. >imul eax,dword ptr ds:[edx+38]
00432D56  |. >mov dword ptr ss:[ebp-8],eax
00432D59  |. >mov ecx,dword ptr ss:[ebp-1C]
00432D5C  |. >and ecx,1FF
00432D62  |. >mov edx,dword ptr ds:[ecx*4+45B3C0]
00432D69  |. >mov dword ptr ss:[ebp-18],edx
00432D6C  |. >mov eax,dword ptr ss:[ebp-8]
00432D6F  |. >rol eax,5
00432D72  |. >mov dword ptr ss:[ebp-8],eax
00432D75  |. >mov ecx,dword ptr ss:[ebp-8]
00432D78  |. >mov edx,dword ptr ss:[ebp-1C]
00432D7B  |. >rol edx,cl
00432D7D  |. >mov eax,dword ptr ss:[ebp-10]
00432D80  |. >add eax,edx
00432D82  |. >mov dword ptr ss:[ebp-10],eax
00432D85  |. >mov ecx,dword ptr ss:[ebp-18]
00432D88  |. >xor ecx,dword ptr ss:[ebp-8]
00432D8B  |. >mov dword ptr ss:[ebp-18],ecx
00432D8E  |. >mov edx,dword ptr ss:[ebp-8]
00432D91  |. >rol edx,5
00432D94  |. >mov dword ptr ss:[ebp-8],edx
00432D97  |. >mov eax,dword ptr ss:[ebp-18]
00432D9A  |. >xor eax,dword ptr ss:[ebp-8]
00432D9D  |. >mov dword ptr ss:[ebp-18],eax
00432DA0  |. >mov ecx,dword ptr ss:[ebp-14]
00432DA3  |. >xor ecx,dword ptr ss:[ebp-8]
00432DA6  |. >mov dword ptr ss:[ebp-14],ecx
00432DA9  |. >mov ecx,dword ptr ss:[ebp-8]
00432DAC  |. >mov edx,dword ptr ss:[ebp-18]
00432DAF  |. >rol edx,cl
00432DB1  |. >mov eax,dword ptr ss:[ebp-C]
00432DB4  |. >add eax,edx
00432DB6  |. >mov dword ptr ss:[ebp-C],eax
///////////////////////////////////////////////
00432DB9  |. >mov ecx,dword ptr ss:[ebp-20]
00432DBC  |. >mov edx,dword ptr ss:[ebp-C]
00432DBF  |. >add edx,dword ptr ds:[ecx+3C]
00432DC2  |. >mov dword ptr ss:[ebp-1C],edx
00432DC5  |. >mov eax,dword ptr ss:[ebp-C]
00432DC8  |. >rol eax,0D
00432DCB  |. >mov dword ptr ss:[ebp-C],eax
00432DCE  |. >mov ecx,dword ptr ss:[ebp-20]
00432DD1  |. >mov edx,dword ptr ss:[ebp-C]
00432DD4  |. >imul edx,dword ptr ds:[ecx+40]
00432DD8  |. >mov dword ptr ss:[ebp-8],edx
00432DDB  |. >mov eax,dword ptr ss:[ebp-1C]
00432DDE  |. >and eax,1FF
00432DE3  |. >mov ecx,dword ptr ds:[eax*4+45B3C0]
00432DEA  |. >mov dword ptr ss:[ebp-18],ecx
00432DED  |. >mov edx,dword ptr ss:[ebp-8]
00432DF0  |. >rol edx,5
00432DF3  |. >mov dword ptr ss:[ebp-8],edx
00432DF6  |. >mov ecx,dword ptr ss:[ebp-8]
00432DF9  |. >mov eax,dword ptr ss:[ebp-1C]
00432DFC  |. >rol eax,cl
00432DFE  |. >mov ecx,dword ptr ss:[ebp-14]
00432E01  |. >add ecx,eax
00432E03  |. >mov dword ptr ss:[ebp-14],ecx
00432E06  |. >mov edx,dword ptr ss:[ebp-18]
00432E09  |. >xor edx,dword ptr ss:[ebp-8]
00432E0C  |. >mov dword ptr ss:[ebp-18],edx
00432E0F  |. >mov eax,dword ptr ss:[ebp-8]
00432E12  |. >rol eax,5
00432E15  |. >mov dword ptr ss:[ebp-8],eax
00432E18  |. >mov ecx,dword ptr ss:[ebp-18]
00432E1B  |. >xor ecx,dword ptr ss:[ebp-8]
00432E1E  |. >mov dword ptr ss:[ebp-18],ecx
00432E21  |. >mov edx,dword ptr ss:[ebp-4]
00432E24  |. >xor edx,dword ptr ss:[ebp-8]
00432E27  |. >mov dword ptr ss:[ebp-4],edx
00432E2A  |. >mov ecx,dword ptr ss:[ebp-8]
00432E2D  |. >mov eax,dword ptr ss:[ebp-18]
00432E30  |. >rol eax,cl
00432E32  |. >mov ecx,dword ptr ss:[ebp-10]
00432E35  |. >add ecx,eax
00432E37  |. >mov dword ptr ss:[ebp-10],ecx
///////////////////////////////////////////
00432E3A  |. >mov edx,dword ptr ss:[ebp-20]
00432E3D  |. >mov eax,dword ptr ss:[ebp-10]
00432E40  |. >add eax,dword ptr ds:[edx+44]
00432E43  |. >mov dword ptr ss:[ebp-1C],eax
00432E46  |. >mov ecx,dword ptr ss:[ebp-10]
00432E49  |. >rol ecx,0D
00432E4C  |. >mov dword ptr ss:[ebp-10],ecx
00432E4F  |. >mov edx,dword ptr ss:[ebp-20]
00432E52  |. >mov eax,dword ptr ss:[ebp-10]
00432E55  |. >imul eax,dword ptr ds:[edx+48]
00432E59  |. >mov dword ptr ss:[ebp-8],eax
00432E5C  |. >mov ecx,dword ptr ss:[ebp-1C]
00432E5F  |. >and ecx,1FF
00432E65  |. >mov edx,dword ptr ds:[ecx*4+45B3C0]
00432E6C  |. >mov dword ptr ss:[ebp-18],edx
00432E6F  |. >mov eax,dword ptr ss:[ebp-8]
00432E72  |. >rol eax,5
00432E75  |. >mov dword ptr ss:[ebp-8],eax
00432E78  |. >mov ecx,dword ptr ss:[ebp-8]
00432E7B  |. >mov edx,dword ptr ss:[ebp-1C]
00432E7E  |. >rol edx,cl
00432E80  |. >mov eax,dword ptr ss:[ebp-4]
00432E83  |. >add eax,edx
00432E85  |. >mov dword ptr ss:[ebp-4],eax
00432E88  |. >mov ecx,dword ptr ss:[ebp-18]
00432E8B  |. >xor ecx,dword ptr ss:[ebp-8]
00432E8E  |. >mov dword ptr ss:[ebp-18],ecx
00432E91  |. >mov edx,dword ptr ss:[ebp-8]
00432E94  |. >rol edx,5
00432E97  |. >mov dword ptr ss:[ebp-8],edx
00432E9A  |. >mov eax,dword ptr ss:[ebp-18]
00432E9D  |. >xor eax,dword ptr ss:[ebp-8]
00432EA0  |. >mov dword ptr ss:[ebp-18],eax
00432EA3  |. >mov ecx,dword ptr ss:[ebp-C]
00432EA6  |. >xor ecx,dword ptr ss:[ebp-8]
00432EA9  |. >mov dword ptr ss:[ebp-C],ecx
00432EAC  |. >mov ecx,dword ptr ss:[ebp-8]
00432EAF  |. >mov edx,dword ptr ss:[ebp-18]
00432EB2  |. >rol edx,cl
00432EB4  |. >mov eax,dword ptr ss:[ebp-14]
00432EB7  |. >add eax,edx
00432EB9  |. >mov dword ptr ss:[ebp-14],eax
/////////////////////////////////////////////////////
00432EBC  |. >mov ecx,dword ptr ss:[ebp-20]
00432EBF  |. >mov edx,dword ptr ss:[ebp-14]
00432EC2  |. >add edx,dword ptr ds:[ecx+4C]
00432EC5  |. >mov dword ptr ss:[ebp-1C],edx
00432EC8  |. >mov eax,dword ptr ss:[ebp-14]
00432ECB  |. >rol eax,0D
00432ECE  |. >mov dword ptr ss:[ebp-14],eax
00432ED1  |. >mov ecx,dword ptr ss:[ebp-20]
00432ED4  |. >mov edx,dword ptr ss:[ebp-14]
00432ED7  |. >imul edx,dword ptr ds:[ecx+50]
00432EDB  |. >mov dword ptr ss:[ebp-8],edx
00432EDE  |. >mov eax,dword ptr ss:[ebp-1C]
00432EE1  |. >and eax,1FF
00432EE6  |. >mov ecx,dword ptr ds:[eax*4+45B3C0]
00432EED  |. >mov dword ptr ss:[ebp-18],ecx
00432EF0  |. >mov edx,dword ptr ss:[ebp-8]
00432EF3  |. >rol edx,5
00432EF6  |. >mov dword ptr ss:[ebp-8],edx
00432EF9  |. >mov ecx,dword ptr ss:[ebp-8]
00432EFC  |. >mov eax,dword ptr ss:[ebp-1C]
00432EFF  |. >rol eax,cl
00432F01  |. >mov ecx,dword ptr ss:[ebp-C]
00432F04  |. >add ecx,eax
00432F06  |. >mov dword ptr ss:[ebp-C],ecx
00432F09  |. >mov edx,dword ptr ss:[ebp-18]
00432F0C  |. >xor edx,dword ptr ss:[ebp-8]
00432F0F  |. >mov dword ptr ss:[ebp-18],edx
00432F12  |. >mov eax,dword ptr ss:[ebp-8]
00432F15  |. >rol eax,5
00432F18  |. >mov dword ptr ss:[ebp-8],eax
00432F1B  |. >mov ecx,dword ptr ss:[ebp-18]
00432F1E  |. >xor ecx,dword ptr ss:[ebp-8]
00432F21  |. >mov dword ptr ss:[ebp-18],ecx
00432F24  |. >mov edx,dword ptr ss:[ebp-10]
00432F27  |. >xor edx,dword ptr ss:[ebp-8]
00432F2A  |. >mov dword ptr ss:[ebp-10],edx
00432F2D  |. >mov ecx,dword ptr ss:[ebp-8]
00432F30  |. >mov eax,dword ptr ss:[ebp-18]
00432F33  |. >rol eax,cl
00432F35  |. >mov ecx,dword ptr ss:[ebp-4]
00432F38  |. >add ecx,eax
00432F3A  |. >mov dword ptr ss:[ebp-4],ecx
/////////////////////////////////////////////////////
00432F3D  |. >mov edx,dword ptr ss:[ebp-20]
00432F40  |. >mov eax,dword ptr ss:[ebp-4]
00432F43  |. >add eax,dword ptr ds:[edx+54]
00432F46  |. >mov dword ptr ss:[ebp-1C],eax
00432F49  |. >mov ecx,dword ptr ss:[ebp-4]
00432F4C  |. >rol ecx,0D
00432F4F  |. >mov dword ptr ss:[ebp-4],ecx
00432F52  |. >mov edx,dword ptr ss:[ebp-20]
00432F55  |. >mov eax,dword ptr ss:[ebp-4]
00432F58  |. >imul eax,dword ptr ds:[edx+58]
00432F5C  |. >mov dword ptr ss:[ebp-8],eax
00432F5F  |. >mov ecx,dword ptr ss:[ebp-1C]
00432F62  |. >and ecx,1FF
00432F68  |. >mov edx,dword ptr ds:[ecx*4+45B3C0]
00432F6F  |. >mov dword ptr ss:[ebp-18],edx
00432F72  |. >mov eax,dword ptr ss:[ebp-8]
00432F75  |. >rol eax,5
00432F78  |. >mov dword ptr ss:[ebp-8],eax
00432F7B  |. >mov ecx,dword ptr ss:[ebp-8]
00432F7E  |. >mov edx,dword ptr ss:[ebp-1C]
00432F81  |. >rol edx,cl
00432F83  |. >mov eax,dword ptr ss:[ebp-10]
00432F86  |. >add eax,edx
00432F88  |. >mov dword ptr ss:[ebp-10],eax
00432F8B  |. >mov ecx,dword ptr ss:[ebp-18]
00432F8E  |. >xor ecx,dword ptr ss:[ebp-8]
00432F91  |. >mov dword ptr ss:[ebp-18],ecx
00432F94  |. >mov edx,dword ptr ss:[ebp-8]
00432F97  |. >rol edx,5
00432F9A  |. >mov dword ptr ss:[ebp-8],edx
00432F9D  |. >mov eax,dword ptr ss:[ebp-18]
00432FA0  |. >xor eax,dword ptr ss:[ebp-8]
00432FA3  |. >mov dword ptr ss:[ebp-18],eax
00432FA6  |. >mov ecx,dword ptr ss:[ebp-C]//取c3
00432FA9  |. >xor ecx,dword ptr ss:[ebp-8]//与c2异或
00432FAC  |. >mov dword ptr ss:[ebp-C],ecx//替换c3
00432FAF  |. >mov ecx,dword ptr ss:[ebp-8]
00432FB2  |. >mov edx,dword ptr ss:[ebp-18]
00432FB5  |. >rol edx,cl
00432FB7  |. >mov eax,dword ptr ss:[ebp-14]
00432FBA  |. >add eax,edx
00432FBC  |. >mov dword ptr ss:[ebp-14],eax
00432FBF  |. >mov ecx,dword ptr ss:[ebp-20]
00432FC2  |. >mov edx,dword ptr ss:[ebp-C]
00432FC5  |. >add edx,dword ptr ds:[ecx+5C]
00432FC8  |. >mov dword ptr ss:[ebp-1C],edx
00432FCB  |. >mov eax,dword ptr ss:[ebp-C]
00432FCE  |. >rol eax,0D
00432FD1  |. >mov dword ptr ss:[ebp-C],eax
/////////////////////////////////////////////////////
00432FD4  |. >mov ecx,dword ptr ss:[ebp-20]
00432FD7  |. >mov edx,dword ptr ss:[ebp-C]
00432FDA  |. >imul edx,dword ptr ds:[ecx+60]
00432FDE  |. >mov dword ptr ss:[ebp-8],edx
00432FE1  |. >mov eax,dword ptr ss:[ebp-1C]
00432FE4  |. >and eax,1FF
00432FE9  |. >mov ecx,dword ptr ds:[eax*4+45B3C0]
00432FF0  |. >mov dword ptr ss:[ebp-18],ecx
00432FF3  |. >mov edx,dword ptr ss:[ebp-8]
00432FF6  |. >rol edx,5
00432FF9  |. >mov dword ptr ss:[ebp-8],edx
00432FFC  |. >mov ecx,dword ptr ss:[ebp-8]
00432FFF  |. >mov eax,dword ptr ss:[ebp-1C]
00433002  |. >rol eax,cl
00433004  |. >mov ecx,dword ptr ss:[ebp-14]
00433007  |. >add ecx,eax
00433009  |. >mov dword ptr ss:[ebp-14],ecx
0043300C  |. >mov edx,dword ptr ss:[ebp-18]
0043300F  |. >xor edx,dword ptr ss:[ebp-8]
00433012  |. >mov dword ptr ss:[ebp-18],edx
00433015  |. >mov eax,dword ptr ss:[ebp-8]
00433018  |. >rol eax,5
0043301B  |. >mov dword ptr ss:[ebp-8],eax
0043301E  |. >mov ecx,dword ptr ss:[ebp-18]
00433021  |. >xor ecx,dword ptr ss:[ebp-8]
00433024  |. >mov dword ptr ss:[ebp-18],ecx
00433027  |. >mov edx,dword ptr ss:[ebp-10]
0043302A  |. >xor edx,dword ptr ss:[ebp-8]
0043302D  |. >mov dword ptr ss:[ebp-10],edx
00433030  |. >mov ecx,dword ptr ss:[ebp-8]
00433033  |. >mov eax,dword ptr ss:[ebp-18]
00433036  |. >rol eax,cl
00433038  |. >mov ecx,dword ptr ss:[ebp-4]
0043303B  |. >add ecx,eax
0043303D  |. >mov dword ptr ss:[ebp-4],ecx
//////////////////////////////////////////////////////////////
00433040  |. >mov edx,dword ptr ss:[ebp-20]
00433043  |. >mov eax,dword ptr ss:[ebp-10]
00433046  |. >add eax,dword ptr ds:[edx+64]
00433049  |. >mov dword ptr ss:[ebp-1C],eax
0043304C  |. >mov ecx,dword ptr ss:[ebp-10]
0043304F  |. >rol ecx,0D
00433052  |. >mov dword ptr ss:[ebp-10],ecx
00433055  |. >mov edx,dword ptr ss:[ebp-20]
00433058  |. >mov eax,dword ptr ss:[ebp-10]
0043305B  |. >imul eax,dword ptr ds:[edx+68]
0043305F  |. >mov dword ptr ss:[ebp-8],eax
00433062  |. >mov ecx,dword ptr ss:[ebp-1C]
00433065  |. >and ecx,1FF
0043306B  |. >mov edx,dword ptr ds:[ecx*4+45B3C0]
00433072  |. >mov dword ptr ss:[ebp-18],edx
00433075  |. >mov eax,dword ptr ss:[ebp-8]
00433078  |. >rol eax,5
0043307B  |. >mov dword ptr ss:[ebp-8],eax
0043307E  |. >mov ecx,dword ptr ss:[ebp-8]
00433081  |. >mov edx,dword ptr ss:[ebp-1C]
00433084  |. >rol edx,cl
00433086  |. >mov eax,dword ptr ss:[ebp-4]
00433089  |. >add eax,edx
0043308B  |. >mov dword ptr ss:[ebp-4],eax
0043308E  |. >mov ecx,dword ptr ss:[ebp-18]
00433091  |. >xor ecx,dword ptr ss:[ebp-8]
00433094  |. >mov dword ptr ss:[ebp-18],ecx
00433097  |. >mov edx,dword ptr ss:[ebp-8]
0043309A  |. >rol edx,5
0043309D  |. >mov dword ptr ss:[ebp-8],edx
004330A0  |. >mov eax,dword ptr ss:[ebp-18]
004330A3  |. >xor eax,dword ptr ss:[ebp-8]
004330A6  |. >mov dword ptr ss:[ebp-18],eax
004330A9  |. >mov ecx,dword ptr ss:[ebp-14]
004330AC  |. >xor ecx,dword ptr ss:[ebp-8]
004330AF  |. >mov dword ptr ss:[ebp-14],ecx
004330B2  |. >mov ecx,dword ptr ss:[ebp-8]
004330B5  |. >mov edx,dword ptr ss:[ebp-18]
004330B8  |. >rol edx,cl
004330BA  |. >mov eax,dword ptr ss:[ebp-C]
004330BD  |. >add eax,edx
004330BF  |. >mov dword ptr ss:[ebp-C],eax
004330C2  |. >mov ecx,dword ptr ss:[ebp-20]
004330C5  |. >mov edx,dword ptr ss:[ebp-14]
004330C8  |. >add edx,dword ptr ds:[ecx+6C]
004330CB  |. >mov dword ptr ss:[ebp-1C],edx
004330CE  |. >mov eax,dword ptr ss:[ebp-14]
004330D1  |. >rol eax,0D
004330D4  |. >mov dword ptr ss:[ebp-14],eax
//////////////////////////////////////////////////////////////////

004330D7  |. >mov ecx,dword ptr ss:[ebp-20]
004330DA  |. >mov edx,dword ptr ss:[ebp-14]
004330DD  |. >imul edx,dword ptr ds:[ecx+70]
004330E1  |. >mov dword ptr ss:[ebp-8],edx
004330E4  |. >mov eax,dword ptr ss:[ebp-1C]
004330E7  |. >and eax,1FF
004330EC  |. >mov ecx,dword ptr ds:[eax*4+45B3C0]
004330F3  |. >mov dword ptr ss:[ebp-18],ecx
004330F6  |. >mov edx,dword ptr ss:[ebp-8]
004330F9  |. >rol edx,5
004330FC  |. >mov dword ptr ss:[ebp-8],edx
004330FF  |. >mov ecx,dword ptr ss:[ebp-8]
00433102  |. >mov eax,dword ptr ss:[ebp-1C]
00433105  |. >rol eax,cl
00433107  |. >mov ecx,dword ptr ss:[ebp-C]
0043310A  |. >add ecx,eax
0043310C  |. >mov dword ptr ss:[ebp-C],ecx
0043310F  |. >mov edx,dword ptr ss:[ebp-18]
00433112  |. >xor edx,dword ptr ss:[ebp-8]
00433115  |. >mov dword ptr ss:[ebp-18],edx
00433118  |. >mov eax,dword ptr ss:[ebp-8]
0043311B  |. >rol eax,5
0043311E  |. >mov dword ptr ss:[ebp-8],eax
00433121  |. >mov ecx,dword ptr ss:[ebp-18]
00433124  |. >xor ecx,dword ptr ss:[ebp-8]
00433127  |. >mov dword ptr ss:[ebp-18],ecx
0043312A  |. >mov edx,dword ptr ss:[ebp-4]
0043312D  |. >xor edx,dword ptr ss:[ebp-8]
00433130  |. >mov dword ptr ss:[ebp-4],edx
00433133  |. >mov ecx,dword ptr ss:[ebp-8]
00433136  |. >mov eax,dword ptr ss:[ebp-18]
00433139  |. >rol eax,cl
0043313B  |. >mov ecx,dword ptr ss:[ebp-10]
0043313E  |. >add ecx,eax
00433140  |. >mov dword ptr ss:[ebp-10],ecx
///////////////////////////////////////////////////////
00433143  |. >mov edx,dword ptr ss:[ebp-20]
00433146  |. >mov eax,dword ptr ss:[ebp-4]
00433149  |. >add eax,dword ptr ds:[edx+74]
0043314C  |. >mov dword ptr ss:[ebp-1C],eax
0043314F  |. >mov ecx,dword ptr ss:[ebp-4]
00433152  |. >rol ecx,0D
00433155  |. >mov dword ptr ss:[ebp-4],ecx
00433158  |. >mov edx,dword ptr ss:[ebp-20]
0043315B  |. >mov eax,dword ptr ss:[ebp-4]
0043315E  |. >imul eax,dword ptr ds:[edx+78]
00433162  |. >mov dword ptr ss:[ebp-8],eax
00433165  |. >mov ecx,dword ptr ss:[ebp-1C]
00433168  |. >and ecx,1FF
0043316E  |. >mov edx,dword ptr ds:[ecx*4+45B3C0]
00433175  |. >mov dword ptr ss:[ebp-18],edx
00433178  |. >mov eax,dword ptr ss:[ebp-8]
0043317B  |. >rol eax,5
0043317E  |. >mov dword ptr ss:[ebp-8],eax
00433181  |. >mov ecx,dword ptr ss:[ebp-8]
00433184  |. >mov edx,dword ptr ss:[ebp-1C]
00433187  |. >rol edx,cl
00433189  |. >mov eax,dword ptr ss:[ebp-10]
0043318C  |. >add eax,edx
0043318E  |. >mov dword ptr ss:[ebp-10],eax
00433191  |. >mov ecx,dword ptr ss:[ebp-18]
00433194  |. >xor ecx,dword ptr ss:[ebp-8]
00433197  |. >mov dword ptr ss:[ebp-18],ecx
0043319A  |. >mov edx,dword ptr ss:[ebp-8]
0043319D  |. >rol edx,5
004331A0  |. >mov dword ptr ss:[ebp-8],edx
004331A3  |. >mov eax,dword ptr ss:[ebp-18]
004331A6  |. >xor eax,dword ptr ss:[ebp-8]
004331A9  |. >mov dword ptr ss:[ebp-18],eax
004331AC  |. >mov ecx,dword ptr ss:[ebp-C]
004331AF  |. >xor ecx,dword ptr ss:[ebp-8]
004331B2  |. >mov dword ptr ss:[ebp-C],ecx
004331B5  |. >mov ecx,dword ptr ss:[ebp-8]
004331B8  |. >mov edx,dword ptr ss:[ebp-18]
004331BB  |. >rol edx,cl
004331BD  |. >mov eax,dword ptr ss:[ebp-14]
004331C0  |. >add eax,edx
004331C2  |. >mov dword ptr ss:[ebp-14],eax
///////////////////////////////////////////////////////
004331C5  |. >mov ecx,dword ptr ss:[ebp-20]
004331C8  |. >mov edx,dword ptr ss:[ebp-C]
004331CB  |. >add edx,dword ptr ds:[ecx+7C]
004331CE  |. >mov dword ptr ss:[ebp-1C],edx
004331D1  |. >mov eax,dword ptr ss:[ebp-C]
004331D4  |. >rol eax,0D
004331D7  |. >mov dword ptr ss:[ebp-C],eax
004331DA  |. >mov ecx,dword ptr ss:[ebp-20]
004331DD  |. >mov edx,dword ptr ss:[ebp-C]
004331E0  |. >imul edx,dword ptr ds:[ecx+80]
004331E7  |. >mov dword ptr ss:[ebp-8],edx
004331EA  |. >mov eax,dword ptr ss:[ebp-1C]
004331ED  |. >and eax,1FF
004331F2  |. >mov ecx,dword ptr ds:[eax*4+45B3C0]
004331F9  |. >mov dword ptr ss:[ebp-18],ecx
004331FC  |. >mov edx,dword ptr ss:[ebp-8]
004331FF  |. >rol edx,5
00433202  |. >mov dword ptr ss:[ebp-8],edx
00433205  |. >mov ecx,dword ptr ss:[ebp-8]
00433208  |. >mov eax,dword ptr ss:[ebp-1C]
0043320B  |. >rol eax,cl
0043320D  |. >mov ecx,dword ptr ss:[ebp-14]
00433210  |. >add ecx,eax
00433212  |. >mov dword ptr ss:[ebp-14],ecx
00433215  |. >mov edx,dword ptr ss:[ebp-18]
00433218  |. >xor edx,dword ptr ss:[ebp-8]
0043321B  |. >mov dword ptr ss:[ebp-18],edx
0043321E  |. >mov eax,dword ptr ss:[ebp-8]
00433221  |. >rol eax,5
00433224  |. >mov dword ptr ss:[ebp-8],eax
00433227  |. >mov ecx,dword ptr ss:[ebp-18]
0043322A  |. >xor ecx,dword ptr ss:[ebp-8]
0043322D  |. >mov dword ptr ss:[ebp-18],ecx
00433230  |. >mov edx,dword ptr ss:[ebp-10]
00433233  |. >xor edx,dword ptr ss:[ebp-8]
00433236  |. >mov dword ptr ss:[ebp-10],edx
00433239  |. >mov ecx,dword ptr ss:[ebp-8]
0043323C  |. >mov eax,dword ptr ss:[ebp-18]
0043323F  |. >rol eax,cl
00433241  |. >mov ecx,dword ptr ss:[ebp-4]
00433244  |. >add ecx,eax
00433246  |. >mov dword ptr ss:[ebp-4],ecx
//////////////////////////////////////////////
00433249  |. >mov edx,dword ptr ss:[ebp-20]
0043324C  |. >mov eax,dword ptr ss:[ebp-10]
0043324F  |. >add eax,dword ptr ds:[edx+84]
00433255  |. >mov dword ptr ss:[ebp-1C],eax
00433258  |. >mov ecx,dword ptr ss:[ebp-10]
0043325B  |. >rol ecx,0D
0043325E  |. >mov dword ptr ss:[ebp-10],ecx
00433261  |. >mov edx,dword ptr ss:[ebp-20]
00433264  |. >mov eax,dword ptr ss:[ebp-10]
00433267  |. >imul eax,dword ptr ds:[edx+88]
0043326E  |. >mov dword ptr ss:[ebp-8],eax
00433271  |. >mov ecx,dword ptr ss:[ebp-1C]
00433274  |. >and ecx,1FF
0043327A  |. >mov edx,dword ptr ds:[ecx*4+45B3C0]
00433281  |. >mov dword ptr ss:[ebp-18],edx
00433284  |. >mov eax,dword ptr ss:[ebp-8]
00433287  |. >rol eax,5
0043328A  |. >mov dword ptr ss:[ebp-8],eax
0043328D  |. >mov ecx,dword ptr ss:[ebp-8]
00433290  |. >mov edx,dword ptr ss:[ebp-1C]
00433293  |. >rol edx,cl
00433295  |. >mov eax,dword ptr ss:[ebp-4]
00433298  |. >add eax,edx
0043329A  |. >mov dword ptr ss:[ebp-4],eax
0043329D  |. >mov ecx,dword ptr ss:[ebp-18]
004332A0  |. >xor ecx,dword ptr ss:[ebp-8]
004332A3  |. >mov dword ptr ss:[ebp-18],ecx
004332A6  |. >mov edx,dword ptr ss:[ebp-8]
004332A9  |. >rol edx,5
004332AC  |. >mov dword ptr ss:[ebp-8],edx
004332AF  |. >mov eax,dword ptr ss:[ebp-18]
004332B2  |. >xor eax,dword ptr ss:[ebp-8]
004332B5  |. >mov dword ptr ss:[ebp-18],eax
004332B8  |. >mov ecx,dword ptr ss:[ebp-14]
004332BB  |. >xor ecx,dword ptr ss:[ebp-8]
004332BE  |. >mov dword ptr ss:[ebp-14],ecx
004332C1  |. >mov ecx,dword ptr ss:[ebp-8]
004332C4  |. >mov edx,dword ptr ss:[ebp-18]
004332C7  |. >rol edx,cl
004332C9  |. >mov eax,dword ptr ss:[ebp-C]
004332CC  |. >add eax,edx
004332CE  |. >mov dword ptr ss:[ebp-C],eax
/////////////////////////////////////////////////
004332D1  |. >mov ecx,dword ptr ss:[ebp-20]
004332D4  |. >mov edx,dword ptr ss:[ebp-14]
004332D7  |. >add edx,dword ptr ds:[ecx+8C]
004332DD  |. >mov dword ptr ss:[ebp-1C],edx
004332E0  |. >mov eax,dword ptr ss:[ebp-14]
004332E3  |. >rol eax,0D
004332E6  |. >mov dword ptr ss:[ebp-14],eax
004332E9  |. >mov ecx,dword ptr ss:[ebp-20]
004332EC  |. >mov edx,dword ptr ss:[ebp-14]
004332EF  |. >imul edx,dword ptr ds:[ecx+90]
004332F6  |. >mov dword ptr ss:[ebp-8],edx
004332F9  |. >mov eax,dword ptr ss:[ebp-1C]
004332FC  |. >and eax,1FF
00433301  |. >mov ecx,dword ptr ds:[eax*4+45B3C0]
00433308  |. >mov dword ptr ss:[ebp-18],ecx
0043330B  |. >mov edx,dword ptr ss:[ebp-8]
0043330E  |. >rol edx,5
00433311  |. >mov dword ptr ss:[ebp-8],edx
00433314  |. >mov ecx,dword ptr ss:[ebp-8]
00433317  |. >mov eax,dword ptr ss:[ebp-1C]
0043331A  |. >rol eax,cl
0043331C  |. >mov ecx,dword ptr ss:[ebp-C]
0043331F  |. >add ecx,eax
00433321  |. >mov dword ptr ss:[ebp-C],ecx
00433324  |. >mov edx,dword ptr ss:[ebp-18]
00433327  |. >xor edx,dword ptr ss:[ebp-8]
0043332A  |. >mov dword ptr ss:[ebp-18],edx
0043332D  |. >mov eax,dword ptr ss:[ebp-8]
00433330  |. >rol eax,5
00433333  |. >mov dword ptr ss:[ebp-8],eax
00433336  |. >mov ecx,dword ptr ss:[ebp-18]
00433339  |. >xor ecx,dword ptr ss:[ebp-8]
0043333C  |. >mov dword ptr ss:[ebp-18],ecx
0043333F  |. >mov edx,dword ptr ss:[ebp-4]
00433342  |. >xor edx,dword ptr ss:[ebp-8]
00433345  |. >mov dword ptr ss:[ebp-4],edx
00433348  |. >mov ecx,dword ptr ss:[ebp-8]
0043334B  |. >mov eax,dword ptr ss:[ebp-18]
0043334E  |. >rol eax,cl
00433350  |. >mov ecx,dword ptr ss:[ebp-10]
00433353  |. >add ecx,eax
00433355  |. >mov dword ptr ss:[ebp-10],ecx
/////////////////////////////////////////////////////////////////////1
00433358  |>mov edx,dword ptr ss:[ebp-4]         ;  取c1 
0043335B  |>rol edx,8                            ;  循环左移0x8
0043335E  |>mov dword ptr ss:[ebp-8],edx         ;  替换c2
00433361  |>mov eax,dword ptr ss:[ebp-4]         ;  取c1
00433364  |>and eax,0FF                          ;  取低16位
00433369  |>mov ecx,dword ptr ss:[ebp-C]         ;  取c3
0043336C  |>xor ecx,dword ptr ds:[eax*4+45B7C0]  ;  与一数据异或
00433373  |>mov dword ptr ss:[ebp-C],ecx         ;  替换c3
00433376  |>mov edx,dword ptr ss:[ebp-8]         ;  取c2
00433379  |>and edx,0FF                          ;  取低16位
0043337F  |>mov eax,dword ptr ss:[ebp-10]        ;  取c4
00433382  |>sub eax,dword ptr ds:[edx*4+45B3C0]  ;  与一数据减
00433389  |>mov dword ptr ss:[ebp-10],eax        ;  替换c4
0043338C  |>mov ecx,dword ptr ss:[ebp-4]         ;  取c1
0043338F  |>rol ecx,10                           ;  循环左移0x10
00433392  |>mov dword ptr ss:[ebp-8],ecx         ;  替换c2
00433395  |>mov edx,dword ptr ss:[ebp-4]         ;  取c1
00433398  |>rol edx,18                           ;  循环左移0x18
0043339B  |>mov dword ptr ss:[ebp-4],edx         ;  替换c1
0043339E  |>mov eax,dword ptr ss:[ebp-8]         ;  取c2
004333A1  |>and eax,0FF                          ;  取低16位
004333A6  |>mov ecx,dword ptr ss:[ebp-14]        ;  取c5
004333A9  |>sub ecx,dword ptr ds:[eax*4+45B7C0]  ;  与一数据减
004333B0  |>mov dword ptr ss:[ebp-14],ecx        ;  替换c5
004333B3  |>mov edx,dword ptr ss:[ebp-4]         ;  取c1
004333B6  |>and edx,0FF                          ;  取低16位
004333BC  |>mov eax,dword ptr ss:[ebp-14]        ;  取c5
004333BF  |>xor eax,dword ptr ds:[edx*4+45B3C0]  ;  与一数据异或
004333C6  |>mov dword ptr ss:[ebp-14],eax        ;  替换c5
004333C9  |>mov ecx,dword ptr ss:[ebp-C]         ;  ///////////////2
///////////////////////////////////////////////////////////////////
下面7个变换几乎都是差不多的分析,不做过多的说明了
反正觉得这个软件就是很无聊
004333CC  |>rol ecx,8
004333CF  |>mov dword ptr ss:[ebp-8],ecx
004333D2  |>mov edx,dword ptr ss:[ebp-C]
004333D5  |>and edx,0FF
004333DB  |>mov eax,dword ptr ss:[ebp-10]
004333DE  |>xor eax,dword ptr ds:[edx*4+45B7C0]
004333E5  |>mov dword ptr ss:[ebp-10],eax
004333E8  |>mov ecx,dword ptr ss:[ebp-8]
004333EB  |>and ecx,0FF
004333F1  |>mov edx,dword ptr ss:[ebp-14]
004333F4  |>sub edx,dword ptr ds:[ecx*4+45B3C0]
004333FB  |>mov dword ptr ss:[ebp-14],edx
004333FE  |>mov eax,dword ptr ss:[ebp-C]
00433401  |>rol eax,10
00433404  |>mov dword ptr ss:[ebp-8],eax
00433407  |>mov ecx,dword ptr ss:[ebp-C]
0043340A  |>rol ecx,18
0043340D  |>mov dword ptr ss:[ebp-C],ecx
00433410  |>mov edx,dword ptr ss:[ebp-8]
00433413  |>and edx,0FF
00433419  |>mov eax,dword ptr ss:[ebp-4]
0043341C  |>sub eax,dword ptr ds:[edx*4+45B7C0]
00433423  |>mov dword ptr ss:[ebp-4],eax
00433426  |>mov ecx,dword ptr ss:[ebp-C]
00433429  |>and ecx,0FF
0043342F  |>mov edx,dword ptr ss:[ebp-4]
00433432  |>xor edx,dword ptr ds:[ecx*4+45B3C0]
00433439  |>mov dword ptr ss:[ebp-4],edx////////////////////////3
0043343C  |>mov eax,dword ptr ss:[ebp-10]
0043343F  |>sub eax,dword ptr ss:[ebp-C]
00433442  |>mov dword ptr ss:[ebp-10],eax
00433445  |>mov ecx,dword ptr ss:[ebp-10]
00433448  |>rol ecx,8
0043344B  |>mov dword ptr ss:[ebp-8],ecx
0043344E  |>mov edx,dword ptr ss:[ebp-10]
00433451  |>and edx,0FF
00433457  |>mov eax,dword ptr ss:[ebp-14]
0043345A  |>xor eax,dword ptr ds:[edx*4+45B7C0]
00433461  |>mov dword ptr ss:[ebp-14],eax
00433464  |>mov ecx,dword ptr ss:[ebp-8]
00433467  |>and ecx,0FF
0043346D  |>mov edx,dword ptr ss:[ebp-4]
00433470  |>sub edx,dword ptr ds:[ecx*4+45B3C0]
00433477  |>mov dword ptr ss:[ebp-4],edx
0043347A  |>mov eax,dword ptr ss:[ebp-10]
0043347D  |>rol eax,10
00433480  |>mov dword ptr ss:[ebp-8],eax
00433483  |>mov ecx,dword ptr ss:[ebp-10]
00433486  |>rol ecx,18
00433489  |>mov dword ptr ss:[ebp-10],ecx
0043348C  |>mov edx,dword ptr ss:[ebp-8]
0043348F  |>and edx,0FF
00433495  |>mov eax,dword ptr ss:[ebp-C]
00433498  |>sub eax,dword ptr ds:[edx*4+45B7C0]
0043349F  |>mov dword ptr ss:[ebp-C],eax
004334A2  |>mov ecx,dword ptr ss:[ebp-10]
004334A5  |>and ecx,0FF
004334AB  |>mov edx,dword ptr ss:[ebp-C]
004334AE  |>xor edx,dword ptr ds:[ecx*4+45B3C0]
004334B5  |>mov dword ptr ss:[ebp-C],edx//////////////////////////4
004334B8  |>mov eax,dword ptr ss:[ebp-14]
004334BB  |>sub eax,dword ptr ss:[ebp-4]
004334BE  |>mov dword ptr ss:[ebp-14],eax
004334C1  |>mov ecx,dword ptr ss:[ebp-14]
004334C4  |>rol ecx,8
004334C7  |>mov dword ptr ss:[ebp-8],ecx
004334CA  |>mov edx,dword ptr ss:[ebp-14]
004334CD  |>and edx,0FF
004334D3  |>mov eax,dword ptr ss:[ebp-4]
004334D6  |>xor eax,dword ptr ds:[edx*4+45B7C0]
004334DD  |>mov dword ptr ss:[ebp-4],eax
004334E0  |>mov ecx,dword ptr ss:[ebp-8]
004334E3  |>and ecx,0FF
004334E9  |>mov edx,dword ptr ss:[ebp-C]
004334EC  |>sub edx,dword ptr ds:[ecx*4+45B3C0]
004334F3  |>mov dword ptr ss:[ebp-C],edx
004334F6  |>mov eax,dword ptr ss:[ebp-14]
004334F9  |>rol eax,10
004334FC  |>mov dword ptr ss:[ebp-8],eax
004334FF  |>mov ecx,dword ptr ss:[ebp-14]
00433502  |>rol ecx,18
00433505  |>mov dword ptr ss:[ebp-14],ecx
00433508  |>mov edx,dword ptr ss:[ebp-8]
0043350B  |>and edx,0FF
00433511  |>mov eax,dword ptr ss:[ebp-10]
00433514  |>sub eax,dword ptr ds:[edx*4+45B7C0]
0043351B  |>mov dword ptr ss:[ebp-10],eax
0043351E  |>mov ecx,dword ptr ss:[ebp-14]
00433521  |>and ecx,0FF
00433527  |>mov edx,dword ptr ss:[ebp-10]
0043352A  |>xor edx,dword ptr ds:[ecx*4+45B3C0]
00433531  |>mov dword ptr ss:[ebp-10],edx 
00433534  |>mov eax,dword ptr ss:[ebp-4] //////////////////////////5
00433537  |>rol eax,8
0043353A  |>mov dword ptr ss:[ebp-8],eax
0043353D  |>mov ecx,dword ptr ss:[ebp-4]
00433540  |>and ecx,0FF
00433546  |>mov edx,dword ptr ss:[ebp-C]
00433549  |>xor edx,dword ptr ds:[ecx*4+45B7C0]
00433550  |>mov dword ptr ss:[ebp-C],edx
00433553  |>mov eax,dword ptr ss:[ebp-8]
00433556  |>and eax,0FF
0043355B  |>mov ecx,dword ptr ss:[ebp-10]
0043355E  |>sub ecx,dword ptr ds:[eax*4+45B3C0]
00433565  |>mov dword ptr ss:[ebp-10],ecx
00433568  |>mov edx,dword ptr ss:[ebp-4]
0043356B  |>rol edx,10
0043356E  |>mov dword ptr ss:[ebp-8],edx
00433571  |>mov eax,dword ptr ss:[ebp-4]
00433574  |>rol eax,18
00433577  |>mov dword ptr ss:[ebp-4],eax
0043357A  |>mov ecx,dword ptr ss:[ebp-8]
0043357D  |>and ecx,0FF
00433583  |>mov edx,dword ptr ss:[ebp-14]
00433586  |>sub edx,dword ptr ds:[ecx*4+45B7C0]
0043358D  |>mov dword ptr ss:[ebp-14],edx
00433590  |>mov eax,dword ptr ss:[ebp-4]
00433593  |>and eax,0FF
00433598  |>mov ecx,dword ptr ss:[ebp-14]
0043359B  |>xor ecx,dword ptr ds:[eax*4+45B3C0]
004335A2  |>mov dword ptr ss:[ebp-14],ecx ///////////////////////////////6
004335A5  |>mov edx,dword ptr ss:[ebp-C]
004335A8  |>rol edx,8
004335AB  |>mov dword ptr ss:[ebp-8],edx
004335AE  |>mov eax,dword ptr ss:[ebp-C]
004335B1  |>and eax,0FF
004335B6  |>mov ecx,dword ptr ss:[ebp-10]
004335B9  |>xor ecx,dword ptr ds:[eax*4+45B7C0]
004335C0  |>mov dword ptr ss:[ebp-10],ecx
004335C3  |>mov edx,dword ptr ss:[ebp-8]
004335C6  |>and edx,0FF
004335CC  |>mov eax,dword ptr ss:[ebp-14]
004335CF  |>sub eax,dword ptr ds:[edx*4+45B3C0]
004335D6  |>mov dword ptr ss:[ebp-14],eax
004335D9  |>mov ecx,dword ptr ss:[ebp-C]
004335DC  |>rol ecx,10
004335DF  |>mov dword ptr ss:[ebp-8],ecx
004335E2  |>mov edx,dword ptr ss:[ebp-C]
004335E5  |>rol edx,18
004335E8  |>mov dword ptr ss:[ebp-C],edx
004335EB  |>mov eax,dword ptr ss:[ebp-8]
004335EE  |>and eax,0FF
004335F3  |>mov ecx,dword ptr ss:[ebp-4]
004335F6  |>sub ecx,dword ptr ds:[eax*4+45B7C0]
004335FD  |>mov dword ptr ss:[ebp-4],ecx
00433600  |>mov edx,dword ptr ss:[ebp-C]
00433603  |>and edx,0FF
00433609  |>mov eax,dword ptr ss:[ebp-4]
0043360C  |>xor eax,dword ptr ds:[edx*4+45B3C0]
00433613  |>mov dword ptr ss:[ebp-4],eax /////////////////////////////7
00433616  |>mov ecx,dword ptr ss:[ebp-10]
00433619  |>sub ecx,dword ptr ss:[ebp-C]
0043361C  |>mov dword ptr ss:[ebp-10],ecx
0043361F  |>mov edx,dword ptr ss:[ebp-10]
00433622  |>rol edx,8
00433625  |>mov dword ptr ss:[ebp-8],edx
00433628  |>mov eax,dword ptr ss:[ebp-10]
0043362B  |>and eax,0FF
00433630  |>mov ecx,dword ptr ss:[ebp-14]
00433633  |>xor ecx,dword ptr ds:[eax*4+45B7C0]
0043363A  |>mov dword ptr ss:[ebp-14],ecx
0043363D  |>mov edx,dword ptr ss:[ebp-8]
00433640  |>and edx,0FF
00433646  |>mov eax,dword ptr ss:[ebp-4]
00433649  |>sub eax,dword ptr ds:[edx*4+45B3C0]
00433650  |>mov dword ptr ss:[ebp-4],eax
00433653  |>mov ecx,dword ptr ss:[ebp-10]
00433656  |>rol ecx,10
00433659  |>mov dword ptr ss:[ebp-8],ecx
0043365C  |>mov edx,dword ptr ss:[ebp-10]
0043365F  |>rol edx,18
00433662  |>mov dword ptr ss:[ebp-10],edx
00433665  |>mov eax,dword ptr ss:[ebp-8]
00433668  |>and eax,0FF
0043366D  |>mov ecx,dword ptr ss:[ebp-C]
00433670  |>sub ecx,dword ptr ds:[eax*4+45B7C0]
00433677  |>mov dword ptr ss:[ebp-C],ecx
0043367A  |>mov edx,dword ptr ss:[ebp-10]
0043367D  |>and edx,0FF
00433683  |>mov eax,dword ptr ss:[ebp-C]
00433686  |>xor eax,dword ptr ds:[edx*4+45B3C0]
0043368D  |>mov dword ptr ss:[ebp-C],eax    //////////////////8
00433690  |>mov ecx,dword ptr ss:[ebp-14]
00433693  |>sub ecx,dword ptr ss:[ebp-4]
00433696  |>mov dword ptr ss:[ebp-14],ecx
00433699  |>mov edx,dword ptr ss:[ebp-14]
0043369C  |>rol edx,8
0043369F  |>mov dword ptr ss:[ebp-8],edx
004336A2  |>mov eax,dword ptr ss:[ebp-14]
004336A5  |>and eax,0FF
004336AA  |>mov ecx,dword ptr ss:[ebp-4]
004336AD  |>xor ecx,dword ptr ds:[eax*4+45B7C0]
004336B4  |>mov dword ptr ss:[ebp-4],ecx
004336B7  |>mov edx,dword ptr ss:[ebp-8]
004336BA  |>and edx,0FF
004336C0  |>mov eax,dword ptr ss:[ebp-C]
004336C3  |>sub eax,dword ptr ds:[edx*4+45B3C0]
004336CA  |>mov dword ptr ss:[ebp-C],eax
004336CD  |>mov ecx,dword ptr ss:[ebp-14]
004336D0  |>rol ecx,10
004336D3  |>mov dword ptr ss:[ebp-8],ecx
004336D6  |>mov edx,dword ptr ss:[ebp-14]
004336D9  |>rol edx,18
004336DC  |>mov dword ptr ss:[ebp-14],edx
004336DF  |>mov eax,dword ptr ss:[ebp-8]
004336E2  |>and eax,0FF
004336E7  |>mov ecx,dword ptr ss:[ebp-10]
004336EA  |>sub ecx,dword ptr ds:[eax*4+45B7C0]
004336F1  |>mov dword ptr ss:[ebp-10],ecx
004336F4  |>mov edx,dword ptr ss:[ebp-14]
004336F7  |>and edx,0FF
004336FD  |>mov eax,dword ptr ss:[ebp-10]
00433700  |>xor eax,dword ptr ds:[edx*4+45B3C0]
00433707  |>mov dword ptr ss:[ebp-10],eax 
/////////////////////////////////////////////////////////////结束
终于到头了,搞了一通宵,终于看见了太阳
0043370A  |>mov ecx,dword ptr ss:[ebp-20]
0043370D  |>mov edx,dword ptr ss:[ebp-4]
00433710  |>sub edx,dword ptr ds:[ecx+94]
00433716  |>mov eax,dword ptr ss:[ebp+C]
00433719  |>mov dword ptr ds:[eax],edx     //开始生成真正的第一部分注册码 
0043371B  |>mov ecx,dword ptr ss:[ebp-20]
0043371E  |>mov edx,dword ptr ss:[ebp-C]
00433721  |>sub edx,dword ptr ds:[ecx+98]
00433727  |>mov eax,dword ptr ss:[ebp+C]
0043372A  |>mov dword ptr ds:[eax+4],edx   //这里是第二部分注册码
0043372D  |>mov ecx,dword ptr ss:[ebp-20]
00433730  |>mov edx,dword ptr ss:[ebp-10]
00433733  |>sub edx,dword ptr ds:[ecx+9C]
00433739  |>mov eax,dword ptr ss:[ebp+C]
0043373C  |>mov dword ptr ds:[eax+8],edx   //这里是第三部分
0043373F  |>mov ecx,dword ptr ss:[ebp-20]
00433742  |>mov edx,dword ptr ss:[ebp-14]
00433745  |>sub edx,dword ptr ds:[ecx+A0]
0043374B  |>mov eax,dword ptr ss:[ebp+C]  
0043374E  |>mov dword ptr ds:[eax+C],edx   //这里是第四部分
00433751  |>mov esp,ebp
00433753  |>pop ebp
00433754  \>retn 8
总共生成32个字符,从这里返回后就开始进行比较。没有什么可以看的,就是只用
简单的strcmp这个函数来进行校对。
void main()
{

char list1[]="\xD0\xB3\x4C\x5D\x57\xC8\xF9\xEC\x39\xA7\x4E\x7D\x8D\x9D\x2C\xAC\xAA\xE0\xC4\xA7"
"\x8B\x90\x41\x72\xCF\xB3\x10\x76\x4F\x6F\xFA\x17\xBB\x6D\x73\x3A\xAF\x8E\x44\x1F"
"\xF9\x3F\x30\x7E\xBF\x23\x8B\xCA\x71\x82\xFF\x1F\xD7\x42\xA0\xEF\x11\x10\xC8\x15"
"\x0F\x88\x94\x7F\x68\x97\xAC\xA6\xAF\xA0\x7B\x4A\x7C\x8C\x35\xBA\x5F\x37\x41\xEC"
"\x1B\x3E\x5F\x0C\x9F\x28\x3B\x15\x02\x11\x4B\x37\x3F\x5C\x40\x44\x9C\xE8\xFA\x85"
"\x07\x89\x0B\x18\xBC\x6B\x76\x7B\xFB\x16\xF5\x13\x02\x25\x4A\xA8\x2F\x39\x52\xC0"
"\x9B\x5A\xE6\x4C\x33\xE5\x26\x5D\xFF\x26\x94\xCC\x43\xF0\x28\xB8\xEC\x68\x77\xE7"
"\x77\x2A\x86\x9C\x84\x65\x05\x7C\x52\xA4\xF0\xCC\xC5\x99\xA6\x4B\x3A\xCE\x42\x04";

char list2[]="\x79\xC4\xD0\x09\xE0\xFF\xC8\x28\x39\x6C\xAA\x84\x87\x72\xAD\x9D\xE3\x9B\xFF\x7D"
"\x61\x83\x26\xD4\xD4\xA1\x6D\xC9\x93\xCC\x74\x79\x2E\x58\xD0\x85\x05\x57\x4B\x2A"
"\x62\x6A\xA1\x1C\x9D\x27\xBD\xC3\xE5\x25\x1F\x0F\x2F\x37\x60\x51\xFB\xC1\x95\xC6"
"\xE4\xF1\x7F\x4D\xF4\x6B\x5F\xAE\x46\xEE\x72\x0D\x8A\xDE\x23\xFF\x83\x8E\xCF\xB1"
"\xE2\x02\x49\xF1\x42\x1E\x98\x3E\xB6\x3E\xF5\x8B\xAC\xF8\x4B\x7F\x83\x1F\x63\x83"
"\x05\x02\x97\x25\x84\xE7\xAF\x76\xD4\x31\x79\x3A\x50\x64\x84\x4F\xF6\xC3\x64\x5C"
"\x18\x5F\x0A\x21\x26\x6A\x98\xC6\x26\xE8\xF4\x28\x1C\xA8\x60\x3A\x64\xA6\x40\xD3"
"\xC4\x20\xA8\x7E\xC5\x87\x66\x52\x2B\xD1\xDD\x7E\x1D\x1D\xA1\x32\x86\xF0\x9E\x9C"
"\x31\xE8\xF6\x80\xAD\x04\x6F\xAB\x53\x9B\xFB\x56\x5C\x09\x2E\x8B\xAE\x56\x85\xB6"
"\x0D\x0B\x25\xD2\x21\x77\x4A\x29\x53\xB2\x1F\xE2\x49\x67\x13\xAE\x86\xAE\x2A\xE8"
"\x04\x51\x36\x93\x66\x4A\x40\x99\xDC\x84\xA7\x78\x4B\xA8\x9B\xB6\x93\x67\x04\x04"
"\x1E\x5C\xDB\x23\xD6\xE1\xCA\x46\x34\x81\xE2\x2F\x42\x39\x22\x5A\x5B\xCD\x63\x18"
"\xE3\xC6\x90\xC1\x46\xB8\xDF\x07\x16\x88\xB8\x6E\x4A\xCC\x0D\x2D\x59\xAE\xCC\xA4"
"\x0D\x67\x98\x37\x93\x94\xFA\xCB\x45\x1D\x48\x4F\xA8\x8C\xFC\xEA\xD6\x29\x11\xDB"
"\x20\x9E\x44\xB0\xFB\x07\x54\x0F\xA8\xD9\x67\x61\x63\x57\xF4\xD1\xC3\x96\xAA\x4D"
"\x58\x59\xEC\x3B\x14\xA0\xAB\xAB\x01\xD2\xCC\xB6\x9F\x27\xD6\x38\x15\x22\x68\x02"
"\xD5\x6C\x37\x8F\x7E\x23\x2C\x09\x93\x65\xC5\xBF\x2C\x9D\x88\x32\x95\x3E\x4B\x85"
"\x43\x9B\xBB\x05\xCD\x5D\xCD\x7D\x6C\x92\x2E\xA0\xE5\x27\xE5\xFA\x30\xC3\xA1\x36"
"\xAE\xE1\x12\x34\x62\xF4\x57\xF2\x71\x1D\x4F\x3C\x09\xE8\xA2\x30\x51\xF5\xE5\x68"
"\x44\xBA\x61\x9C\xB8\x0A\xED\x5D\xC8\x09\xCE\x75\x3E\xF9\x54\x96\xCA\x0C\x8C\x69"
"\xE4\xB3\x3C\x24\x97\x2B\x06\x2B\x9E\x8D\x3B\x0F\xDF\x50\xE0\x00\x66\x61\x5D\xFC"
"\x88\x92\x5F\xE3\x0D\x55\x79\xC0\xE8\xAE\x91\x05\x74\x1E\x53\x8E\x78\x35\xFE\x75"
"\x9A\x82\x6D\x2F\xAE\x21\x0B\xF6\x8D\xEB\xE8\x95\x6B\x48\x99\x66\x9B\x7D\x1D\x90"
"\x31\x6E\x6D\xFD\xEF\xAC\x90\x10\xD8\x0D\x67\xE0\x92\xE6\xB2\xDA\x65\x43\x6D\xCD"
"\x14\x35\x39\xE5\xF0\x45\xF3\x3A\x4D\xFC\x41\x62\xA3\xA3\x0D\x46\x29\x37\xCF\x7B"
"\xE0\xD1\xF1\x8B\x70\xC0\xAA\x14\x55\xED\x87\x15\x3E\x7D\xFD\x3A\x01\x9E\xF2\xD2"
"\xF6\xD1\xA9\x29\x53\x0C\xB1\xEF\x0F\x87\x3B\xCF\x5C\x93\x14\xB4\xED\x65\x44\x66"
"\xC7\xCA\x4A\x02\xC1\x44\xA7\x59\xA7\x36\x29\x1D\xA6\x0A\x58\xDC\xA8\x4C\x57\xCF"
"\x10\x7A\x0A\x04\x07\x18\xD8\x6C\x4C\xBE\x98\x8A\x63\xA0\xCE\xAC\xB5\x92\x3E\xC3"
"\x3D\xE0\xE0\xD1\x7E\x51\x22\xB3\x13\xBD\x92\x20\x4A\x2C\x6B\x38\x58\xDD\xE8\x52"
"\xFB\x6D\x65\x58\x71\x03\x82\x50\x96\x18\x81\x41\x7E\xEF\x37\xE3\x19\xB1\x9F\xD3"
"\xF6\x0D\x7F\xC9\x1B\xA0\xFE\x68\xE5\xA6\x50\xA1\x62\x89\x25\x55\x1B\xF4\x6F\xEB"
"\x7A\xCD\xC9\xD7\x9E\xCD\x19\xA6\x76\x95\xF0\xBC\x73\xC0\x72\x26\x3C\xFB\x03\xF0"
"\x0B\xA5\xB7\x4A\x6A\x12\x84\x14\xB1\xA9\x7B\x48\xC6\xC9\x4F\xA6\x49\x7D\x95\xF6"
"\x75\x6A\xB0\x38\xCD\x5F\x80\xDD\xCF\x94\xD0\x63\x9E\x99\x1C\xF5\x43\xD3\xA4\x1A"
"\x94\x52\x49\xB8\x99\x8E\x9F\xCE\x70\xD7\xFC\xBF\xCC\x75\xC2\xC7\xA7\x53\x84\x37"
"\x33\xBE\x21\x7B\xBD\x41\x7F\x39\x31\xD1\x94\x4E\x98\x1F\xCC\x92\x51\xEA\x15\x59"
"\xB7\x61\xF8\x99\x88\x0A\x98\xC9\x5F\xFD\x74\x1D\xF8\x95\xA4\xB0\xD0\xEE\x4D\x61"
"\xEA\x8E\x77\xB5\x2D\x79\x41\x59\xF8\xC1\x90\xFA\xB4\x24\xF8\x33\x72\x53\x96\xC4"
"\x50\xD5\xF6\x3F\xC0\xFE\xA5\x4C\x64\xE9\x30\x86\xD6\xBB\x3F\x5B\x48\x6A\xA2\x7D"
"\x1A\x23\x03\xB2\x14\x75\x29\x04\x06\x93\x63\x2D\x49\x31\xB1\x2E\x72\x52\xA4\x16"
"\xA0\x59\x24\x53\x72\x48\x5F\x8E\xD9\xC7\x66\xF9\xC0\x8D\x12\x07\x62\xDB\x44\x0D"
"\x2D\xD5\xC8\xAF\x31\x61\x31\x06\xCE\xE7\x38\xD8\x00\x1D\xC4\x1B\x0F\x8C\x2E\x3A"
"\x7E\x83\x83\xEA\x7D\x73\x84\xB9\x91\x48\xBA\x13\x49\xB9\xF8\xC4\xB3\xAC\xD6\xA6"
"\xCE\xCD\x15\xA2\x8B\x83\x59\x83\x31\xAA\xD1\x6B\x52\xDD\x79\xF5\x93\x3F\xB9\x21"
"\x81\x67\x17\xF5\xDE\xFD\x7D\x18\x76\xEB\x4A\xE9\x54\xFD\x38\x2B\xDA\xE1\x1D\x43"
"\x25\x48\x39\xAB\x8F\x04\xD3\x9A\xAA\x32\xEA\xDF\xE3\x73\x94\x65\x63\x78\x3F\x62"
"\x59\x6C\x34\xF3\x85\xB6\x3A\xAB\x0B\xD9\x49\x33\x3E\x44\x56\x6B\xF8\x01\xDE\xC6"
"\xC0\x1F\x42\x8D\x0C\xD1\x0E\x9B\xE9\x01\xF1\x88\x29\xF0\xC1\x54\x7B\xD5\xEA\x7D"
"\x26\xA4\x7B\x8D\x8A\x17\xF5\x4C\xCA\x7C\x1A\x55\x08\x5F\x9A\x1A\xB9\x51\xD6\xFC"
"\x82\x51\x60\x25\xC3\xC6\x1F\xE1\x76\x96\xFD\xB6\x27\x30\x7B\x33\x14\xEB\xC8\xB7"
"\x30\xD0\x5F\x9E\x54\xE3\x57\x6B\xF7\x3C\x91\xAD\x8D\x68\x16\x7E\x69\x2A\x87\x58"
"\xDF\xC7\x2F\x2C\xC6\xCC\x89\xE3\xF1\x8D\x73\x30\x34\xA7\x24\x08\x8B\x7A\x79\xE1"
"\x7B\xD5\xA8\xA4\x3B\x19\x5D\x5B\x9B\x30\xA8\xC8\x78\xA9\xF9\x73\x32\x8D\x39\x73"
"\x3E\x57\x59\x0F\x03\x2B\xDF\xE9\xC8\xB6\xA5\xE8\x04\x07\x8D\x84\xC2\x93\xDF\x98"
"\xC3\x1D\x0A\x72\x9A\x25\x4F\x68\x48\xA8\x3B\x94\x52\x01\x37\xA6\xA3\x5E\x3B\x86"
"\x8B\x97\x7B\xD1\xEF\x58\x9B\x6D\xD4\x0D\x70\x0A\xBF\x36\x3D\xA7\x29\x08\x6A\x8E"
"\x14\xBC\x95\x86\x47\x34\x5B\xE3\x68\xC5\x3A\x93\x22\xB0\x94\x88\x27\x1C\x51\x2F"
"\x3C\xCC\xFB\xDD\xB6\x62\x66\x00\xFE\x83\x7C\x11\x14\xB4\x12\x4E\x66\xA7\xBC\xC2"
"\x10\xEC\x2F\x3A\x20\x24\x56\xF4\x2A\x2E\x79\x55\x57\xD8\xF5\x46\xCE\x25\xDA\xCE"
"\x3B\x1D\x60\xC3\x46\xAB\x00\x6C\x28\x9C\xAC\xEF\x47\x50\xC3\xB3\xE3\xFE\x1D\x61"
"\x07\x32\x7C\x25\x82\x84\xD5\xFD\x4F\xD8\x14\x3B\x64\xCB\xBE\x23\xA3\xF3\x75\xA0"
"\xAD\x8E\x8F\x08\x58\xF1\xAD\x07\x3C\x94\x96\x77\x3D\xBF\xCA\xFA\xCD\x30\x97\xC0"
"\x69\x99\x67\xF7\xED\xE9\x44\xDA\x12\x4C\x85\x2C\xA3\x5F\x93\x35\x9F\x7D\x05\x2F"
"\xF8\x24\x06\x69\xFD\xBA\xB0\x1C\xC6\xBD\x0D\x7B\xBB\x23\x0F\x81\x1A\x9A\x92\xFA"
"\x17\x9A\x96\x6D\x9B\x97\x42\x67\x05\x7D\xAC\x74\xC4\x65\x0E\x01\x63\xD9\xA3\x86"
"\xA0\xB5\x07\xF9\xD3\x2B\x04\xD0\x03\x7D\x8D\x15\x55\x82\x7A\x28\x6F\x36\xA8\xBB"
"\x33\xDC\x6E\x09\x7B\x6A\x91\x21\x86\x6B\xB5\x77\xF9\x22\x16\x95\x50\xE6\xC5\xA6"
"\xD1\x17\xEA\x8C\xBC\x62\x8C\xCD\x33\x34\xD6\xA3\xFD\x68\x8A\x35\x3C\x9D\x9B\x0F"
"\x5B\x29\xAA\xD6\x4A\x38\x33\xFE\x8E\x73\x00\xC0\x2F\xEB\x67\xCD\xC2\x6D\xEB\xE2"
"\x02\x8B\x33\x97\x46\xF2\xC9\x06\xAD\xF1\x9C\x41\x45\xC0\x83\x2B\x8A\xF1\x23\x37"
"\x89\x30\x5B\xCB\xD7\xEA\x0B\x16\x56\x46\x49\x5D\x4B\xA7\xF8\x35\x9E\x6C\x4E\x1E"
"\xBD\x99\x03\x00\x80\x68\x46\x67\x31\x48\x17\xB4\xB2\x23\xF4\xAC\xB3\x5A\x81\xCA"
"\xE7\x95\x63\x5A\xC5\x67\x2A\x30\x6B\x44\xDB\x8B\xA4\x8F\x8F\x10\xDA\x3E\x22\x10"
"\x8B\xB4\xB8\x92\xEE\xD0\x38\x7F\xD4\x01\x27\xAB\x15\xD4\x62\x02\x30\x4A\x22\xAF"
"\xBA\x8A\xD8\xB3\xAF\xC3\xB2\xF8\x70\xEF\xF7\xDA\xB7\xD3\x97\xCC\x6C\x4B\x61\xE9"
"\xF4\xBF\xAE\x2B\xCF\x87\xF6\x70\x56\x91\x6C\x38\xE5\x2E\x09\xCE\xA6\x7D\xE8\x01"
"\x6A\x1E\xE9\x6C\x84\xCC\x7B\xBB\x20\x2C\x92\xC7\xFD\x71\x3B\x9D\xC6\x41\x0E\x06"
"\x15\x0F\x59\xD7\x47\xBB\x03\x4E\x8E\x19\x3C\x18\x40\xB2\xEE\x63\x9A\xF4\xDB\x2D"
"\x54\xBA\x5C\x6D\xAF\x50\x37\x92\x36\x42\xE1\xF9\x2B\x16\x38\x78\x72\x6C\x72\x59"
"\x60\x67\xB6\x81\xC1\x26\x29\xBB\x0D\xCE\xA0\x48\x6D\x49\xC0\xA6\x7B\x50\x43\xAD"
"\x6A\x49\x8D\x71\xAF\x57\xF0\x9D\xE6\xBD\xB1\x44\xDC\x56\x43\x05\x35\xED\x7C\xDE"
"\x8B\x13\x1A\xD5\xC9\x8C\x08\x62\x11\x03\x83\x35\xA2\xFC\x6E\xC9\xEC\x86\x6F\x68"
"\x68\xCB\x77\x8E\xB8\xD6\xE1\x63\x78\x97\x0F\xC8\xFD\x91\xC4\x79\xF2\x67\x4C\x1B"
"\x7D\x8D\x69\x72\x31\x8C\x36\x5E\x2E\x5E\xD9\xF7\x3F\x49\xD3\xA1\x3E\x43\xD9\xDC"
"\x52\x15\x6F\x89\x7A\xCA\xC4\x4B\xF4\xBA\xD1\xA6\xCC\x6D\xA9\xA5\x46\x8B\xEF\x0B"
"\xA7\xFD\x69\xA1\xB7\x40\xDF\x74\x04\x88\x20\x4E\x07\x66\x75\x9A\xC8\x87\x8E\x03"
"\x44\x1E\x21\x20\xBF\xD4\x7A\x8B\x35\x3F\x40\xC6\x6D\xE3\x48\x18\x38\xB0\xBD\x80"
"\x1C\x89\x62\x1E\x07\x21\x3D\x64\xF8\xD6\x04\xBF\x8C\x2C\x09\x21\x89\xF3\x44\xF6"
"\x4E\x40\x78\x07\xB8\xAD\x78\x7B\x53\x2D\xC5\xA2\xBE\x7A\x15\x42\x2E\x3E\x25\xA2"
"\xAE\xF4\xF3\x7B\xF9\x94\xF5\x80\xE7\x94\x31\x95\xED\x92\xEB\x77\x30\x69\x81\xB3"
"\x36\x93\x8D\xDA\x69\x74\x44\xBF\x83\x94\x6D\xF2\xD5\xAE\x6F\xEE\x35\x12\x37\x71"
"\x73\x5F\x42\xDE\x43\x9F\xE5\xB4\x4E\x2D\xBE\x7D\x85\xB1\x37\x2D\x63\x9A\xDC\x49"
"\x98\x9D\xC3\x98\xA2\xC9\x01\x13\xBF\x1B\x9B\x38\x8D\x58\x18\x0C\xBA\xC1\x21\xA4"
"\x5C\x86\xA3\x7A\x58\x85\xE0\x71\xAA\xFC\x5C\x3C"
"\xA4\x9C\x23\x7D\xDD\xD9\x97\x02\x30\x28\xDC\xD7\x2B\x80\x37\x4B\x54\xAB\x28\x74"
"\x47\x03\xEE\xAE\x85\xBB\x3F\x4B\x08\x2F\x2F\x69\x8E\x57\x4E\x13\xBF\xE0\xD9\x36"
"\xCF\x5F\x8B\xAE\xCF\x3E\xB9\xED\x8E\x24\x27\x2B\xEF\xB1\x0E\x17\xD6\x7F\xC5\x7D"
"\x16\x0F\x76\x1E\x01\x66\x13\xB1\x9B\x1B\x4E\x86\x19\x73\xEA\xD7\xBD\x71\xB8\x3A"
"\x6F\xD7\xA4\xCF\x82\xD7\x1B\xE3\x69\xB4\xBE\x0D\x61\x60\xB9\xAB\x5D\xF8\x70\x53"
"\x37\x7E\xB0\xFF\xFB\xD0\x30\xDA\xB6\x77\xC9\xEB\x0F\xB4\x98\x0B\xE6\x0F\x4D\x3A"
"\x6B\xC2\x4F\xDF\x2A\xF2\x9C\x15\xE2\xD6\x98\xC2\x6A\xEF\x78\x2B\xC0\x4A\xA9\x61"
"\x87\x11\x56\xAB\xF0\xA0\xEE\x14\x64\x41\x0D\xDF\xEE\x70\xAF\x19";

char regname[50];
    printf("请输入你的用户名:");
gets(regname);
if(strlen(regname)<16)
  for(int i=strlen(regname); i<16;i++)
   regname[i]=0;
char *p1,*p2,*p3;

p1=regname;
p2=list1;
p3=list2;
////////////////////////第一阶段
   __asm{
        mov esp, p1
  mov ebx,p2
  xor esi,esi
again0: mov edx,dword ptr ss:[esp+4*esi]
  add edx,dword ptr ss:[ebx+4*esi]
        mov dword ptr ss:[esp+4*esi],edx
  inc esi
  cmp esi,4
  jnz again0
  xor esi,esi
  mov ebx,p3
again1:mov edx,dword ptr ss:[esp]
  ror edx,08h
  mov dword ptr ss:[esp+010h],edx
  mov edx,dword ptr ss:[esp]
  and edx ,0ffh
  mov ecx,dword ptr ss:[ebx+4*edx]
  xor dword ptr ss:[esp+4],ecx
  mov ecx,dword ptr ss:[esp+010h]
        and ecx,0ffh
  mov edx,dword ptr ss:[ebx+4*ecx+0400h]
  add dword ptr ss:[esp+4],edx
  mov  edx,dword ptr ss:[esp]
  ror edx,010h
  mov dword ptr ss:[esp+010h],edx
  mov edx,dword ptr ss:[esp]
  ror edx, 018h
  mov dword ptr ss:[esp],edx
  mov edx,dword ptr ss:[esp+010h]
  and edx, 0ffh
  mov ecx,dword ptr ss:[ebx+4*edx]
  add dword ptr ss:[esp+8],ecx
  mov edx,dword ptr ss:[esp]
  and edx, 0ffh
  mov ecx,dword ptr ss:[ebx+4*edx+0400h]
  xor dword ptr ss:[esp+0ch],ecx
  mov cx,04h
  mov ax,si
  xor dx,dx
  div cx
  cmp dx,00h
  jnz next1
  mov edx,dword ptr ss:[esp+0ch]
  add dword ptr ss:[esp],edx
  next1:cmp dx,01h
  jnz next2
  mov edx,dword ptr ss:[esp+4]
  add dword ptr ss:[esp],edx
  next2:mov edx, dword ptr ss:[esp]
  xchg edx,dword ptr ss:[esp+4]
  mov dword ptr ss:[esp],edx
  mov edx, dword ptr ss:[esp+4]
  xchg edx,dword ptr ss:[esp+8]
  mov dword ptr ss:[esp+4],edx
  mov edx, dword ptr ss:[esp+0ch]
  xchg edx,dword ptr ss:[esp+8]
  mov dword ptr ss:[esp+0ch],edx
  inc esi
  cmp esi,8
  jnz again1

  mov esp,ebp


}

///////////////////////////////////////////////第二阶段

  __asm{
    mov esp,p1
    xor esi,esi
    again:mov ebx,p2
    mov eax,dword ptr ss:[esp]
    mov ecx,dword ptr ss:[ebx+010h+8*esi]
    add ecx,eax
    mov dword ptr ss:[esp+014h],ecx
    rol eax,0dh
          mov dword ptr ss:[esp],eax
    imul eax ,dword ptr ss:[ebx+014h+8*esi]
    mov dword ptr ss:[esp+010h],eax
    mov ecx,dword ptr ss:[esp+014h]
    and ecx,01FFh
    mov ebx,p3
    mov edx,dword ptr ds:[ecx*4+ebx]
    mov dword ptr ss:[esp+018h],edx
          rol eax,5
    mov dword ptr ss:[esp+010h],eax
          mov edx,dword ptr ss:[esp+014h]
    mov cl,al
    rol edx,cl
    mov eax,dword ptr ss:[esp+08h]
          add eax,edx
    mov dword ptr ss:[esp+08h],eax
    mov eax,dword ptr ss:[esp+010h]
    xor dword ptr ss:[esp+018h],eax
    rol eax,5
    mov dword ptr ss:[esp+010h],eax
          xor dword ptr ss:[esp+018h],eax
          cmp si,08h
    jae Anoth
    xor dword ptr ss:[esp+0ch],eax
    mov edx,dword ptr ss:[esp+018h]
    mov cl,al
    rol edx,cl
    add dword ptr ss:[esp+4],edx
    jmp Next
   Anoth: xor dword ptr ss:[esp+04h],eax
    mov edx,dword ptr ss:[esp+018h]
    mov cl,al
    rol edx,cl
    add dword ptr ss:[esp+0ch],edx
   Next:  mov edx, dword ptr ss:[esp]
    xchg edx,dword ptr ss:[esp+4]
    mov dword ptr ss:[esp],edx
    mov edx, dword ptr ss:[esp+4]
    xchg edx,dword ptr ss:[esp+8]
    mov dword ptr ss:[esp+4],edx
    mov edx, dword ptr ss:[esp+0ch]
     xchg edx,dword ptr ss:[esp+8]
    mov dword ptr ss:[esp+0ch],edx
    inc esi
    cmp esi,010h
    jnz again
    mov esp,ebp
    }
/////////////////////////////////////////////////////第三阶段
  __asm{
   mov esp,p1
   mov ebx,p3
   xor esi,esi
  again3: mov edx,dword ptr ss:[esp]
   test esi,02h
   jz next3
   xor eax,eax
   test esi,01h
   jnz anothe
   mov al,08h
anothe: sub edx,dword ptr ss:[esp+04h+eax]
   mov dword ptr ss:[esp],edx
  next3: rol edx,8
   mov dword ptr ss:[esp+010h],edx
   mov eax,dword ptr ss:[esp]
   and eax,0FFh
   mov ecx ,dword ptr ds:[eax*4+ebx+0400h]
   xor dword ptr ss:[esp+4],ecx 
   and edx,0FFh
   mov eax,dword ptr ds:[edx*4+ebx]
   sub dword ptr ss:[esp+8],eax ;;;;;;;;;;;;;;;;;;;;;;;;
   mov ecx,dword ptr ss:[esp]
         rol ecx,010h
   mov dword ptr ss:[esp+010h],ecx
   mov edx,dword ptr ss:[esp]
   rol edx,018h
   mov dword ptr ss:[esp],edx
   mov eax,dword ptr ss:[esp+010h]
   and eax,0ffh
   mov ecx,dword ptr ss:[ebx+eax*4+0400h]
   sub dword ptr ss:[esp+0ch],ecx
   and edx,0FFh
   mov eax,dword ptr ss:[edx*4+ebx]
   xor dword ptr ss:[esp+0ch],eax
   mov edx, dword ptr ss:[esp]
   xchg edx,dword ptr ss:[esp+4]
   mov dword ptr ss:[esp],edx
   mov edx, dword ptr ss:[esp+4]
   xchg edx,dword ptr ss:[esp+8]
   mov dword ptr ss:[esp+4],edx
   mov edx, dword ptr ss:[esp+0ch]
    xchg edx,dword ptr ss:[esp+8]
   mov dword ptr ss:[esp+0ch],edx
   inc esi
   cmp esi,8
   jnz again3
   mov ebx,p2
   mov ecx,dword ptr ss:[ebx+090h]
   sub dword ptr ss:[esp],ecx
   mov ecx,dword ptr ss:[ebx+094h]
   sub dword ptr ss:[esp+04h],ecx
   mov ecx,dword ptr ss:[ebx+098h]
   sub dword ptr ss:[esp+08h],ecx
   mov ecx,dword ptr ss:[ebx+09ch]
   sub dword ptr ss:[esp+0ch],ecx
   mov esp, ebp
  }

    
regname[16]='\0';
int regcode[16];
        printf("你的注册码是:");
  for(int i=0;i<16;i++){
  if(regname[i]>=0)
   regcode[i]=regname[i];
  else
   regcode[i]=0x100-abs(regname[i]);
       
  printf("%02X",regcode[i]);
  }
     printf("\n");

}
试着写了个注册机,代码写得乱七八糟,各位不要笑话,请高人指教下程序的写法。
总结,不知道这个软件的作者怎么能够这样,经过一大段代码计算出来的注册码,却明码把它保存,再简单的用strcmp比较下就完事了,做内存注册机应该不是难事吧。
破解没有什么难度,写出算法注册机却是要花点时间和耐心。
本文没有一点技术含量,不足之处还有很多,还忘包涵,给菜鸟更多的支持!!!!
注册信息放在[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\windgelb]下
 
 

  • 标 题: 答复
  • 作 者:shoooo
  • 时 间:2005-09-14 11:43

以前,我研究一个网络游戏的封包,也像楼主一样把算法全逆出来,后来有个前辈告诉我我看了好几天的东西就是des.. 然后我借了一本应用密码学来看了...

这个是MARS, 佩服楼主强大的分析能力 ^_^

  • 标 题: 答复
  • 作 者:noword_forever
  • 时 间:2005-09-14 14:18

楼主,看到如此复杂的算法,99.99%是有现成的源码的。
上google搜索一下算法里用到的立即数,前面要加0x

http://www.google.com/search?hl=zh-CN&newwindow=1&q=0x09D0C479&lr=

  • 标 题: 答复
  • 作 者:ashucang
  • 时 间:2005-09-14 17:07

还真有现成的算法啊,我还想作者怎么可能写了这么多的代码,就简单的strcmp,原来是移植过来的,难怪这么验证不严。
MARS加密算法,又学到知识了,感谢指点!!

  • 标 题: 答复
  • 作 者:快雪时晴
  • 时 间:2005-09-15 01:53

除了佩服,还能说啥