3.逆向分析Hello World!程序-下
5.繼續補充,常用操作指令:
Ctrl+G????Go?to???????移動到指定地址,用來查看代碼或內存,運行時不可用
F4????????Execute?till?Cursor?執行到光標位置,即直接轉到要調試的地址
;?????????Comment?????添加注釋?
User-defined?comment??鼠標右鍵菜單Search?for?User-defined?comment
:?????????Label???????添加標簽
User-defined?label????鼠標右鍵慘淡Search?for?User-defined?label
F2????????Set/Reset?BreakPoint?設置或取消斷點(BP)
F9????????運行(若設置了斷點,則執行至斷點處)
*?????????顯示當前EIP(命令指針)位置
-?????????顯示上一個光標的位置
Enter?????若光標處有CALL/JMP等指令,則跟蹤并顯示相關地址(運行時不可用,簡單查看函數內容時非常有用)
?
6.Basecamp?四種方式,直接到想去的位置。
(1)Goto(Ctrl+G),打開Enter?expression?to?follow(輸入跟蹤表達式)對話框。
(2)設置斷點,BP(Break?Point,斷點)(快捷鍵F2)。
程序在OD里加載起來的時候,直接F9跑起來,會自動卡到斷點處的。
ALT+B?可以打開Breakpoints對話框,列出代碼設置的斷點。
?
(3)注釋,快捷鍵?;?,右鍵Search?for-User?defined?comment?可以查看注釋列表,可以進行跳轉。
?
(4)標簽,在制定地址添加特定名稱。快捷鍵?:?類似上面Search?for-User?defined?labels
6.快速查找制定代碼的四種方法
目標查找main()中的MessageBox()?API調用
(1)方法一,無腦執行所有,就是一步一步的看,肯定有一步是調用這個的。額,這個的話沒啥好說的,只能說大多數時候,不采取竅門,這么弄會瘋。耗時。
(2)定位字符串,這個比較常用。右鍵?查找所有文本字符串。
雙擊直接跳到調用地址,其實直接找到了MessageBox()
此時正要把HelloWorld這個字符串地址壓入棧,當參數呢。下面緊接著就call這個函數了。
(3)API檢索法-1:在調用代碼中設置斷點
?右鍵菜單-Search?for?-?All?intermodular?calls?看所有API調用,注意MessageBox是在user32里面的。
雙擊直接跳轉到調用的位置。
(4)API檢索法-1:在API代碼中設置斷點
右鍵?Search?for?-?Name?in?all?calls
對于了調用的各個dll中的導出函數(對壓縮器和保護器處理過的可能看不到)
找到MessageBoxW雙擊
留意地址,其實這個已經和之前的程序不再一個范圍內了,這個是Windows為了節省開銷做處理之后的結果,很多系統dll,大家共同加載一個。如果需要特別的修改什么的會自動觸發copy-on-write機制。雙擊MessageBoxW之后,跳到這個函數內存,然后F2下一個斷點。
7.修改Hello?World!字符串(兩種方法)
直接修改字符串緩沖區(buffer)/在其他內存區域生成字符串并傳遞給消息函數
(1)直接修改字符串緩沖區
Ctrl+F2重新調試程序。
然后直接右鍵超找所有字符串,找到HelloWorld字符串,雙擊。看到地址
在內存區域Ctrl+G跳到這個地址(VA)
選上一個范圍,然后Ctrl+E?修改字符串
然后F9跑起來,看到輸出內容變了。注意此時只是改了內存。PE文件本身還沒有改,如果重新執行的話內存會被重新加載成之前的。所以要把當前修改的內容同步到PE文件里面去。
繼續,在地址區域右鍵?Copy?to?executable?file
繼續右鍵,保存可執行文件。A.exe.然后雙擊就好了。
(2)在其他內存區域新建字符串并傳遞給消息函數。
先跳到之前字符串的位置,看下:
發現有好多空的地方。在這里面直接開始存一段
然后把MessageBox調用Push參數的時候的那個地址直接改成自己的這個新地址上面的那個圖的話就是01102148
然后F9跑起來,結果是下面這樣。
但是這個地方目前沒有辦法直接右鍵保存修改,因為保存之后也執行不了,涉及到地址偏移問題。這個之后說。
同時對于方案1的話容易出現的問題就是你修改的字符串如果比之前的長,而同時之前字符串數據后面是緊跟著存東西的這種,就會破壞掉后面的數據。所以一定要小心。對于第二種方式,也不是所有位置都隨便寫內容的。這個后期細說。但要注意這個問題。
?
?
?
?
?
總結
以上是生活随笔為你收集整理的3.逆向分析Hello World!程序-下的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 机器视觉-EasyDL商品检测-标准版-
- 下一篇: 4.小端序标记法