先说结论:
这软件其实存在 3 种注册码。
一种是 Standard 标准版本
一种是 Pro 专业版
另一种是 Upgrade 升级版本。
专业版注册码长度必须是 24,29,31,34。 其中 24
不知道是官方写错代码,或是刻意作废的。
底下是刚刚临时做的笔记。
完整笔记的代码太长论坛发不上来,所以贴片段。
0058CA4F 8B00 mov eax,dword ptr ds:[eax] ; 获取注册码长度,保存到 ebx 0058CA51 8BD8 mov ebx,eax 0058CA53 A1 B02F6000 mov eax,dword ptr ds:[<版本类别标志位>] 0058CA58 C700 FFFFFFFF mov dword ptr ds:[eax],-0x1 ; 这里是注册标记,先给它填值为 -1 0058CA5E 8B45 F4 mov eax,dword ptr ss:[ebp-0xC] ; eax 指向注册码 0058CA61 E8 12F6FFFF call <授权的第一套算法> ; 授权第一套算法 0058CA66 8945 D8 mov dword ptr ss:[ebp-0x28],eax ; edx:eax 是计算结果 0058CA69 8955 DC mov dword ptr ss:[ebp-0x24],edx 0058CA6C 837D DC 00 cmp dword ptr ss:[ebp-0x24],0x0 0058CA70 75 13 jnz short 0058CA85 0058CA72 817D D8 EE35000>cmp dword ptr ss:[ebp-0x28],0x35EE 0058CA79 75 0A jnz short 0058CA85 0058CA7B BB 01000000 mov ebx,0x1 ; 单用户授权 0058CA80 E9 10080000 jmp 0058D295 0058CA85 837D DC 00 cmp dword ptr ss:[ebp-0x24],0x0 0058CA89 75 13 jnz short 0058CA9E 0058CA8B 817D D8 CD39000>cmp dword ptr ss:[ebp-0x28],0x39CD 0058CA92 75 0A jnz short 0058CA9E 0058CA94 BB 02000000 mov ebx,0x2 ; 2 用户授权 0058CA99 E9 F7070000 jmp 0058D295 0058CA9E 837D DC 00 cmp dword ptr ss:[ebp-0x24],0x0 0058CAA2 75 13 jnz short 0058CAB7 0058CAA4 817D D8 6F2E000>cmp dword ptr ss:[ebp-0x28],0x2E6F 0058CAAB 75 0A jnz short 0058CAB7 0058CAAD BB 03000000 mov ebx,0x3 ; 3 用户授权 0058CAB2 E9 DE070000 jmp 0058D295 0058CAB7 837D DC 00 cmp dword ptr ss:[ebp-0x24],0x0 0058CABB 75 13 jnz short 0058CAD0 0058CABD 817D D8 832F000>cmp dword ptr ss:[ebp-0x28],0x2F83 0058CAC4 75 0A jnz short 0058CAD0 0058CAC6 BB 05000000 mov ebx,0x5 ; 5 用户授权 0058CACB E9 C5070000 jmp 0058D295 0058CAD0 837D DC 00 cmp dword ptr ss:[ebp-0x24],0x0 0058CAD4 75 13 jnz short 0058CAE9 0058CAD6 817D D8 922E000>cmp dword ptr ss:[ebp-0x28],0x2E92 0058CADD 75 0A jnz short 0058CAE9 0058CADF BB 0A000000 mov ebx,0xA ; 10 用户授权 0058CAE4 E9 AC070000 jmp 0058D295 0058CAE9 837D DC 00 cmp dword ptr ss:[ebp-0x24],0x0 0058CAED 75 13 jnz short 0058CB02 0058CAEF 817D D8 5524000>cmp dword ptr ss:[ebp-0x28],0x2455 0058CAF6 75 0A jnz short 0058CB02 0058CAF8 BB 14000000 mov ebx,0x14 ; 20 用户授权 0058CAFD E9 93070000 jmp 0058D295 0058CB02 837D DC 00 cmp dword ptr ss:[ebp-0x24],0x0 0058CB06 75 13 jnz short 0058CB1B 0058CB08 817D D8 502F000>cmp dword ptr ss:[ebp-0x28],0x2F50 0058CB0F 75 0A jnz short 0058CB1B 0058CB11 BB 32000000 mov ebx,0x32 ; 50 用户授权 0058CB16 E9 7A070000 jmp 0058D295 0058CB1B 837D DC 00 cmp dword ptr ss:[ebp-0x24],0x0 0058CB1F 75 13 jnz short 0058CB34 0058CB21 817D D8 A62F000>cmp dword ptr ss:[ebp-0x28],0x2FA6 0058CB28 75 0A jnz short 0058CB34 0058CB2A BB 0F270000 mov ebx,0x270F ; 9999 用户,也就是无限用户授权 0058CB2F E9 61070000 jmp 0058D295 0058CB34 A1 B02F6000 mov eax,dword ptr ds:[<版本类别标志位>] 0058CB39 C700 FFFFFFFF mov dword ptr ds:[eax],-0x1 0058CB3F 83FB 1A cmp ebx,0x1A ; 注册码长度 26 的情况 0058CB42 0F85 09010000 jnz 0058CC51 0058CB48 A1 B02F6000 mov eax,dword ptr ds:[<版本类别标志位>] 0058CB4D 33D2 xor edx,edx 0058CB4F 8910 mov dword ptr ds:[eax],edx 0058CB51 8B45 F4 mov eax,dword ptr ss:[ebp-0xC] 0058CB54 E8 9FFDFFFF call <授权的第二套算法函数> ; 授权第二套算法 0058CB59 8945 D8 mov dword ptr ss:[ebp-0x28],eax 0058CB5C 8955 DC mov dword ptr ss:[ebp-0x24],edx 0058CB5F 817D DC 3428340>cmp dword ptr ss:[ebp-0x24],0x1342834 0058CB66 75 13 jnz short 0058CB7B 0058CB68 817D D8 74B4843>cmp dword ptr ss:[ebp-0x28],0x3784B474 0058CB6F 75 0A jnz short 0058CB7B 0058CB71 BB 01000000 mov ebx,0x1 ; 单用户授权 0058CB76 E9 1A070000 jmp 0058D295 0058CB7B 817D DC 35DEA00>cmp dword ptr ss:[ebp-0x24],0x1A0DE35 0058CB82 75 13 jnz short 0058CB97 0058CB84 817D D8 45796B3>cmp dword ptr ss:[ebp-0x28],0x386B7945 0058CB8B 75 0A jnz short 0058CB97 0058CB8D BB 02000000 mov ebx,0x2 ; 2 用户授权 0058CB92 E9 FE060000 jmp 0058D295 0058CB97 817D DC ED48560>cmp dword ptr ss:[ebp-0x24],0x15648ED 0058CB9E 75 13 jnz short 0058CBB3 0058CBA0 817D D8 3988BF7>cmp dword ptr ss:[ebp-0x28],0x78BF8839 0058CBA7 75 0A jnz short 0058CBB3 0058CBA9 BB 03000000 mov ebx,0x3 ; 3 用户授权 0058CBAE E9 E2060000 jmp 0058D295 0058CBB3 817D DC 504C2C0>cmp dword ptr ss:[ebp-0x24],0x12C4C50 0058CBBA 75 13 jnz short 0058CBCF 0058CBBC 817D D8 EBBD027>cmp dword ptr ss:[ebp-0x28],0x7302BDEB 0058CBC3 75 0A jnz short 0058CBCF 0058CBC5 BB 05000000 mov ebx,0x5 ; 5 用户授权 0058CBCA E9 C6060000 jmp 0058D295 0058CBCF 817D DC 1226180>cmp dword ptr ss:[ebp-0x24],0x1182612 0058CBD6 75 13 jnz short 0058CBEB 0058CBD8 817D D8 3D61B93>cmp dword ptr ss:[ebp-0x28],0x32B9613D 0058CBDF 75 0A jnz short 0058CBEB 0058CBE1 BB 0A000000 mov ebx,0xA ; 10 用户授权 0058CBE6 E9 AA060000 jmp 0058D295 0058CBEB 817D DC EFCC690>cmp dword ptr ss:[ebp-0x24],0x169CCEF 0058CBF2 75 13 jnz short 0058CC07 0058CBF4 817D D8 964EC34>cmp dword ptr ss:[ebp-0x28],0x47C34E96 0058CBFB 75 0A jnz short 0058CC07 0058CBFD BB 14000000 mov ebx,0x14 ; 20 用户授权 0058CC02 E9 8E060000 jmp 0058D295 0058CC07 817D DC 2F98520>cmp dword ptr ss:[ebp-0x24],0x152982F 0058CC0E 75 13 jnz short 0058CC23 0058CC10 817D D8 08391FD>cmp dword ptr ss:[ebp-0x28],0xD61F3908 0058CC17 75 0A jnz short 0058CC23 0058CC19 BB 32000000 mov ebx,0x32 ; 50 用户授权 0058CC1E E9 72060000 jmp 0058D295 0058CC23 817D DC D211720>cmp dword ptr ss:[ebp-0x24],0x17211D2 0058CC2A 75 13 jnz short 0058CC3F 0058CC2C 817D D8 D4FC05B>cmp dword ptr ss:[ebp-0x28],0xB605FCD4 0058CC33 75 0A jnz short 0058CC3F 0058CC35 BB 0F270000 mov ebx,0x270F ; 9999 用户,也就是无限用户授权 0058CC3A E9 56060000 jmp 0058D295 0058CC3F 33DB xor ebx,ebx 0058CC41 A1 B02F6000 mov eax,dword ptr ds:[<版本类别标志位>] 0058CC46 C700 FFFFFFFF mov dword ptr ds:[eax],-0x1 0058CC4C E9 44060000 jmp 0058D295 0058CC51 83FB 1F cmp ebx,0x1F ; *** 注册码长度 31位的情况 *** 0058CC54 0F85 56010000 jnz 0058CDB0 0058CC5A 8D45 F0 lea eax,dword ptr ss:[ebp-0x10] 0058CC5D 50 push eax 0058CC5E B9 1A000000 mov ecx,0x1A ; 从注册码第一位开始取 0x1A 位,其实就是最开始的26位。 0058CC63 BA 01000000 mov edx,0x1 0058CC68 8B45 F4 mov eax,dword ptr ss:[ebp-0xC] 0058CC6B E8 601DE8FF call 0040E9D0 0058CC70 8D45 EC lea eax,dword ptr ss:[ebp-0x14] 0058CC73 50 push eax 0058CC74 B9 04000000 mov ecx,0x4 ; 从注册码 0x1C 位开始取四位,其实就是最后4位。 0058CC79 BA 1C000000 mov edx,0x1C 0058CC7E 8B45 F4 mov eax,dword ptr ss:[ebp-0xC] 0058CC81 E8 4A1DE8FF call 0040E9D0 0058CC86 8B45 EC mov eax,dword ptr ss:[ebp-0x14] ; 先取最后四位做计算 0058CC89 E8 6AFCFFFF call <授权的第二套算法函数> ; 授权的第二套算法函数 0058CC8E 83FA 00 cmp edx,0x0 0058CC91 75 14 jnz short 0058CCA7 0058CC93 3D 903F0000 cmp eax,0x3F90 ; *** 正确的计算结果是 0x3F90 , 这是专业版的关键 *** 0058CC98 75 0D jnz short 0058CCA7 0058CC9A A1 B02F6000 mov eax,dword ptr ds:[<版本类别标志位>] 0058CC9F C700 01000000 mov dword ptr ds:[eax],0x1 ; 这里设置了专业版的注册标记 0058CCA5 EB 09 jmp short 0058CCB0 0058CCA7 A1 B02F6000 mov eax,dword ptr ds:[<版本类别标志位>] 0058CCAC 33D2 xor edx,edx 0058CCAE 8910 mov dword ptr ds:[eax],edx ; 不是 0x3F90 的话,就设定为标准版 0058CCB0 8B45 F0 mov eax,dword ptr ss:[ebp-0x10] 0058CCB3 E8 40FCFFFF call <授权的第二套算法函数> ; 授权的第二套算法函数 0058CCB8 8945 D8 mov dword ptr ss:[ebp-0x28],eax 0058CCBB 8955 DC mov dword ptr ss:[ebp-0x24],edx 0058CCBE 817D DC 3428340>cmp dword ptr ss:[ebp-0x24],0x1342834 0058CCC5 75 13 jnz short 0058CCDA 0058CCC7 817D D8 74B4843>cmp dword ptr ss:[ebp-0x28],0x3784B474 0058CCCE 75 0A jnz short 0058CCDA 0058CCD0 BB 01000000 mov ebx,0x1 ; 单用户授权 0058CCD5 E9 BB050000 jmp 0058D295 0058CCDA 817D DC 35DEA00>cmp dword ptr ss:[ebp-0x24],0x1A0DE35 0058CCE1 75 13 jnz short 0058CCF6 0058CCE3 817D D8 45796B3>cmp dword ptr ss:[ebp-0x28],0x386B7945 0058CCEA 75 0A jnz short 0058CCF6 0058CCEC BB 02000000 mov ebx,0x2 ; 2 用户授权 0058CCF1 E9 9F050000 jmp 0058D295 0058CCF6 817D DC ED48560>cmp dword ptr ss:[ebp-0x24],0x15648ED 0058CCFD 75 13 jnz short 0058CD12 0058CCFF 817D D8 3988BF7>cmp dword ptr ss:[ebp-0x28],0x78BF8839 0058CD06 75 0A jnz short 0058CD12 0058CD08 BB 03000000 mov ebx,0x3 ; 3 用户授权 0058CD0D E9 83050000 jmp 0058D295 0058CD12 817D DC 504C2C0>cmp dword ptr ss:[ebp-0x24],0x12C4C50 0058CD19 75 13 jnz short 0058CD2E 0058CD1B 817D D8 EBBD027>cmp dword ptr ss:[ebp-0x28],0x7302BDEB 0058CD22 75 0A jnz short 0058CD2E 0058CD24 BB 05000000 mov ebx,0x5 ; 5 用户授权 0058CD29 E9 67050000 jmp 0058D295 0058CD2E 817D DC 1226180>cmp dword ptr ss:[ebp-0x24],0x1182612 0058CD35 75 13 jnz short 0058CD4A 0058CD37 817D D8 3D61B93>cmp dword ptr ss:[ebp-0x28],0x32B9613D 0058CD3E 75 0A jnz short 0058CD4A 0058CD40 BB 0A000000 mov ebx,0xA ; 10 用户授权 0058CD45 E9 4B050000 jmp 0058D295 0058CD4A 817D DC EFCC690>cmp dword ptr ss:[ebp-0x24],0x169CCEF 0058CD51 75 13 jnz short 0058CD66 0058CD53 817D D8 964EC34>cmp dword ptr ss:[ebp-0x28],0x47C34E96 0058CD5A 75 0A jnz short 0058CD66 0058CD5C BB 14000000 mov ebx,0x14 ; 20 用户授权 0058CD61 E9 2F050000 jmp 0058D295 0058CD66 817D DC 2F98520>cmp dword ptr ss:[ebp-0x24],0x152982F 0058CD6D 75 13 jnz short 0058CD82 0058CD6F 817D D8 08391FD>cmp dword ptr ss:[ebp-0x28],0xD61F3908 0058CD76 75 0A jnz short 0058CD82 0058CD78 BB 32000000 mov ebx,0x32 ; 50 用户授权 0058CD7D E9 13050000 jmp 0058D295 0058CD82 817D DC D211720>cmp dword ptr ss:[ebp-0x24],0x17211D2 0058CD89 75 13 jnz short 0058CD9E 0058CD8B 817D D8 D4FC05B>cmp dword ptr ss:[ebp-0x28],0xB605FCD4 0058CD92 75 0A jnz short 0058CD9E 0058CD94 BB 0F270000 mov ebx,0x270F ; 9999 用户,也就是无限用户授权 0058CD99 E9 F7040000 jmp 0058D295 0058CD9E 33DB xor ebx,ebx 0058CDA0 A1 B02F6000 mov eax,dword ptr ds:[<版本类别标志位>] 0058CDA5 C700 FFFFFFFF mov dword ptr ds:[eax],-0x1 0058CDAB E9 E5040000 jmp 0058D295 0058CDB0 83FB 14 cmp ebx,0x14 ; 注册码长度为 20 的情况 0058CDB3 0F85 0B010000 jnz 0058CEC4 0058CDB9 A1 B02F6000 mov eax,dword ptr ds:[<版本类别标志位>] 0058CDBE C700 03000000 mov dword ptr ds:[eax],0x3 ; 这个授权可能是需要升级用的吧? 没深入研究 0058CDC4 8B45 F4 mov eax,dword ptr ss:[ebp-0xC] 0058CDC7 E8 40FAFFFF call <授权的第三套算法> 0058CDCC 8945 D8 mov dword ptr ss:[ebp-0x28],eax : : 0058D1E9 83FB 18 cmp ebx,0x18 ; 注册码长度为 24 的情况, 以下参考上面的注释 0058D1EC 0F85 A1000000 jnz 0058D293 0058D1F2 8D45 F0 lea eax,dword ptr ss:[ebp-0x10] 0058D1F5 50 push eax 0058D1F6 B9 13000000 mov ecx,0x13 0058D1FB BA 01000000 mov edx,0x1 0058D200 8B45 F4 mov eax,dword ptr ss:[ebp-0xC] 0058D203 E8 C817E8FF call 0040E9D0 0058D208 8D45 EC lea eax,dword ptr ss:[ebp-0x14] 0058D20B 50 push eax 0058D20C B9 04000000 mov ecx,0x4 0058D211 BA 15000000 mov edx,0x15 0058D216 8B45 F4 mov eax,dword ptr ss:[ebp-0xC] 0058D219 E8 B217E8FF call 0040E9D0 0058D21E 8D45 E8 lea eax,dword ptr ss:[ebp-0x18] 0058D221 50 push eax 0058D222 B9 04000000 mov ecx,0x4 0058D227 BA 1A000000 mov edx,0x1A ; 明显这里超过长度的 24,可以说是官方写错代码了。 0058D22C 8B45 F4 mov eax,dword ptr ss:[ebp-0xC] 0058D22F E8 9C17E8FF call 0040E9D0 0058D234 8B45 E8 mov eax,dword ptr ss:[ebp-0x18] 0058D237 E8 BCF6FFFF call <授权的第二套算法函数> 0058D23C 83FA 00 cmp edx,0x0 0058D23F 75 14 jnz short 0058D255 0058D241 3D 903F0000 cmp eax,0x3F90 0058D246 75 0D jnz short 0058D255 0058D248 A1 B02F6000 mov eax,dword ptr ds:[<版本类别标志位>] 0058D24D C700 01000000 mov dword ptr ds:[eax],0x1 ; 专业版授权 0058D253 EB 09 jmp short 0058D25E 0058D255 A1 B02F6000 mov eax,dword ptr ds:[<版本类别标志位>] 0058D25A 33D2 xor edx,edx 0058D25C 8910 mov dword ptr ds:[eax],edx ; 标准版授权 0058D25E 8B45 F0 mov eax,dword ptr ss:[ebp-0x10] 0058D261 E8 92F6FFFF call <授权的第二套算法函数>
太久没发帖了,不知道代码要怎么对齐。
至于想要直接获取成品的朋友,底下的两套注册码可以直接拿去享用。
更多【SoftAny WinCHM 5.496 注册码笔记 by ZeNiX】相关视频教程:www.yxfzedu.com