注册 登录
编程论坛 汇编论坛

请问pe文件的节(sections)到底是如何归类的?

ljlover123 发布于 2010-07-25 12:19, 637 次点击
我们知道pe的节都是一些属性相同的数据归为一节,但有什么办法知道一个节的属性有哪些,比如此节载入到只可读的内存区域,等等......,

 还有个问题就是,节的生成只是编译器视数据属性归类生成,其 个数 程序员无法控制,是不是这样?
5 回复
#2
东海一鱼2010-07-25 16:29
1、pe头的节表中有节属性指示,pe加载器就是根据它来确定节属性。
2、当然可以自主控制:
   在链接时指定:
   /SECTION:name,[E][R][W][S][D][K][L][P][X]
   最常用的就是 E执行
                R读取
                W写
                S共享


#3
zklhp2010-07-25 18:52
有相关的软件查看 可以去看雪下载~
#4
ljlover1232010-07-25 19:47
我用工具查看 有如下这些属性:
 Execute, Read  , Write , Shared , Discardable ,  Cacheable ,  Pageable , code , initializde_data 和 uninitializde_data 这些,前面几个在msdn中都有解释,就是后面三个 code , initializde_data 和 uninitializde_data 不是很清楚,请问三个到底标识那些数据,具体点讲 初始化的数据 对应我们写程序的哪那些数据,好比 初始化了的全局变量(我猜的)。
 
 
#5
东海一鱼2010-07-25 20:35
code , initializde_data 和 uninitializde_data

分别对应代码.code,已初始化段.data,未初始化段.data?。
.code 不用说了
.data 就是全局初始化变量。
.data? 就是未初始化变量,在文件中不占空间,程序加载时分配内存空间。



#6
ljlover1232010-07-25 21:56
哦,似懂非懂的知道了,多谢了!
1