我正在阅读有关PE的教程,它说GotothesectiontableeitherbyaddingImageBasetoSizeOfHeaders但是SizeOfHeaders是Thesizeofallheaders+sectiontable因此,如果我们将SizeOfHeaders添加到ImageBase,我们是否会跳转到部分而不是表格? 最佳答案 SizeOfHeaders不用于找出节表的位置,即使它们可能在某些文件中匹配(但我不希望如此)。这是在Windowsheader(以及系统加载程序)中完成的方式:#defineIMAGE
在this文章,定义是DWORD虚拟地址InEXEs,thisfieldholdstheRVAtowheretheloadershouldmapthesection.Tocalculatetherealstartingaddressofagivensectioninmemory,addthebaseaddressoftheimagetothesection'sVirtualAddressstoredinthisfield.DWORDPointerToRawDataThisisthefile-basedoffsetofwheretherawdataemittedbythecompiler
Thisquestion询问如何检索包含当前执行代码的DLL的句柄。Alink在其中一个answers建议取__ImageBase的地址作为模块句柄。这对我有用。我的问题是:鉴于检索当前模块的句柄如此简单,为什么像MFC这样的框架(甚至我继承的代码库)通常存储传递给DllMain()的实例句柄?在一些全局变量中?有没有理由不依赖__ImageBase?编辑:根据RaymondChen,__ImageBase仅适用于Microsoft链接器。有anotherquestion有更精确的答案,包括使用GetModuleHandleEx()的独立于链接器的方式.对于Win2000和更早版本,还