五月天青色头像情侣网名,国产亚洲av片在线观看18女人,黑人巨茎大战俄罗斯美女,扒下她的小内裤打屁股

歡迎光臨散文網(wǎng) 會員登陸 & 注冊

小甲魚 OllyDbg 教程系列 (十一) : inline patch ( 內(nèi)嵌補丁 )

2022-08-24 11:50 作者:限量版范兒  | 我要投稿


小甲魚 OllyDbg 視頻教程:https://www.bilibili.com/video/av6889190?p=19

程序下載地址:https://pan.baidu.com/s/1u6SWgx83VWDwitNzxT2OXg?? ?提取碼:if41?

PEiD 查殼工具:https://pan.baidu.com/s/1iNS4UlBvmXCxaj5a-AFupw?? ?提取碼:79z5?

?

?

前言

?

inline patch “內(nèi)嵌補丁” 指在程序文件中把補丁代碼寫入文件里面達(dá)到 PJ 的目的。

例:
原程序:??mov eax, dword ptr [ebp+8]????3個字節(jié)
想改為:??mov eax, 4????????????????????5個字節(jié)
若如此修改,會產(chǎn)生溢出,覆蓋了下面的指令

所以要采用內(nèi)嵌補丁的方式:

1. 找程序的空白區(qū)間,寫入自己需要的指令(mov eax, 4),以及會被覆蓋的指令
2.將原來的指令(mov eax, dword ptr [ebp+8])改為 jmp XXXXXX(補丁的地址)(這個操作也會覆蓋后面的內(nèi)容)
3.在補丁最后加上 jmp XXXXXXX(原程序后面的內(nèi)容的地址),跳出補丁,返回主程序

?

?

開始

?

首先用?PEiD?查看,可以看到是?VC6.0?寫的程序:

然后用?OD?載入程序,按?F9?運行,程序運行,然后隨便輸入注冊:

發(fā)現(xiàn)程序界面沒什么反應(yīng),現(xiàn)在輸入注冊碼,不要點擊?OK。打開?OD ,按下 Ctrl + n ,輸入?killtimer,查找?KillTimer

,右鍵 -》?在每個參考上設(shè)置斷點

為什么要在?KillTimer?上設(shè)置斷點呢?通過觀察發(fā)現(xiàn)了,KillTimer?實現(xiàn)了類似C語言的?switch?case?的效果

點擊?cmp?eax, 3 ,在數(shù)據(jù)窗口可以看到?是從哪個位置跳轉(zhuǎn)過過來的,然后右鍵?轉(zhuǎn)到?上級調(diào)用地址,按這種方法直到回溯到程序的開頭

回溯到?程序頭,即switch?case ,然后加上斷點

在向上看程序,函數(shù)的開頭加個斷點:

重新載入程序,讓程序在函數(shù)開頭的位置斷下來,按?F8?單步調(diào)試,觀察?eax?的值的變化:

解釋:

所以就需要用到 內(nèi)嵌補丁?來進(jìn)行修補。什么是內(nèi)嵌補丁,就是在程序中沒用的內(nèi)存空間寫入補丁。因為程序在內(nèi)存中都是需要內(nèi)存對齊的,所以有些沒用的空間都是用 0?來填充進(jìn)行對齊,可以在這些地方寫入補?。ㄟ@里寫入地址為 5E47D0):

快速定位技巧:設(shè)置書簽

記住位置或者設(shè)置書簽,復(fù)制被覆蓋的匯編代碼:

原來位置的修改:

跳轉(zhuǎn)到要寫入內(nèi)嵌補丁的位置,開始寫入補?。?/p>

?

粘貼被覆蓋的代碼,然后再跳轉(zhuǎn)到原來的位置:

保存修改,然后運行程序,發(fā)現(xiàn)程序一直死循環(huán)。說明程序還有問題,沖洗載入程序,單步調(diào)試,當(dāng)程序運行到?cmp eax,4?時,更改?ZF?標(biāo)志位,讓程序跳轉(zhuǎn)實現(xiàn),然后繼續(xù)調(diào)試,發(fā)現(xiàn)當(dāng)程序?執(zhí)行?cmd eax,0B?時,程序正常。所以修改補丁位置?mov eax,4?位?mov eax, 0B

保存程序,然后運行程序,發(fā)現(xiàn)程序正常。

說明:當(dāng)程序 mov?eax,4?時,驗證成功,但是驗證成功后還的?mov eax,0B?跳出循環(huán),所以當(dāng)?mov eax,4?時,雖然驗證成功,但是沒有跳出循環(huán),所以一直跳出窗口。

鏈接:https://www.dianjilingqu.com/496841.html

小甲魚 OllyDbg 教程系列 (十一) : inline patch ( 內(nèi)嵌補丁 )的評論 (共 條)

分享到微博請遵守國家法律
游戏| 泾川县| 南宁市| 寻甸| 沛县| 临清市| 长沙县| 蓬安县| 措美县| 大庆市| 若羌县| 朝阳县| 哈巴河县| 扎兰屯市| 密山市| 龙胜| 南丹县| 嵩明县| 河津市| 龙海市| 商河县| 邢台县| 邯郸县| 曲阜市| 华亭县| 赞皇县| 青川县| 嘉黎县| 昌平区| 大名县| 长海县| 安西县| 黔南| 平江县| 乐清市| 阳泉市| 荆州市| 濮阳县| 天峨县| 玉山县| 肃南|