160个Crackme014
文章目錄
- 查殼
- 分析程序
- 驗(yàn)證結(jié)果
查殼
還是個(gè)VB寫的程序,沒有殼
分析程序
既然是單純的一個(gè)序列號(hào)的保護(hù)方式 就沒有必要分析算法了,直接追蹤序列號(hào)就行
首先,根據(jù)錯(cuò)誤的字符串提示向上找跳轉(zhuǎn)
這兩句一共有三個(gè)跳轉(zhuǎn),也就是說對(duì)序列號(hào)進(jìn)行了三次判斷
首先來到403704這個(gè)位置的跳轉(zhuǎn)
這里是比較字符串的長(zhǎng)度是否為9,不是則報(bào)錯(cuò)
接著再來到403A04這個(gè)位置的跳轉(zhuǎn)
這里會(huì)根據(jù)vbaVarTstNe的比較結(jié)果來判斷是否進(jìn)行跳轉(zhuǎn),這個(gè)函數(shù)的VB常用的比較函數(shù),可以肯定這里就是比較正確的序列號(hào)的地方了
等待程序斷下后,來觀察兩個(gè)參數(shù)的內(nèi)容,var18固定為0,var28是個(gè)字符串
首地址+8才是真正的內(nèi)容
是字符3,理論上來說這里應(yīng)該是個(gè)序列號(hào),但是只出現(xiàn)一個(gè)字符,也就是說這個(gè)軟件比較序列號(hào)的方式是逐個(gè)字符的比較,
再來看一下判斷的部分
比較di之后,如果不相等則跳轉(zhuǎn)到報(bào)錯(cuò)的地方,如果相等則繼續(xù)往下走,后面兩句相當(dāng)于i++,然后跳轉(zhuǎn)到循環(huán)開始處,
也就是說只要在vbaVarTstNe比較之后跳轉(zhuǎn)之前修改ZF標(biāo)志位,就能看到每個(gè)正確的序列號(hào)
正確的序列號(hào)是301674501
驗(yàn)證結(jié)果
輸入得到的結(jié)果,提示正確
需要相關(guān)文件的可以到我的Github下載:https://github.com/TonyChen56/160-Crackme
《新程序員》:云原生和全面數(shù)字化實(shí)踐50位技術(shù)專家共同創(chuàng)作,文字、視頻、音頻交互閱讀總結(jié)
以上是生活随笔為你收集整理的160个Crackme014的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 160个Crackme013之投机取巧
- 下一篇: 160个Crackme015