java中的接口是类吗
245
2022-10-21
逆向调试入门-PE文件节表与区块03/07
节表:
PE⽂件中所有节的属性都被定义在节表中,节表由⼀系列的IMAGE_SECTION_HEADER结构排列⽽成,每个结构⽤来描述⼀个节,结构的排列顺序和它们描述的节在⽂件中的排列顺序是⼀致的。
全部有效结构的最后以⼀个空的IMAGE_SECTION_HEADER结构作为结束,所 以节表中总的IMAGE_SECTION_HEADER结构数量等于节的数量加⼀。节表总是被存放在紧接在PE⽂件头的地⽅。
另外,节表中 IMAGE_SECTION_HEADER 结构的总数总是由PE⽂件头 IMAGE_NT_HEADERS 结构中的 FileHeader.NumberOfSections 字段来指定的。
区块:
PE 文件一般至少都会有两个区块:一个是代码块,另一个是数据块。
每一个区块都需要有一个截然不同的名字,这个名字主要是用来表达区块的用途。
在PE文件中,一个典型的对齐值是200h ,这样,每个区块都将从200h 的倍数的文件偏移位置开始。
OD中的区块对齐方式
在OD中,PE头部的NumberOfSection的值为8
代表这个程序区块的数量
我们通过这个FileAlignment和SectionAlignment字段,可以得知
文件对齐方式为200H,区块的对齐方式为1000H
在往下就是导出表和导入表。
导出表:
导出表的主要作用是将PE中存在的函数引出到外部,以便其他人可以使用这些函数,实现代码的重用。
导入表:
目的:为实现代码重用而设置的。
一个PE文件调用了多少外来函数,以及这些外来函数都存在于那些动态链接库DLL里等信息。
在OD中,可以发现,在PE节表之后,紧接着就是区块了
一个一个区块紧挨着。
通过字段
Virtual Address:该区块装载到内存中的RVA 地址。这个地址是按照内存页来对齐的,因此它的数值总是 SectionAlignment 的值的整数倍。在Microsoft 工具中,第一个区块的默认 RVA 总为1000h。
版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。
发表评论
暂时没有评论,来抢沙发吧~