Windows PE 结构 之 NT头结构解析
0x0 基础知识 PE文件头的结构有两种,分别对应32位的程序和64位的程序,它们的差异在于扩展PE头的结构 PE文件头结构说明_IMAGE_NT_HEADERS32位程序对应的PE文件头结构_IMAGE_NT_HEADERS6464位程...
Windows PE 结构 之 数据目录表结构解析
0x0 基础知识 在PE可选头(OptionalHeader)结构中的DataDirectory是OptionalHeader的最后128个字节,也是IMAGE_NT_HEADERS的最后一部分数据。 它由16个IMAGE_DATA_DIRECTORY结构组成的数组构成,...
C++ 可执行堆 实现 ShellCode Loader
0x0 基础知识 我们用 msfvenom 生成一个测试用的我 ShellCode,内容为弹出一个计算器, 生成格式为 C msfvenom -p windows/exec cmd=calc.exe -f c Payload size: 193 bytes Final size of c fi...
Windows PE 结构 之 节表结构解析及遍历
0x0 基础知识 00 区段名及其含义 区段名含义.text默认的代码区块, 它的内容全是指令代码,链接器把所有目标文件的text块连接成一个大的.text块,使用Borland C++编译器产生的代码存放在CODE的区...
Windows PE 结构 之 RVA&FOA地址转换与对齐
0x0 基础知识 00 RVA & FOA 转换; 当一个 PE 文件被加载到内存中以后,我们称之为 ' 映象 '(image)。一般来说,PE文件在硬盘上和在内存里是不完全一样的,被加载到内存以后其占用的虚拟地...
Windows PE 结构 之 导出表结构解析
0x0 基础知识 当PE文件被执行的时候,Windows加载器将文件装入内存并将导入表登记的动态链接库(一般是DLL格式)文件一并装入地址空间,再根据DLL文件中的函数导出信息对被执行文件的IAT进行修...