首页
社区
课程
招聘
[求助][求助]请问pe结构中的AddressOfEntryPoint是相对于段首地址的偏移地址吗?
发表于: 2023-11-21 10:33 2983

[求助][求助]请问pe结构中的AddressOfEntryPoint是相对于段首地址的偏移地址吗?

2023-11-21 10:33
2983

在IMAGE_OPTIONAL_HEADER映像选择结构中,AddressOfEntryPoint表示RVA, 而RVA是相对虚拟地址,就是相对于基地址的偏移地址,那么这个基地址是内存分段中段的段首地址吗?


[注意]传递专业知识、拓宽行业人脉——看雪讲师团队等你加入!

收藏
免费 0
支持
分享
最新回复 (8)
雪    币: 101
活跃值: (302)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
2
是相对ImageBase地址
2023-11-21 13:03
1
雪    币: 1440
活跃值: (1401)
能力值: ( LV3,RANK:23 )
在线值:
发帖
回帖
粉丝
3
LoadLibrary 或者 GetModuleHandle 返回的地址 + AddressOfEntryPoint 
2023-11-21 16:34
1
雪    币: 250
能力值: ( LV1,RANK:0 )
在线值:
发帖
回帖
粉丝
4
leekong 是相对ImageBase地址
ImageBase是pe文件(映像)加载到内存中的地址,这个地址是映像相对于段首址的偏移地址。所以AddressOfEntryPoint不是相对于段首址的偏移地址,而是相对于pe文件(映像)加载地址的偏移地址是吧
2023-11-22 09:37
0
雪    币: 250
能力值: ( LV1,RANK:0 )
在线值:
发帖
回帖
粉丝
5
Black貓①呺 LoadLibrary 或者 GetModuleHandle 返回的地址 + AddressOfEntryPoint
LoadLibrary 或者 GetModuleHandle返回地址就是模块加载到内存中的地址,也就是相对于段首址的偏移地址是吧
2023-11-22 09:38
0
雪    币: 250
能力值: ( LV1,RANK:0 )
在线值:
发帖
回帖
粉丝
6
一只小蛤蟆 ImageBase是pe文件(映像)加载到内存中的地址,这个地址是映像相对于段首址的偏移地址。所以AddressOfEntryPoint不是相对于段首址的偏移地址,而是相对于pe文件(映像)加载地址的 ...


最后于 2023-11-22 10:13 被一只小蛤蟆编辑 ,原因:
2023-11-22 10:12
0
雪    币: 250
能力值: ( LV1,RANK:0 )
在线值:
发帖
回帖
粉丝
7
leekong 是相对ImageBase地址
那么按罗大侠的<<win32汇编程序设计>>中的段存储,计算程序运行的起始地址应该是:

如果是80386中,代码段中的选择符获取段描述符,所以程序起始地址为从段描述符中获得段首地址 * 16 + ImageBase + AddressOfEntryPoint。
如果是windows中,因为代码段默认为0,那么程序起始地址为ImageBase + AddressOfEntryPoint 是吧
2023-11-22 10:13
0
雪    币: 3393
活跃值: (4028)
能力值: ( LV3,RANK:20 )
在线值:
发帖
回帖
粉丝
8
RVA,相对于模块加载基地址的偏移
2023-11-23 19:09
1
雪    币: 101
活跃值: (302)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
9
一只小蛤蟆 LoadLibrary 或者 GetModuleHandle返回地址就是模块加载到内存中的地址,也就是相对于段首址的偏移地址是吧
我说错了,AddressOfEntryPoint 是VA地址,不是RVA,pe加载完ip寄存器就是指向这个字段的内容
2023-11-25 19:45
0
游客
登录 | 注册 方可回帖
返回
//