4.OD-调试示例1
使用TraceMe.exe
OD按F3加載TraceMe,再按F9運行起來,如圖所示
?
設置一個斷點:
Ctrl+G打開跟隨表達式窗口
OllyDbg里對API的大小寫敏感,輸入的函數名大小寫必須正確,比如以下兩種寫法都是不正確的:
點擊OK后,會跳到系統User32.dll的GetDlgItemTextA函數入口處:
按Alt+B快捷鍵或單擊B按鈕打開斷點窗口,如圖所示:
?
這里顯示的斷點不包括硬件斷點
Ctrl+N?:打開當前模塊的名稱(標簽)列表
比如剛開始進入TraceMe時,按Ctrl+N打開的是TraceMe的名稱列表
在Ctrl+G查找User32.dll的GetDlgItemTextA成功后:
輸入字符,按OK,斷點斷下來,
按Alt+F9回到調用函數的地方:
我們發現,入口地址是004011AE,那么對它下個斷點(F2),同時ALT+B打開斷點窗口,把GetDlgItemTextA禁用掉(使用空格可以切換)
重新點擊Check,斷下來了,中斷后的代碼如下:(圖和上面圖一樣)
后面的注釋是我順便加的,方便理解,;鍵是加注釋的快捷鍵.
那么要成功注冊現在有兩種方法:
1.在運行到004011F5時直接改ZF為0
2.直接加入nop取代,這個是選中004011F5這一行,雙擊鼠標或單擊空格鍵,輸入指令NOP:
如圖:
如果新的指令比原來的指令短,只要你勾選了對話框上的“Fill with NOPs”選項,OllyDbg就會用NOP指令(no operation,空操作指令)來補充
為了使這個改變寫入磁盤文件中,方法是用鼠標選中修改過的代碼,單擊鼠標右鍵,執行"Copy to executable/Section"命令:
比較好懂的,Selection,選中部分,All modifications肯定就是所有修改過的地方
像這種屏蔽程序的某些功能或改變程序流程,使程序的保護方式失效的方法稱為patch(補丁)或爆破
接下來,算法分析:明顯在004011E5這下個斷點:F7step into斷點:
剛我們跟蹤的結果是eax為密碼字符串地址,edx為用戶名字符串地址,ebx為用戶名字符串長度
?
?
總結
以上是生活随笔為你收集整理的4.OD-调试示例1的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 3.OD-功能小结
- 下一篇: 5.OD-条件断点、条件记录断点