2012年7月18日 星期三

OllyDBG基礎教程:曹操傳(一)

一、安裝OllyICE
OllyICE是OllyDBG的整合版。首先下載OllyICE,將附件解壓縮到一個文件夾下,運行 OllyICE.exe 即可。

二、調試方法
點擊菜單「文件 -> 打開」(快捷鍵為 F3 ),選擇曹操傳主程序(以原版曹操傳Ekd5.exe為例),可看到如下畫面。

反匯編窗口:顯示程序的反匯編代碼。
寄存器窗口:顯示寄存器內容。
數據窗口:顯示內存或文件的內容。
堆棧窗口:顯示當前線程的堆棧。

調試中經常要用到的快捷鍵:
F9:運行。按下這個鍵如果沒有設置相應斷點的話,被調試的程序將直接開始運行。
F2:設置斷點,只要在光標定位的位置(上圖中反匯編窗口的淺藍色條)按F2鍵即可,再按一次F2鍵則會刪除斷點。
F8:單步步過。每按一次這個鍵執行一條反匯編窗口中的一條指令,遇到 CALL 等子程序不進入其代碼。
F7:單步步入。功能同單步步過(F8)類似,區別是遇到 CALL 等子程序時會進入其中,進入後首先會停留在子程序的第一條指令上。
Ctrl+G:跟隨到輸入的地址。
Ctrl+F:查找命令。
Ctrl+L:查找下一個,配合Ctrl+F使用。

三、修改代碼:
雙擊反匯編窗口中的代碼,在彈出的窗口中,輸入修改後的代碼。如下圖,將Push 2C改為Push 3D。


修改時可能會用到的快捷鍵:
Alt+Backspace:撤消選擇處修改。

三、儲存修改 (建議先備份Ekd5.exe,以免發生錯誤)
按住鼠標左鍵,選擇修改過的代碼後,點擊鼠標右鍵 -> 複製到可執行文件 -> 選擇,如下圖。


在接下來的畫面中,點擊鼠標右鍵 -> 保存文件 -> 儲存 -> 是,如下圖。



第一篇先講解到這裡,有興趣的人可以先試試:
假設要找"無反擊攻擊(2C)"的代碼位置,先單擊"反匯編窗口",按Home鍵,Ctrl+F尋找 Push 2C (無分小大寫)。
如果是停在 Call 407A09 附近,就是正確位置,否則 Ctrl+L 繼續搜尋。
然後在 Push 2C 這裡按下 F2 設定斷點,F9運行程序。
進入戰場後,攻擊敵人,當敵人要反擊時,就會停在這個代碼,接下來可以用F8F7F9試著繼續調試。
或是將Push 2C中的"2C"改為其他特效號,假如要和"麻痺攻擊(25)"合併,就將Push 2C改為Push 25,然後儲存。

沒有留言:

張貼留言