• 标 题:完美卸载6.0注册算法分析 (2千字)
  • 作 者:DiKeN
  • 时 间:2002-2-27 12:55:25
  • 链 接:http://bbs.pediy.com

M1,M2,M3,M4=======>魔术数组
R1-R2-R3-R4=======>预注册码
C1-C2-C3-C4-C5====>注册码
=============================================================
C5随机产生,但必须在[1-$8C]之内

:10003CB3 8B8424C4020000          mov eax, dword ptr [esp+000002C4]========>C5
:10003CBA 8B8C24B4020000          mov ecx, dword ptr [esp+000002B4]========>C1
:10003CC1 8B6C242C                mov ebp, dword ptr [esp+2C]==============>R2
:10003CC5 83C410                  add esp, 00000010
:10003CC8 8B148530AB0110          mov edx, dword ptr [4*eax+1001AB30]======>M1
:10003CCF 2BCD                    sub ecx, ebp
:10003CD1 3BD1                    cmp edx, ecx===================>C1=M1[C5]+R2
:10003CD3 0F851B020000            jne 10003EF4==========>错误
:10003CD9 8B9424A8020000          mov edx, dword ptr [esp+000002A8]========>C2
:10003CE0 8B742418                mov esi, dword ptr [esp+18]==============>R1
:10003CE4 8B0C85FCA70110          mov ecx, dword ptr [4*eax+1001A7FC]======>M2
:10003CEB 2BD6                    sub edx, esi
:10003CED 3BCA                    cmp ecx, edx===================>C2=M2[C5]+R1
:10003CEF 0F85FF010000            jne 10003EF4
:10003CF5 8B8C24AC020000          mov ecx, dword ptr [esp+000002AC]========>C3
:10003CFC 8B742410                mov esi, dword ptr [esp+10]==============>R4
:10003D00 8B1485C8A40110          mov edx, dword ptr [4*eax+1001A4C8]======>M3
:10003D07 2BCE                    sub ecx, esi
:10003D09 3BD1                    cmp edx, ecx===================>C3=M3[C5]+R4
:10003D0B 0F85E3010000            jne 10003EF4
:10003D11 8B9424B0020000          mov edx, dword ptr [esp+000002B0]========>C4
:10003D18 8B742414                mov esi, dword ptr [esp+14]==============>R3
:10003D1C 8B0C8594A10110          mov ecx, dword ptr [4*eax+1001A194]======>M4
:10003D23 2BD6                    sub edx, esi
:10003D25 3BCA                    cmp ecx, edx===================>C4=M4[C5]+R3
:10003D27 0F85C7010000            jne 10003EF4
.....下面的,我没去看了..............
.....应该还有蹊跷,我没时间看啦!....注册器已经写好.....

  • 标 题:我对完美卸载 6.0 的算法是这样理解的,不知是否与 DiKeN 兄的一致? (7千字)
  • 作 者:PaulYoung[CCG]
  • 时 间:2002-2-28 13:43:46

完美卸载 6.0 算法分析


作者:PaulYoung[CCG]
日期:2002.02.28
************************************************************************************************

  其实完美卸载 6.0 的算法是在5.01的基础上扩展过来的,大致上差不多,都是用了查表的方法。

  为了叙述方便,我也用 R1,R2,R3,R4 分别指代预注册码的1,2,3,4段,用 C1,C2,C3,C4,C5 分别指代注册码的1,2,3,4,5段。

  C5 的取值范围是1-200(十进制)。
  [4*eax+1001AB30],[4*eax+1001A7FC],[4*eax+1001A4C8],[4*eax+1001A194] 分别是程序固定的四张表,每张表各含200个数据,如下:

[4*eax+1001AB30] 中的200个固定数据:

        0x29EF  0x29F2  0x29F6
