1. 程式人生 > >請問如何將偏移量轉換為地址?

請問如何將偏移量轉換為地址?

請問如何將偏移量轉換為地址?

  我在使用軟體定位木馬特徵碼的時候,只得到偏移量,為什麼有的人用OD轉到偏移量,但我用OD的時候,顯示沒有這個偏移量的,請問如何將偏移量轉換為地址? 

 

在DFCG回答過,再轉過來吧。

+---------+---------+---------+---------+---------+---------+
|  段名稱   虛擬地址  虛擬大小  實體地址  物理大小   標誌   |


+---------+---------+---------+---------+---------+---------+
|  Name     VOffset    VSize    ROffset    RSize      Flags |
+---------+---------+---------+---------+---------+---------+
|  .text   00001000   00000092  00000400  00000200  60000020|

|  .rdata  00002000   000000F6  00000600  00000200  40000040|
|  .data   00003000   0000018E  00000800  00000200  C0000040|
|  .rsrc   00004000   000003A0  00000A00  00000400  C0000040|
+---------+---------+---------+---------+---------+---------+

檔案虛擬偏移地址和檔案物理偏移地址的計算公式如下:

>>>>>>>VaToFileOffset(虛擬地址轉檔案偏移地址)
如VA = 00401000 (虛擬地址)
ImageBase = 00400000 (基地址)
VRk = VOffset - ROffset = 00001000 - 00000400 = C00 (得出檔案虛擬地址和檔案物理址之間的VRk值)
FileOffset = VA - ImageBase - VRk = 00401000 - 00400000 - C00 = 400(檔案實體地址的偏移地址)

如VA = 00401325,則:
FileOffset = VA - ImageBase - VRk = 00401325 - 00400000 - C00 = 725

>>>>>>FileOffsetToVa(檔案偏移地址轉虛擬地址)
如FileOffset = 435(檔案偏移地址)
VA = FileOffset + ImageBase + VRk = 435 + 00400000 + C00 = 00401035(虛擬地址)

 

小蝦講的不錯,再給樓主一張圖理解一下:

 

 

用工具PETools或LordPE轉換。。。

 

這裡不分新手區、高手區,只按討論內容分類。
區段的間隙,你用LordPE開啟一個PE,再配合十六進位制工具,就會明白了。間隙那段空間全是0.

 

用LordPE檢視區塊後面部分.
因為區塊都是對齊的,磁碟上對齊值一般是0x200或0x1000,如果某個區塊中的有效資料大小是0x160,而為了對齊,區塊的大小是x200,則0x160到0x200之間就是間隙.
說的很抽象的,你用例項操作一下,再結合上面的圖自己分析一下就會很清楚的。