日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問(wèn) 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) >

3.逆向分析Hello World!程序-下

發(fā)布時(shí)間:2025/6/17 35 豆豆
生活随笔 收集整理的這篇文章主要介紹了 3.逆向分析Hello World!程序-下 小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

5.繼續(xù)補(bǔ)充,常用操作指令:

Ctrl+G????Go?to???????移動(dòng)到指定地址,用來(lái)查看代碼或內(nèi)存,運(yùn)行時(shí)不可用

F4????????Execute?till?Cursor?執(zhí)行到光標(biāo)位置,即直接轉(zhuǎn)到要調(diào)試的地址

;?????????Comment?????添加注釋?

User-defined?comment??鼠標(biāo)右鍵菜單Search?for?User-defined?comment

:?????????Label???????添加標(biāo)簽

User-defined?label????鼠標(biāo)右鍵慘淡Search?for?User-defined?label

F2????????Set/Reset?BreakPoint?設(shè)置或取消斷點(diǎn)(BP)

F9????????運(yùn)行(若設(shè)置了斷點(diǎn),則執(zhí)行至斷點(diǎn)處)

*?????????顯示當(dāng)前EIP(命令指針)位置

-?????????顯示上一個(gè)光標(biāo)的位置

Enter?????若光標(biāo)處有CALL/JMP等指令,則跟蹤并顯示相關(guān)地址(運(yùn)行時(shí)不可用,簡(jiǎn)單查看函數(shù)內(nèi)容時(shí)非常有用)

?

6.Basecamp?四種方式,直接到想去的位置。

(1)Goto(Ctrl+G),打開(kāi)Enter?expression?to?follow(輸入跟蹤表達(dá)式)對(duì)話框。

(2)設(shè)置斷點(diǎn),BP(Break?Point,斷點(diǎn))(快捷鍵F2)。

程序在OD里加載起來(lái)的時(shí)候,直接F9跑起來(lái),會(huì)自動(dòng)卡到斷點(diǎn)處的。

ALT+B?可以打開(kāi)Breakpoints對(duì)話框,列出代碼設(shè)置的斷點(diǎn)。

?


(3)注釋,快捷鍵?;?,右鍵Search?for-User?defined?comment?可以查看注釋列表,可以進(jìn)行跳轉(zhuǎn)。

?

(4)標(biāo)簽,在制定地址添加特定名稱。快捷鍵?:?類似上面Search?for-User?defined?labels

6.快速查找制定代碼的四種方法

目標(biāo)查找main()中的MessageBox()?API調(diào)用

(1)方法一,無(wú)腦執(zhí)行所有,就是一步一步的看,肯定有一步是調(diào)用這個(gè)的。額,這個(gè)的話沒(méi)啥好說(shuō)的,只能說(shuō)大多數(shù)時(shí)候,不采取竅門,這么弄會(huì)瘋。耗時(shí)。

(2)定位字符串,這個(gè)比較常用。右鍵?查找所有文本字符串。

雙擊直接跳到調(diào)用地址,其實(shí)直接找到了MessageBox()

此時(shí)正要把HelloWorld這個(gè)字符串地址壓入棧,當(dāng)參數(shù)呢。下面緊接著就call這個(gè)函數(shù)了。

(3)API檢索法-1:在調(diào)用代碼中設(shè)置斷點(diǎn)

?右鍵菜單-Search?for?-?All?intermodular?calls?看所有API調(diào)用,注意MessageBox是在user32里面的。

雙擊直接跳轉(zhuǎn)到調(diào)用的位置。

(4)API檢索法-1:在API代碼中設(shè)置斷點(diǎn)

右鍵?Search?for?-?Name?in?all?calls

對(duì)于了調(diào)用的各個(gè)dll中的導(dǎo)出函數(shù)(對(duì)壓縮器和保護(hù)器處理過(guò)的可能看不到)

找到MessageBoxW雙擊

留意地址,其實(shí)這個(gè)已經(jīng)和之前的程序不再一個(gè)范圍內(nèi)了,這個(gè)是Windows為了節(jié)省開(kāi)銷做處理之后的結(jié)果,很多系統(tǒng)dll,大家共同加載一個(gè)。如果需要特別的修改什么的會(huì)自動(dòng)觸發(fā)copy-on-write機(jī)制。雙擊MessageBoxW之后,跳到這個(gè)函數(shù)內(nèi)存,然后F2下一個(gè)斷點(diǎn)。

7.修改Hello?World!字符串(兩種方法)

直接修改字符串緩沖區(qū)(buffer)/在其他內(nèi)存區(qū)域生成字符串并傳遞給消息函數(shù)

(1)直接修改字符串緩沖區(qū)

Ctrl+F2重新調(diào)試程序。

然后直接右鍵超找所有字符串,找到HelloWorld字符串,雙擊。看到地址

在內(nèi)存區(qū)域Ctrl+G跳到這個(gè)地址(VA)

選上一個(gè)范圍,然后Ctrl+E?修改字符串

然后F9跑起來(lái),看到輸出內(nèi)容變了。注意此時(shí)只是改了內(nèi)存。PE文件本身還沒(méi)有改,如果重新執(zhí)行的話內(nèi)存會(huì)被重新加載成之前的。所以要把當(dāng)前修改的內(nèi)容同步到PE文件里面去。

繼續(xù),在地址區(qū)域右鍵?Copy?to?executable?file

繼續(xù)右鍵,保存可執(zhí)行文件。A.exe.然后雙擊就好了。

(2)在其他內(nèi)存區(qū)域新建字符串并傳遞給消息函數(shù)。

先跳到之前字符串的位置,看下:

發(fā)現(xiàn)有好多空的地方。在這里面直接開(kāi)始存一段

然后把MessageBox調(diào)用Push參數(shù)的時(shí)候的那個(gè)地址直接改成自己的這個(gè)新地址上面的那個(gè)圖的話就是01102148

然后F9跑起來(lái),結(jié)果是下面這樣。

但是這個(gè)地方目前沒(méi)有辦法直接右鍵保存修改,因?yàn)楸4嬷笠矆?zhí)行不了,涉及到地址偏移問(wèn)題。這個(gè)之后說(shuō)。

同時(shí)對(duì)于方案1的話容易出現(xiàn)的問(wèn)題就是你修改的字符串如果比之前的長(zhǎng),而同時(shí)之前字符串?dāng)?shù)據(jù)后面是緊跟著存東西的這種,就會(huì)破壞掉后面的數(shù)據(jù)。所以一定要小心。對(duì)于第二種方式,也不是所有位置都隨便寫(xiě)內(nèi)容的。這個(gè)后期細(xì)說(shuō)。但要注意這個(gè)問(wèn)題。

?

?

?

?

?

總結(jié)

以上是生活随笔為你收集整理的3.逆向分析Hello World!程序-下的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。

如果覺(jué)得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。