WinHex18.4算法分析
經(jīng)過分析,注冊碼分為六個部分:
Name: "xxx"
Addr1: "yyy"
Addr2: "zzz" 這三個字符不代表長度
Key1: "32個十六進(jìn)制數(shù)的字符串" 它在內(nèi)存中的形式是:比如字符串是
"18A519949D4E5F1FAED08A3EAB7CC665" 它會以兩個字符為單位作為一個字節(jié), 以順序列在內(nèi)存中? ===> 18 A5 19 94 等等
Key2: "32個十六進(jìn)制數(shù)字符串" 同上
Chksm: "kk" 就一個字節(jié)
?
以上的六個部分的后半個部分會被拷貝到以下位置:
xxx 5e2f14
yyy 5e2f65
zzz 5e2fa2
?
key1的值 5e2fdf
key2的值 5e2fef
?????????????????? key1和key2中的值在內(nèi)存中是緊密相連的.
Chksm的值 5e30f9
?
以上六個部分的前半個部分,會進(jìn)行比較, 也就是說必須一模一樣. 除了中間的空格還可以被替換成其他字符
?
?
用PEID查看發(fā)現(xiàn)未加殼,之后查看導(dǎo)入表,發(fā)現(xiàn)關(guān)鍵函數(shù)
在lstrcmpiA下斷,隨意輸入注冊碼,之后發(fā)現(xiàn),注冊判斷函數(shù)在sub_568A74
?
整串字符串的分離和拷貝跟sub_569fa4有關(guān), 他會清除一些分隔符, 進(jìn)入下一部分.
六個部分的前半部分都是以如下的形式進(jìn)行檢測的:
其中5e42fc是一個中轉(zhuǎn)站:
在sub_569fa4中,會將分離出來的字符串拷貝到5e42fc中,如果是后半部分的字符串那么還會拷貝到[5e2F14,+0xeb)的相應(yīng)位置
以上是六段注冊碼的分離以及部分檢測.
下面是checksum的值的計(jì)算方式:
就是把5e2f14開始的0xeb個字節(jié), 以字節(jié)為單位全部相加
由于這個數(shù)據(jù)塊前面已經(jīng)置過0, 所以不會有其他影響因素.
checksum就是把5個部分的后半部分以字節(jié)為單位全部相加,得到的值的低字節(jié),就是checksum的值了.
?
另外0x5e3238的值決定了軟件的到期時間
0x5e3238的值是由key1的首word和尾word異或得到的, 得注意字節(jié)序, 這個值必須在[46e4,5221)之間,高字節(jié)必須&&0x80==0
?
key1的倒數(shù)第3個字節(jié) byte_5e2fec and 0x1f == 0x13 ==>5e2fec == 0x13 或0x33 0x53 73 93 b3 e3
byte_5e2fec/32 ==> 5e31a2 !=5,8,6 那么b3就不行了` 0 1 2 3 4 5 6
byte_5e31a2 [2,6]
?
Name: "aaaa"
Addr1: "bbbb"
Addr2: "cccc"
Key1: "2A3C1111111111111111111111535770"
Key2: "11111111111111111111111111111111"
Chksm: "E3"
Genuinely Licensed for personal use. 個人使用
Software is unlocked. All Updates released before 2018/03/28 are free for me.
軟件已經(jīng)解鎖. 2018年3月28日以前的所有升級對我來說都是免費(fèi)的.
轉(zhuǎn)載于:https://www.cnblogs.com/cqubsj/p/6635611.html
總結(jié)
以上是生活随笔為你收集整理的WinHex18.4算法分析的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 计算机导论课程论文标题大全,计算机导论课
- 下一篇: VX线报机器人的使用