【Hack Tutorial】DLL Relocation
http://localhost/web/webimg/hacker.gifPC Game Hack -- DLL Relocation
Author: Krizal Chen
HackerTeam: VirusDream7
Original: DarkShadow GameHackTeam
WebSite:http://kenkuroro.t35.com
Blog:http://tw.myblog.yahoo.com/dsght-krizal
http://localhost/web/webimg/hacker.gif
昨天2009/08/12 Thursday
我們家的寶貝米格魯 - ミル,生了七隻小寶寶,
雖然三隻夭折了,不過新生命的誕生仍然值得祝賀,
希望那三隻可愛的寶寶也能早日投胎。
明天是本人的生日,
依照慣例都會發一些Hack ROM,不過最近很忙沒什麼時間,
於是把我這禮拜Hack某東西的某些資料,整理簡化寫個教學,
適用於PC Game Hack或是加密解密的應用。
首先我們先了解什麼是重定位?
一般Windows執行檔EXE,
於執行中系統會想盡辦法,讓EXE定位在ImageBase上。
但是DLL並沒有辦法獲得保證,所以需要重定位資料,
使DLL重新定位,否則可能造成程式執行上的錯誤。
什麼時候需要重定位?
當我們修改完DLL的時候,都必須進行重定位修復。
ex:
Original:
005269A8 6A 00 push 0
005269AA 6A 00 push 0
005269AC E8 72000000 call Visual.00526A23
After:
005269A8 68 10695300 push Visual.00536910
005269AD 68 20645200 push Visual.00526420
005269B2 E8 6C000000 call Visual.00526A23
當以上程式碼經過修改後有兩段需要進行重定位:
005269A8 68 【10695300】 push Visual.00536910
005269AD 68 【20645200】 push Visual.00526420
005269B2 E86C000000 call Visual.00526A23
Must be relocated Address: 0x5269A9 & 0x5269AE
實際範例:
本人使用了C++撰寫了一個DLL Demo和DLL Loader,
給大家方面練習,下載於附件。
修改目的,讓MsgBox彈出顯示字串。
P.S.
為了讓初學者快速上手,DLL已經處理過,
可以直接使用RVA,且更改ASM時也預留了很多空間。
突然看到ASM程式碼下面很多NOP,絕對不是偶然 ^_^
**** Hidden Message *****
[ 本帖最后由 krizal 于 2009-8-13 20:25 编辑 ] 汗...
看不懂,纯支持了
:L 回帖看隐藏:loveliness: 团长的东西都是让我们这些新手看着晕头:victory: 虽然看不懂,还是要支持下。:loveliness: 感谢团长,支持下。 那个 好象我顶过团长的这帖了
论坛回滚:funk: 跟原始資料比較起來這個應該很簡單,
已經有盡量簡化過了,希望各位能有所得。
學會後對於Hack DLL 很有用處。
PS:
1.MessageBox 可以自行呼叫ASCII 或是WideChar格式的,
但是記得更換字串書寫格式。
2.此DLL其實更改後需要修復3處,
最後一處蠻簡單的,就留給大家當Homework。 睡起来看看,在顶一帖 看看隐藏 来迟了,支持一下团长,团长生日快乐。:loveliness:
页:
[1]