很簡單的一款兒童學習數(shù)學的軟件,長期使用時需要注冊碼,下面簡單分析一下注冊算法。
注冊碼必須是25位,形如AAAAa-BBBBb-CCCCc-DDDDd-EEEEe.真正有用的只是AAAABBBBCCCCDDDD16位,其他位置可以隨便填寫。
004015B1 call ds:_mbscmp處是比較注冊碼是否正確。
正確的注冊碼需要用硬盤的id號計算,比如我的虛擬機8位硬盤id:18e9de99
1)先進行變形在2,4,6,8,10,12,14,16位分別插入1,2,3,4,5,6,7,8.多次變形后生成24位長字符串11128324e5369748d5e69798。
2)按照6個字符一段分成4組,按照3)4)5)計算生成4個4位共16位字符串
3)每一組的后三字符逐位與種子數(shù)組【0a,13,09,0c,0b,0a,08】相乘后求和,并轉(zhuǎn)換為字符串。
4)計算3)中生成字符串的第3位與第4位差的絕對值,存入m。
5)對3)生成的字符串進行變形,先把第1位加上m;然后前4位每位各加上0x11,生成4位字符串
按照1)-5)步驟重復兩次,第一次生成JBCJHBHCEGHJHCJE,第二次生成ICDJCDCCCHBBCIFF。
ICDJCDCCCHBBCIFF就是對應上面的AAAABBBBCCCCDDDD16位注冊碼了。
所以我的虛擬機的注冊碼就是ICDJ1-CDCC2-CHBB3-CIFF4-00000。注冊成功后你的注冊碼保存在dat\diary.dat文件中。