在这些日子里,我正在阅读一些PE可执行文件规范。然后我做了小C程序做push ebp, pop ebp
,我编译它。编译成功后,我打开可执行文件中的PE文件,并查看位置PE_magic + PE_header_size + PE_OPTHDR_entrypoint
,其中PE魔术在文件中首次出现“PE”字符串,PE_header_size为24,PE_OPTHDR为16,根据PE & COFF规范。在那个位置我找到地址0x1000,但我的文件长度只有0x600。那么我在正确的位置,或入口点(这是在0x200)的地址设置不正确?是正确的地方的入口点?
我包括我的文件的图像和我的代码。
代码(在项目属性我已经选中除了标准库):
int main() {
int a = 0;
__asm {
push ebp
pop ebp
}
}
让我看看你的代码来读取PE,至少可以得到头文件信息 – 2013-03-09 13:40:11