首页
社区
课程
招聘
[旧帖] [求助]请问:IMAGE_OPTIONAL_HEADER32中的AddressOfEntryPoint, BaseOfCode, ImageBase有什么关系与区别啊? 0.00雪花
发表于: 2009-4-14 15:48 6903

[旧帖] [求助]请问:IMAGE_OPTIONAL_HEADER32中的AddressOfEntryPoint, BaseOfCode, ImageBase有什么关系与区别啊? 0.00雪花

2009-4-14 15:48
6903
书上说,
AddressOfEntryPoint: 程序开始执行的入口地址,是个RVA
BaseOfCode:代码段的起始RVA
ImageBase:可执行文件默入装入的基地址.

我个人认为,AddressOfEntryPoint等于BaseOfCode, 因为程序就是从
代码段开始执行,

而ImageBase < AddressOfEntryPoint,因为 可执行文件的前面还有Dos头,NT头,块表,
之后才是代码段.

[培训]内核驱动高级班,冲击BAT一流互联网大厂工作,每周日13:00-18:00直播授课

收藏
免费 0
支持
分享
最新回复 (10)
雪    币: 2384
活跃值: (766)
能力值: (RANK:410 )
在线值:
发帖
回帖
粉丝
2
ImageBase是程序载入内存的初始地址,也就就整个PE文件的最前面入口地址,通过这个地址可以定位到PE的任何结构数据。
BaseOfCode是某个代码段数据的首地址。
AddressOfEntryPoint是程序执行的入口函数地址,他可以存在于BaseOfCode段或其他代码段中的任意位置。
所以,他们三个地址是不同的。
2009-4-14 16:03
0
雪    币: 133
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
3
难道AddressOfEntryPoint不等于BaseOfCode,
程序的执行开始点不是BaseOfCode吗?
2009-4-14 16:05
0
雪    币: 2384
活跃值: (766)
能力值: (RANK:410 )
在线值:
发帖
回帖
粉丝
4
是的1234
2009-4-14 16:06
0
雪    币: 133
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
5
啊,这是为什么啊,
代码段就应该是执行的起来啊,
因为
code segment:
    assume cs:code, ds:data
start:mov ax, ds.

..............

这里就刚好相等了啊
2009-4-14 16:11
0
雪    币: 2384
活跃值: (766)
能力值: (RANK:410 )
在线值:
发帖
回帖
粉丝
6
你那个是16位的程序,16位的程序是如何的我倒不太清楚了。
Win32的PE程序的AddressOfEntryPoint入口可以存在于BaseOfCode段或其他代码段的任意位置。也就是说AddressOfEntryPoint入口点可以在BaseOfCode段一样的入口,也可以在BaseOfCode段的中部、尾部出现,甚至是其他由程序员或病毒制造者将这个入口点设置在PE文件的任意位置。
2009-4-14 16:16
0
雪    币: 133
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
7
难道 只要
这个值写了什么,就从哪时执行吗,而不管它是在段的哪个部位?
2009-4-14 16:25
0
雪    币: 2384
活跃值: (766)
能力值: (RANK:410 )
在线值:
发帖
回帖
粉丝
8
是这样的。。
2009-4-14 16:36
0
雪    币: 8026
活跃值: (2511)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
9
忘记16位dos的程序吧,windows时代好多东西都变了
2009-4-14 20:30
0
雪    币: 270
活跃值: (25)
能力值: ( LV3,RANK:20 )
在线值:
发帖
回帖
粉丝
10
水贴,鉴定完毕。
2009-4-14 23:10
0
雪    币: 55
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
11
怎么修改AddressOfEntryPoint,程序还能运行?????
2010-4-9 14:54
0
游客
登录 | 注册 方可回帖
返回
//