一:od斷點注釋保存的問題,由於od只有在正常退出的情況下才會保存分析代碼時留下的注釋,而很多時候為了在退出od時不讓目標程序退出使用了剝離進程,這樣就會導致這次操作所有的注釋都沒有保存,第二次重新載入時候又的重新分析注釋下斷點,所以需要自己下載一個插件 Myinfo.dll,這個插件可以手動保存注釋和斷點,插件里面的導出操作是把注釋導出到一個文件中,導入操作是把注釋導入到od代碼分析界面來,注意,每次導出操作都會刪掉文件中的內容,保留本次導出內容
二: 插件安裝,od插件只需把插件的dll粘貼到od安裝文件夾的plugin文件夾中即可
三: 定位代 碼時有時使用一些花指令代碼 比如_asm{ mov eax,eax mov eax,eax} 這樣的代碼無實際作用,但是有助於定位程序代碼段,可是查找命令序列時有時找不出來,這就需要點查看可執行模塊,找出目標模塊,雙擊,一般需要重復兩次操 作,這樣才能找到該命令序列,以為開始中斷並不處於主模塊內,需要進入主模塊段才可以查找注釋和指令
四:od一些常用命令
dd 以四字節方式轉儲,也就是以四字節的方式查看地址內存的值,比如一個數組 array[20] 它的首地址是405118 那么 dd 405118 就可以 看到array[0]的值了,dd i*0x4+405118 就可以看到數組array[i]的值,游戲分析時分析對象數組,dd [eax*4+03f82520] 首先取出數 組03f82520[eax]里面保存的地址,然后查看該地址的值,很多怪物對象的首地址都是放在對象數組里面,找到該地址,就可以分析出該怪物的相應信息如 dd [eax*4+03f82520] +0xc 這個可能就是怪物生命等等
dc 是以ascill碼顯示該地址,這個一般是查看文本信息
hw硬件中斷在寫入時
db 以比特格式十六進制轉儲
當然有一些快捷鍵命令 暫時不表
五: 備份,修改數據之前,難免要備份,這就要用到備份功能,這樣就可以很容易恢復到修改之前
六: 跟蹤調試,這個功能相當不錯,可以記錄所有寄存器的值,這樣便於觀察分析
七: 直接更改程序匯編代碼,然后保存到文件,這樣就相當於更改了部分程序代碼,很方便
八:下API斷點 等熟悉了再補充