• 标 题:请C-Pen大侠给与指教。。。 (181字)
  • 作 者:1212
  • 时 间:2000-10-8 21:14:50

4)用Hex Workshop打開Import1.bin,從偏移1000處開始選方塊728
        將其貼至iGdump.exe的,rdata section的Raw Offset處, 即
        004B600.

    能告诉我这些数据的来历吗?谢谢!!

  • 标 题:补充。。。 (181字)
  • 作 者:1212
  • 时 间:2000-10-8 21:29:11

igame.exe的.rdata section的Raw Offset值为:26E00,那么0004B600
是怎么来的呢?

  另外,为何从Import1.bin的偏移1000处剪 728H个字节?728H又是怎么
的来的?


  请多指教,谢谢!

  • 标 题:請進! (1千字)
  • 作 者:C-pen
  • 时 间:2000-10-9 9:14:40

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