![](https://img-blog.csdnimg.cn/20201014180756754.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
COFF PE/ELF
Apollon_krj
岁月悠悠,衰微只及皮肤;热忱抛却,颓唐必至灵魂。
展开
-
PE文件学习笔记(五):导入表、IAT、绑定导入表解析
1、导入表(Import Descriptor)结构解析:导入表是记录PE文件中用到的动态连接库的集合,一个dll库在导入表中占用一个元素信息的位置,这个元素描述了该导入dll的具体信息。如dll的最新修改时间、dll中函数的名字/序号、dll加载后的函数地址等。而一个元素即一个结构体,一个导入表即该结构体的数组,其结构体如下所示:typedef struct _IMAGE_IMPORT_DESCR原创 2017-08-19 23:02:13 · 12951 阅读 · 3 评论 -
PE文件学习笔记(四):重定位表(Relocation Table)解析
1、重定位表的作用重定位表(Relocation Table)用于在程序加载到内存中时,进行内存地址的修正。为什么要进行内存地址的修正?我们举个例子来说:test.exe可执行程序需要三个动态链接库dll(a.dll,b.dll,c.dll),假设test.exe的ImageBase为400000H,而a.dll、b.dll、c.dll的基址ImageBase均为1000000H。 那么操作系统的原创 2017-08-18 17:19:02 · 17537 阅读 · 3 评论 -
PE文件学习笔记(三):导出表(Export Table)解析
数据目录表(Data Directory):16个_IMAGE_DATA_DIRECTORY结构体元素,该结构体数组时可选PE头中最后一个成员。这十六个元素分别存储了不同信息,分别是:导入表、导出表、资源、异常信息、安全证书、重定位表、调试信息、版权所有、全局指针、TLS、加载配置、绑定导入、IAT、延迟导入、COM信息、最后一个保留未使用。和程序运行时息息相关的表有:导出表、导入表、重定位表、IA原创 2017-08-17 19:21:59 · 6246 阅读 · 1 评论 -
PE文件学习笔记(二):Section Table解析
Section Table(节表)是记录PE文件中各个节的详细信息的集合,其每个成员是struct _IMAGE_SECTION_HEADER结构体,即节表是一个结构体数组来维护,属于线性结构。而节表的相对起始位置为:紧接着可选PE表。即:DOS头 + 中间空闲及垃圾数据 + NT头(三部分:4字节签名+标准PE头20字节+可选PE头)。 #define IMAGE_SIZEOF_SIGNAT原创 2017-08-11 16:57:15 · 3619 阅读 · 2 评论 -
PE文件学习笔记(六):总结与PE解析器(PETool)实现
1、PE文件各部分结构解析:1、PE文件学习笔记(一):DOS头与PE头解析 2、PE文件学习笔记(二):Section Table解析 3、 PE文件学习笔记(三):导出表(Export Table)解析 4、PE文件学习笔记(四):重定位表(Relocation Table)解析 5、PE文件学习笔记(五):导入表、IAT、绑定导入表解析 2、PETool简易实现(32位,非GU原创 2017-08-20 12:08:03 · 2247 阅读 · 0 评论 -
PE文件学习笔记(一):DOS头与PE头解析
在Windows下所谓PE文件即Portable Executable,意为可移植的可执行的文件。常见的.EXE、.DLL、.OCX、.SYS、.COM都是PE文件。PE文件有一个共同特点:前两个字节为4D 5A(MZ)。如果一个文件前两个字节不是4D 5A则其肯定不是可执行文件。比如用16进制文本编辑器打开一个“.xls”文件其前两个字节为:0XD0 0XCF;打开一个“.pdf”其前两个字节为原创 2017-08-10 21:01:32 · 17787 阅读 · 6 评论