理解PE格式—找出导出表(Export Table)中的函数地址(理论篇)

PE的结构,参考文档https://docs.microsoft.com/en-us/windows/win32/debug/pe-format的目录: 根据这个结构来找kernel32.dll中的函数名和函数名的RVA。 PE signature 文件 0x3c 的地方指定了PE signature的位置(也就是NT_Header,加密解密里说NT_Header,微软的文档里没有这么一说) E8 E8的前四个字节是 PE00,在这之后是 COFF file header COFF file header 紧接着PE signature的2个Byte(Machine) 判断PE文件时运行在什么平台: COFF file header + 2 处的2个byte指定了这个PE文件有多少个Section : 06 用010Editor查看也是6个Section COFF file header + 16 处的两byte指定了OptionalHeader的大小 : F0 COFF file header + 20 处是 OptionalHeader 的开始位置:100h. 大小F0. 也就是100h – 1F0h之间全是 OptionalHeader OptionalHeader OptionalHeader 的前两个字节判断了这是个PE文件还是个PE+文件 本次是20b ,是在64位平台的pe+格式。 … Continue reading 理解PE格式—找出导出表(Export Table)中的函数地址(理论篇)