随笔分类 - PE文件结构
摘要:重定位表 什么是重定位表 当一个PE文件执行时会加载多个PE文件,而每个被加载的PE文件都有它在内存展开后的起始地址, 这个地址是由此PE文件的imagebase(基址)所决定的 若前面的PE文件占用了后面PE文件的地址, 则后面的PE文件需要重新设置基址, 然后通过重定位表对所有的重定位信息进行修
阅读全文
摘要:导出表与导入表 通常来讲exe文件只有导入表而没有导出表,而dll文件既有导入表也有导出表 导出表 什么是导出表 代码重用机制提供了重用代码的动态链接库, 它会向调用者说明库里的哪些函数是可以被别人使用的, 而这些说明的信息便组成了导出表 简单来说,PE文件提供一些函数给其他PE文件调用,这些函数都
阅读全文
摘要:节的操作 若要对PE文件填充自己的代码,然后发现字节空间不足,这时候就需要对节表进行操作 此处主要讲节的三种操作,分别为扩大节、新增节、合并节 扩大节 简介 对文件的节表进行扩大,为了方便操作,只需对最后一个节进行扩大OK了 此处演示扩大1000(16进制)个字节的操作 所需工具 Winhex CF
阅读全文
摘要:RVA转FOA 简介 PE文件有两种状态, 一种是在文件中的状态,另外一种是在内存中展开 若我们运行了一个PE文件且知道了某个全局变量的地址, 那么该如何通过这个全局变量地址来获得此变量在文件状态下的地址是什么呢? RVA(relative Virtual Address), 又称为相对虚拟偏移,简
阅读全文
摘要:PE结构的组成 PE结构概述图 由下图可得,PE文件主要分为四部分,分别有DOS部分、PE文件头、节表以及节数据 DOS部分 DOS MZ文件头 DOS文件头结构体代码一共有64字节,最后一个成员指向pe头 在以下结构体代码中的成员只需记住两个,最开始的和最末尾的成员 e_magic和e_lfane
阅读全文
摘要:认识PE文件 可执行文件 可执行文件在不同的操作系统平台有不同的结构 Windows平台:PE(Portable Executable) Linux平台:ELF(Executable and Linking Format) 常见的PE文件后缀名有EXE, DLL,SYS等 PE指纹 识别文件是否为P
阅读全文