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