Ron*_*dau 1 windows assembly x86-64 portable-executable fasm
将“修正程序”应用于某个部分时究竟能做什么?在一个fasm示例中,我找到了以下部分,我真的不确定fixups属性的作用,我在fasm文档中找不到有关此信息的太多信息。
section '.reloc' fixups data readable discardable
if $=$$
dd 0,8 ; if there are no fixups, generate dummy entry
end if
Run Code Online (Sandbox Code Playgroud)
对于FASM如何生成PECOFF DLL的错误,这似乎是一种解决方法。本.reloc节仅适用于PECOFF映像(EXE和DLL),并提供允许将映像加载到任何地址的重定位(或“修补程序”)。(在PECOFF目标文件中使用了不同种类的重定位;这些修正未在本.reloc节中放置。)
FASM中的错误是,.reloc如果DLL不需要任何重定位而不是根本不生成任何重定位,它将生成一个空节。如果有空白部分,Windows将拒绝加载DLL(或EXE)。解决方法.reloc通过在.reloc部分不包含任何内容的情况下添加虚拟“基本重定位块”来强制执行非空部分。
显然,FASM的开发人员认为这不是FASM中的错误,而是Windows中的错误,因此尚未修复。
为了直接回答您的问题,该fixups关键字似乎表明该部分是FASM专用的,如上所述,它用于图像重定位。与其他属性不同,它不对应于PECOFF图像中使用的分区标志之一,因此它似乎仅由FASM内部使用。
| 归档时间: |
|
| 查看次数: |
236 次 |
| 最近记录: |