作为编写编译器的先驱,我正在尝试理解Windows(32位)可移植可执行格式.特别是我想看一个简单的可执行文件的例子,除了正确加载,运行和退出之外什么都不做.
我已经尝试编写和编译一个简单的C main函数,除了生成的.exe是〜22KB并且包含许多来自KERNEL32.DLL的导入(可能由LIBC用于设置环境,堆等).甚至DOS标题也可能更小(它当前打印默认的'此程序无法在DOS模式下运行').
最小的Windows 32位可执行文件的结构是什么?
windows winapi executable portability portable-executable
executable ×1
portability ×1
portable-executable ×1
winapi ×1
windows ×1