出于無聊和記事本確實不怎么好用的目的,所以準備給記事本添加上下翻頁的功能。
首先要做的事情就是修改程序入口點,這樣一來才能優(yōu)先獲取程序的控制權(quán),廢話就不多說了。
1. 想要修改程序的入口點首先就要觀察下程序員先的入口點在什么位置,這樣一來等我們的處理完畢后還是要把控制權(quán)還給記事本,以免出現(xiàn)錯誤。
用LoadPE看看記事本的一些信息

從這里可以很清楚的發(fā)現(xiàn)磁盤文件入口在400偏移處而文件對齊是7800字節(jié)大小,實際使用的是7748字節(jié)大小,那么也就是說7800-7748=b8h空間可以供我們插入代碼
2. 知道了即將插入代碼的地方,那么就準備好機器碼以便處理,這里我們先只修改程序入口,其余的操作以后再寫。

從這里我們可以看到程序原先的入口偏移地址在739dh處,也就是說我們做完自己的處理后要跳轉(zhuǎn)到這里。
B8 9D 73 00 01 ff E0
這便是
mov eax, 0100739dh
jmp eax
的機器碼
3. 修改文件入口
因為文件偏移地址為400h而實際使用的字節(jié)數(shù)為7748h那么也就是說我們要在 7b49h處插入我們的代碼。(再聲明一次,時間有限今天只能寫修改入口,至于其他操作,后面有時間的時候再繼續(xù)寫)
用UE打開notepade.exe,在空隙處插入我們新的入口代碼

4. 修改程序入口點
因為原先的代碼段偏移地址為1000h,而實際.text節(jié)大小為7748那么也就是說新的程序入口應(yīng)該是7748h+1000h=8749h

修改完畢后點擊Sava。
再次運行notepad.exe

沒有任何異常,那么修改程序入口成功。
當(dāng)然你可能認為什么都還么做呢。呵呵,入口控制權(quán)被拿到了,那么接下來就可以自由發(fā)揮了。
時間有限,下次將在今天修改的入口點給notepad.exe載入我們的dll文件,緊接著,用我們的dlll來處理記事本的翻頁功能待續(xù)…