能力值:
( LV12,RANK:404 )
|
-
-
2 楼
文件偏移 = 该段的PointerToRawData + (内存偏移 - 该段起始的RVA(VirtualAddress)
|
能力值:
( LV2,RANK:10 )
|
-
-
3 楼
堂前燕
文件偏移 = 该段的PointerToRawData + (内存偏移 - 该段起始的RVA(VirtualAddress)
谢谢回复 公式我是知道的 我知道的是 这个公式 对应图中的数字分别是哪些?就是因为书中直接给出了计算计算结果 而没有给出计算过程 所以不知道怎么计算了
最后于 2019-6-5 08:36
被goodluckone编辑
,原因:
|
能力值:
( LV2,RANK:10 )
|
-
-
4 楼
堂前燕
文件偏移 = 该段的PointerToRawData + (内存偏移 - 该段起始的RVA(VirtualAddress)
该段的PointerToRawData【 这个怎么得到?
】
+ (内存偏移【 这个怎么得到的?】 - 该段起始的RVA(VirtualAddress)
|
能力值:
( LV2,RANK:10 )
|
-
-
5 楼
为了解决这个问题,苦苦思索,查阅了很多资料,今天看到这里,豁然开朗!
|
能力值:
( LV2,RANK:10 )
|
-
-
6 楼
(1)RVA = 5000时,求file offset 首先RVA为虚拟地址,应该看右侧的内存图,这里写RVA = 5000是段内地址,对应内存中的地址为01005000,第一节区.text对应内存中的地址为01001000,RAW - 400 = 01005000(RVA) - 01001000,RAW = 00004400 (2)RVA = 13314,求file offset(RAW) RVA = 13314即对应的内存地址为01013314,位于第三个节区 RAW - 8400 = RVA(00013314) - VA(0001B0000), RAW = 00010714 (3)RVA = ABA8,求file offset(RAW) RVA = ABA8即对应的内存地址为0100ABA8,位于第二个节区 RAW - 00007C00 = 0001ABA8(RVA) - 00019000(VA) RAW = 000097A8 内存节区的所在地址 - 内存节区所在节区的首地址 = 文件节区的所在地址 - 文件节区所在节区的首地址
|
能力值:
( LV2,RANK:10 )
|
-
-
7 楼
mb_eiksswhr
(1)RVA = 5000时,求file offset首先RVA为虚拟地址,应该看右侧的内存图,这里写RVA = 5000是段内地址,对应内存中的地址为01005000,第一节区. ...
这个写的是最详细的
|
|
|