
PE文件
文章平均质量分 66
很酷很爱笑
这个作者很懒,什么都没留下…
展开
-
PE文件 - 导入表
导入表在数据目录的第2项,下标为1的位置,记录了可执行文件导入了哪些动态库和函数,INT(导入函数名称表)和IAT(导入函数地址表),由于一个可执行文件可能要多个PE文件支持,所以此结构可能有多个,导入表就是一个结构体数组,以一个全零元素为结尾,每一个数组的元素,代表一个PE文件的导入信息导入表格式typedef struct _IMAGE_IMPORT_DESCRIPTOR { union { DWORD Characteristics;原创 2021-11-11 13:59:45 · 1400 阅读 · 0 评论 -
PE文件-导出表
导出表导出表一般用于DLL文件,DLL导出了什么函数都记录在导出表上,在数据目录的第1项,下标为0导出表结构typedef struct _IMAGE_EXPORT_DIRECTORY { DWORD Characteristics; //保留值 恒定为0 DWORD TimeDateStamp; //和文件头中的地址一样 WORD MajorVersion; //主版本...原创 2021-11-08 20:33:52 · 1508 阅读 · 0 评论 -
PE文件-扩展头
扩展头解析typedef struct _IMAGE_OPTIONAL_HEADER { // // Standard fields. WORD Magic; //选项头类型,一般为10BH BYTE MajorLinkerVersion; //链接程序的主版本号 可修改 BYTE MinorLinkerVersion; //链接程序的次版本号 可修改 DWORD SizeOfCode; //代码段大小 可以吃内存原创 2021-11-06 11:38:48 · 216 阅读 · 0 评论 -
PE文件-VA-FOA的转换
虚拟地址,相对虚拟地址,基地址基地址(base):文件被加载到内存中的位置虚拟地址(VA):4GB虚拟空间中任意一个位置相对虚拟地址(RVA):相对于加载基地址的偏移公式:虚拟地址(VA) = 加载基址(IimageBase)+相对虚拟地址(RVA)PE文件会有一个默认的加载地址 可选头的第10个成员ImageBase,当这个位置被其他文件占用,操作系统将会把文件装载到其他位置FOA文件偏移就是文件没有加载到内存前 相对于0位置的偏移,也就是文件的任何一个地址转换.原创 2021-11-06 11:00:10 · 358 阅读 · 0 评论 -
PE文件-文件头
文件头格式文件头是NT头的第二个成员-格式为typedef struct _IMAGE_FILE_HEADER { WORD Machine; //1.文件运行平台 WORD NumberOfSections; //2.节表的数量 DWORD TimeDateStamp; //3.文件创建时间 DWORD PointerToSymbolTable; //4.符号表偏移 DWORD NumberOfSymbols; //5.原创 2021-11-06 09:44:10 · 185 阅读 · 0 评论 -
PE文件-NT头
DOS头和NT头之间存储着一些被DOS头使用的数据,包括一些提示字符串等等...但是这块数据的长度不确定,所以DOS头的最后一个成员指向了新PE的位置NT头格式typedef struct _IMAGE_NT_HEADERS { DWORD Signature; //标记 判断是否是PE文件的第二个标志 值为0x4550 PE00 IMAGE_FILE_HEADER FileHeader; // 文件头 IMAGE_OPTIONAL_HEADER32.原创 2021-11-06 09:19:36 · 374 阅读 · 0 评论 -
PE文件-DOS头
概述PE文件是指某一种格式的文件,可执行文件(.exe),动态链接ku(.dll),驱动文件(.sys)等等....PE文件整体的格式图:DOS头IMAGE_DOS_HEADER头格式 为了兼容DOS程序而设立 中间字段对现在来说没有作用typedef struct _IMAGE_DOS_HEADER { WORD e_magic; //PE的标志 解析是作为是否为PE文件的第一个标志 值为0X5A4D "MZ" .原创 2021-11-06 08:58:11 · 476 阅读 · 0 评论