出于無(wú)聊和記事本確實(shí)不怎么好用的目的,所以準(zhǔn)備給記事本添加上下翻頁(yè)的功能。

首先要做的事情就是修改程序入口點(diǎn),這樣一來(lái)才能優(yōu)先獲取程序的控制權(quán),廢話(huà)就不多說(shuō)了。

1.       想要修改程序的入口點(diǎn)首先就要觀察下程序員先的入口點(diǎn)在什么位置,這樣一來(lái)等我們的處理完畢后還是要把控制權(quán)還給記事本,以免出現(xiàn)錯(cuò)誤。

用LoadPE看看記事本的一些信息


從這里可以很清楚的發(fā)現(xiàn)磁盤(pán)文件入口在400偏移處而文件對(duì)齊是7800字節(jié)大小,實(shí)際使用的是7748字節(jié)大小,那么也就是說(shuō)7800-7748=b8h空間可以供我們插入代碼

2.       知道了即將插入代碼的地方,那么就準(zhǔn)備好機(jī)器碼以便處理,這里我們先只修改程序入口,其余的操作以后再寫(xiě)。


從這里我們可以看到程序原先的入口偏移地址在739dh處,也就是說(shuō)我們做完自己的處理后要跳轉(zhuǎn)到這里。

B8 9D 73 00 01 ff E0

這便是

mov  eax, 0100739dh

jmp   eax

的機(jī)器碼

3.       修改文件入口

因?yàn)槲募频刂窞?00h而實(shí)際使用的字節(jié)數(shù)為7748h那么也就是說(shuō)我們要在 7b49h處插入我們的代碼。(再聲明一次,時(shí)間有限今天只能寫(xiě)修改入口,至于其他操作,后面有時(shí)間的時(shí)候再繼續(xù)寫(xiě))

用UE打開(kāi)notepade.exe,在空隙處插入我們新的入口代碼


4.       修改程序入口點(diǎn)

因?yàn)樵鹊拇a段偏移地址為1000h,而實(shí)際.text節(jié)大小為7748那么也就是說(shuō)新的程序入口應(yīng)該是7748h+1000h=8749h

修改完畢后點(diǎn)擊Sava。

再次運(yùn)行notepad.exe

沒(méi)有任何異常,那么修改程序入口成功。

當(dāng)然你可能認(rèn)為什么都還么做呢。呵呵,入口控制權(quán)被拿到了,那么接下來(lái)就可以自由發(fā)揮了。

時(shí)間有限,下次將在今天修改的入口點(diǎn)給notepad.exe載入我們的dll文件,緊接著,用我們的dlll來(lái)處理記事本的翻頁(yè)功能待續(xù)…