0x29F9  0x29FC  0x29FF  0x2A03
0x2A06  0x2A09  0x2A0C  0x2A10
0x2A13  0x2A16  0x2A19  0x2A1D
0x2A20  0x2A23  0x2A27  0x2A2A
0x2A2D  0x2A30  0x2A34  0x2A37
0x2A3D  0x2A41  0x2A44  0x2A47
0x2A4A  0x2A4E  0x2A51  0x2A54
0x2A58  0x2A5B  0x2A5E  0x2A61
0x2A65  0x2A68  0x2A6B  0x2A6E
0x2A72  0x2A75  0x2A78  0x2A7B
0x2A7F  0x2A82  0x2A85  0x2A88
0x2A8C  0x2A8F  0x2A92  0x2A96
0x2A99  0x2A9C  0x2A9F  0x2AA6
0x2AA9  0x2AAC  0x2AB0  0x2AB3
0x2AB6  0x2AB9  0x2ABD  0x2AC0
0x2AC3  0x2AC7  0x2ACA  0x2ACD
0x2AD0  0x2AD4  0x2AD7  0x2ADA
0x2ADD  0x2AE1  0x2AE4  0x2AE7
0x2AEE  0x2AF1  0x2AF4  0x2AF8
0x2AFB  0x2AFE  0x2B01  0x2B05
0x2B08  0x2B0B  0x2B0E  0x2B12
0x2B15  0x2B18  0x2B1B  0x2B1F
0x2B22  0x2B25  0x2B28  0x2B2C
0x2B2F  0x2B32  0x2B36  0x2B3C
0x2B3F  0x2B43  0x2B46  0x2B49
0x2B4C  0x2B50  0x2B53  0x2B56
0x2B59  0x2B5D  0x2B60  0x2B63
0x2B67  0x2B6A  0x2B6D  0x2B70
0x2B74  0x2B77  0x2B7A  0x2B7D
0x2B81  0x2B87  0x2B8A  0x2B8E
0x2B91  0x2B94  0x2B98  0x2B9B
0x2B9E  0x2BA1  0x2BA5  0x2BA8
0x2BAB  0x2BAE  0x2BB2  0x2BB5
0x2BB8  0x2BBB  0x2BBF  0x2BC2
0x2BC5  0x2BC9  0x2BCC  0x2BCF
0x2BD6  0x2BD9  0x2BDC  0x2BDF
0x2BE3  0x2BE6  0x2BE9  0x2BEC
0x2BF0  0x2BF3  0x2BF6  0x2BF9
0x2BFD  0x2C00  0x2C03  0x2C07
0x2C0A  0x2C0D  0x2C10  0x2C14
0x2C17  0x2C1A  0x2C21  0x2C24
0x2C27  0x2C2A  0x2C2E  0x2C31
0x2C34  0x2C38  0x2C3B  0x2C3E
0x2C41  0x2C45  0x2C48  0x2C4B
0x2C4E  0x2C52  0x2C55  0x2C58
0x2C5B  0x2C5F  0x2C62  0x2C65
0x2C69  0x2C6F  0x2C72  0x2C76
0x2C79  0x2C7C  0x2C7F  0x2C83
0x2C86  0x2C89  0x2C8C  0x2C90
0x2C93

[4*eax+1001A7FC] 表中的200个固定数据:

        0x2347  0x4D43  0x7740
