4)用Hex Workshop打開Import1.bin,從偏移1000處開始選方塊728
將其貼至iGdump.exe的,rdata section的Raw Offset處, 即
004B600.
能告诉我这些数据的来历吗?谢谢!!
- 标 题:请C-Pen大侠给与指教。。。 (181字)
- 作 者:1212
- 时 间:2000-10-8 21:14:50
4)用Hex Workshop打開Import1.bin,從偏移1000處開始選方塊728
將其貼至iGdump.exe的,rdata section的Raw Offset處, 即
004B600.
能告诉我这些数据的来历吗?谢谢!!
igame.exe的.rdata section的Raw Offset值为:26E00,那么0004B600
是怎么来的呢?
另外,为何从Import1.bin的偏移1000处剪 728H个字节?728H又是怎么
的来的?
请多指教,谢谢!
Asprotect1.0針對只有.rdata section的編碼方式,是它會將Image_Thunk_D
ata這個矩陣結構放在.rdata section的開頭,即004C0000開始,Size是728h
而Import1.bin則是Image_Thunk_Data所對應的API位址; 我們為什麼要將API
的位址粘貼至Image_Thunk_Data中呢? 因為Asprotect1.0(1.07以上編碼方式
又不同)會將Image_Thunk_Data分成兩類:
(1)01xxxxxx <-- Asprotect的轉換Code
(2)API位址
舉個例子來說明: 例如iGame.exe它要調用RegCloseKey這個API時, 它的代碼
是這樣的:
Call [004C0000] <-- (A)
其中的[004C0000]在未脫殼時, 其值是01xxxxxx,上面的Code(A)可寫成
Call 01xxxxxx, 再經Asprotect的轉換會指向RegCloseKey的位址即
BFEA1644, 其時它最終可寫成
Call BFEA1644
但是當我們脫殼後,01xxxxxx的Code以不復存在,所以我們才用BFEA1644去取代
01xxxxxx,讓程式能直接去Call這個API,基本原理就是那麼簡單.
最後你問到iGame.exe的Raw Offset是26E00怎麼會粘貼至4B600處, 你仔細看文章,我寫的是粘貼至iGdump.exe(即我們dump下來的程式)它的Raw
Offset是4B600,這是Procdump分配的, 若還有疑問我建議你再多讀點PE結構的
資料,會比較容易吸收, 祝好運!!!
JOHNSON 2000\10\09