160个Crackme028之对抗花指令
文章目錄
- 查殼
- 分析程序
- 分析算法
- 對抗花指令
- 校驗過程
- 校驗結果
查殼
目標程序是用VC6寫的,沒有加殼,跟027是同一個作者,難度為一顆星
分析程序
首先根據(jù)錯誤提示可以看到跳轉到這個地址的地方有很多,我們直接選擇最前面那個地址,開始分析整個算法
先隨便輸入一個序列號
另外,這個程序如果有IDA的幫助會分析的更快
分析算法
我們找到算法開始處的地址,對應到IDA中,F5查看一下偽C代碼,但是你會發(fā)現(xiàn)有個提示,讓我們把光標選擇在一個函數(shù),這表示IDA的反編譯失敗了!這是為什么呢?
對抗花指令
上一個Crackme作者犯了一個低級錯誤,寫錯了一個參數(shù),這一次他玩了一個小把戲,用花指令干擾我們靜態(tài)分析。現(xiàn)在來破解一個小把戲
OD直接拉到函數(shù)開頭的部分,你會看到有一堆nop指令
在IDA同樣地址處這里卻不是nop,而是被解釋成了align10,IDA的反匯編器在這里出現(xiàn)了錯誤,把數(shù)據(jù)解釋成了代碼
那么解決辦法就是在這一行按字母D鍵,將代碼強行解釋為數(shù)據(jù),修改后如下:
然后選中整個函數(shù),按P鍵組合成一個函數(shù)
這個時候你再按F5,就能顯示整個函數(shù)的偽代碼了
校驗過程
這個程序的校驗過程相對來說比較簡單,過程如下
可以看到校驗的部分就是6個cmp和jcc指令了,直接看IDA
這里顯示的是一堆十進制的數(shù)字,這個對我們來說沒有意義,按R鍵,可以把數(shù)字轉為字符串,轉換后如下
可以很直觀的看到序列號就是6287-A
校驗結果
隨便輸入一個用戶名,但是長度必須大于5,然后輸入剛才的序號,提示正確 破解完成
最后,需要相關文件可以到我的Github下載:
https://github.com/TonyChen56/160-Crackme
總結
以上是生活随笔為你收集整理的160个Crackme028之对抗花指令的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 160个Crackme027之First
- 下一篇: 160个Crackme029