0x213C  0x4B38  0x7535  0x1F31
0x492E  0x732A  0x1D26  0x4723
0x711F  0x1B1C  0x4518  0x6F14
0x1911  0x430D  0x6D0A  0x1706
0x4102  0x6AFF  0x14FB  0x3EF8
0x12F0  0x3CED  0x66E9  0x10E6
0x3AE2  0x64DE  0x0EDB  0x38D7
0x62D4  0x0CD0  0x36CD  0x60C9
0x0AC5  0x34C2  0x5EBE  0x08BB
0x32B7  0x5CB3  0x06B0  0x30AC
0x5AA9  0x04A5  0x2EA1  0x589E
0x029A  0x2C97  0x5693  0x008F
0x2A8C  0x5488  0x7E85  0x527D
0x7C7A  0x2676  0x5073  0x7A6F
0x246B  0x4E68  0x7864  0x2261
0x4C5D  0x765A  0x2056  0x4A52
0x744F  0x1E4B  0x4848  0x7244
0x1C40  0x463D  0x7039  0x1A36
0x6E2E  0x182B  0x4227  0x6C24
0x1620  0x401C  0x6A19  0x1415
0x3E12  0x680E  0x120A  0x3C07
0x6603  0x1000  0x39FC  0x63F8
0x0DF5  0x37F1  0x61EE  0x0BEA
0x35E7  0x5FE3  0x09DF  0x5DD8
0x07D5  0x31D1  0x5BCD  0x05CA
0x2FC6  0x59C3  0x03BF  0x2DBB
0x57B8  0x01B4  0x2BB1  0x55AD
0x7FA9  0x29A6  0x53A2  0x7D9F
0x279B  0x5197  0x7B94  0x2590
0x4F8D  0x2386  0x4D82  0x777E
0x217B  0x4B77  0x7574  0x1F70
0x496C  0x7369  0x1D65  0x4762
0x715E  0x1B5A  0x4557  0x6F53
0x1950  0x434C  0x6D48  0x1745
0x4141  0x6B3E  0x153A  0x3F36
0x132F  0x3D2C  0x6728  0x1124
0x3B21  0x651D  0x0F1A  0x3916
0x6313  0x0D0F  0x370B  0x6108
0x0B04  0x3501  0x5EFD  0x08F9
0x32F6  0x5CF2  0x06EF  0x30EB
0x5AE7  0x04E4  0x58DD  0x02D9
0x2CD5  0x56D2  0x00CE  0x2ACB
0x54C7  0x7EC3  0x28C0  0x52BC
0x7CB9  0x26B5  0x50B1  0x7AAE
0x24AA  0x4EA7  0x78A3  0x22A0
0x4C9C  0x7698  0x2095  0x4A91
0x748E  0x4886  0x7283  0x1C7F
0x467C  0x7078  0x1A74  0x4471
0x6E6D  0x186A  0x4266  0x6C62
0x165F

[4*eax+1001A4C8] 表中的200个固定数据:

        0x1C58  0x6220  0x27E8
0x6DB1  0x3379  0x7941  0x3F09
0x04D1  0x4A99  0x1062  0x562A
0x1BF2  0x61BA  0x2782  0x6D4A
0x3313  0x78DB  0x3EA3  0x046B
0x4A33  0x0FFB  0x55C4  0x1B8C
0x271C  0x6CE4  0x32AC  0x7875
0x3E3D  0x0405  0x49CD  0x0F95
0x555E  0x1B26  0x60EE  0x26B6
0x6C7E  0x3246  0x780F  0x3DD7
0x039F  0x4967  0x0F2F  0x54F7
0x1AC0  0x6088  0x2650  0x6C18
0x31E0  0x77A8  0x3D71  0x0339
0x4901  0x0EC9  0x5491  0x6022
0x25EA  0x6BB2  0x317A  0x7742
0x3D0A  0x02D3  0x489B  0x0E63
0x542B  0x19F3  0x5FBC  0x2584
0x6B4C  0x3114  0x76DC  0x3CA4
0x026D  0x4835  0x0DFD  0x53C5
0x5F55  0x251E  0x6AE6  0x30AE
0x7676  0x3C3E  0x0206  0x47CF
0x0D97  0x535F  0x1927  0x5EEF
0x24B7  0x6A80  0x3048  0x7610
0x3BD8  0x01A0  0x4768  0x0D31
0x52F9  0x18C1  0x5E89  0x6A1A
0x2FE2  0x75AA  0x3B72  0x013A
0x4702  0x0CCB  0x5293  0x185B
0x5E23  0x23EB  0x69B3  0x2F7C
0x7544  0x3B0C  0x00D4  0x469C
0x0C64  0x522D  0x17F5  0x5DBD
0x2385  0x2F15  0x74DE  0x3AA6
0x006E  0x4636  0x0BFE  0x51C6
0x178F  0x5D57  0x231F  0x68E7
0x2EAF  0x7478  0x3A40  0x0008
0x45D0  0x0B98  0x5160  0x1729
0x5CF1  0x22B9  0x6881  0x2E49
0x39DA  0x7FA2  0x456A  0x0B32
0x50FA  0x16C2  0x5C8B  0x2253
0x681B  0x2DE3  0x73AB  0x3973
0x7F3C  0x4504  0x0ACC  0x5094
0x165C  0x5C24  0x21ED  0x67B5
0x2D7D  0x7345  0x7ED6  0x449E
0x0A66  0x502E  0x15F6  0x5BBE
0x2187  0x674F  0x2D17  0x72DF
0x38A7  0x7E6F  0x4438  0x0A00
0x4FC8  0x1590  0x5B58  0x2120
0x66E9  0x2CB1  0x7279  0x3841
0x7E09  0x099A  0x4F62  0x152A
0x5AF2  0x20BA  0x6682  0x2C4B
0x7213  0x37DB  0x7DA3  0x436B
0x0934

