步驟如下
1.破解樣本 鏈接為 http://pan.baidu.com/s/1o8lwLiq
2.首先打開樣本程序际邻,得到關(guān)鍵字符串“try again”诱桂,如下
3.打開IDA加載該樣本程序辙纬。打開View->Open Subviws->Strings 字符串窗口,搜索關(guān)鍵字符串屠凶。
雙擊字符串遮咖,進(jìn)入IDA-View 窗口,按table鍵轉(zhuǎn)換為Pseudocode 窗口昵宇,這是反編譯過來的c代碼磅崭,觀察它的邏輯。找到判斷瓦哎,跳轉(zhuǎn)的位置砸喻。如圖 可以看出調(diào)用了istrcmpA函數(shù)柔逼,比較輸入字符串和要找的字符串,然后跳轉(zhuǎn)恩够。在這一行 代碼處按table鍵切換窗口找到反匯編位置卒落,如圖是代碼段0x00401094 的位置。
4.打開OD找到這個(gè)位置蜂桶。
此時(shí)我們?cè)谶@個(gè)位置下斷點(diǎn)可以看到儡毕,堆棧區(qū)顯示兩個(gè)字符串,一個(gè)是我們輸入的字符串扑媚,而另一個(gè)就是實(shí)際的序列號(hào)腰湾。
有兩種方法可以破解,第一種方法是直接輸入這個(gè)序列號(hào)就行了疆股,另一種是我們找到跳轉(zhuǎn)到顯示“try again ”的位置费坊,修改跳轉(zhuǎn)指令,步驟如下:
方法1:輸入“`mddggzdl” 旬痹,顯示"very good".
方法2:分析斷點(diǎn)附近的指令附井,單步調(diào)試發(fā)現(xiàn)跳轉(zhuǎn)指令在指令“0040109A”處 當(dāng)跳轉(zhuǎn)實(shí)現(xiàn)時(shí),跳轉(zhuǎn)到"success" ,當(dāng)跳轉(zhuǎn)沒有實(shí)現(xiàn)時(shí)两残,跳轉(zhuǎn)到“fail” 永毅。我們只需要修改這個(gè)跳轉(zhuǎn)條件,讓它的跳轉(zhuǎn)調(diào)到"success"即可人弓。分析指令我們知道把JE 改為“JNE”即可沼死。如圖:右鍵匯編,改JE為JNE崔赌,然后匯編意蛀,右鍵復(fù)制到可執(zhí)行文件-所有修改-全部復(fù)制,在彈框中右鍵保存文件健芭,輸入保存的文件名县钥,保存即可。