[4*eax+1001A194] 表中的200个固定数据:

        0x428B  0x208A  0x7E89
0x5C89  0x3A88  0x1887  0x7687
0x5486  0x3285  0x1085  0x6E84
0x4C83  0x2A83  0x0882  0x6681
0x4480  0x2280  0x007F  0x5E7E
0x3C7E  0x1A7D  0x787C  0x567C
0x127A  0x707A  0x4E79  0x2C78
0x0A78  0x6877  0x4676  0x2476
0x0275  0x6074  0x3E73  0x1C73
0x7A72  0x5871  0x3671  0x1470
0x726F  0x506F  0x2E6E  0x0C6D
0x6A6D  0x486C  0x266B  0x046B
0x626A  0x4069  0x1E68  0x7C68
0x5A67  0x3866  0x1666  0x5264
0x3064  0x0E63  0x6C62  0x4A62
0x2861  0x0660  0x6460  0x425F
0x205E  0x7E5D  0x5C5D  0x3A5C
0x185B  0x765B  0x545A  0x3259
0x1059  0x6E58  0x4C57  0x2A57
0x6655  0x4455  0x2254  0x0053
0x5E53  0x3C52  0x1A51  0x7850
0x5650  0x344F  0x124E  0x704E
0x4E4D  0x2C4C  0x0A4C  0x684B
0x464A  0x244A  0x0249  0x6048
0x3E48  0x1C47  0x7A46  0x3645
0x1444  0x7243  0x5043  0x2E42
0x0C41  0x6A41  0x4840  0x263F
0x043F  0x623E  0x403D  0x1E3D
0x7C3C  0x5A3B  0x383B  0x163A
0x7439  0x5238  0x3038  0x0E37
0x6C36  0x2835  0x0634  0x6434
0x4233  0x2032  0x7E32  0x5C31
0x3A30  0x1830  0x762F  0x542E
0x322D  0x102D  0x6E2C  0x4C2B
0x2A2B  0x082A  0x6629  0x4429
0x2228  0x0027  0x5E27  0x3C26
0x7825  0x5624  0x3423  0x1222
0x7022  0x4E21  0x2C20  0x0A20
0x681F  0x461E  0x241E  0x021D
0x601C  0x3E1C  0x1C1B  0x7A1A
0x581A  0x3619  0x1418  0x7218
0x5017  0x2E16  0x6A15  0x4814
0x2613  0x0413  0x6212  0x4011
0x1E11  0x7C10  0x5A0F  0x380F
0x160E  0x740D  0x520D  0x300C
0x0E0B  0x6C0A  0x4A0A  0x2809
0x0608  0x6408  0x4207  0x2006
0x7E06  0x3A04  0x1804  0x7603
0x5402  0x3202  0x1001  0x6E00
0x4BFF  0x29FF  0x07FE  0x65FD
0x43FD



    软件以 C5 作为查表指针,即 C5 的值是多少,就分别取这四张表中的第几个数据。

  例如,当 C5 为200时,则分别取上面四张表的第200个数据,即

0x2C93,即10进制的11411,设为M1
0x165F,即10进制的5727 ,设为M2
0x0934,即10进制的2356 ,设为M3
0x43FD,即10进制的17405,设为M4

  C1=M1+R2,C2=M2+R1,C3=M3+R4,C4=M4+R3

  如我的预注册码为:5269-2047-514-42533,则

  C1=11411+2047=13458
    C2= 5727+5269=10996
    C3=2356+42533=44889
    C4= 17405+514=17919

  即注册码为 13458-10996-44889-17919-200

  用户名与注册码无关,每个预注册码有200个可用的正确注册码。

  如有错误之处,还请各位大虾批评指正!