如果从“PE 文件”中删除“数据目录”会发生什么?我认为 loader 会出错,但我不确定。请试着纠正我。
PE文件-数据目录
逆向工程
聚乙烯
2021-07-02 22:24:21
2个回答
您不能完全“删除”此目录,但是您可以将该NumberOfRvaAndSizes字段设置为 0,然后系统加载程序将不会使用其中的条目。从TinyPE 页面:
PE 规范说数据目录的数量在 NumberOfRvaAndSizes 头字段中指定,并且 PE 可选头的大小是可变的。如果我们将 NumberOfRvaAndSizes 设置为 0 并减小 SizeOfOptionalHeader,我们可以从文件中删除数据目录。
但是,生成的文件在 Windows 2000 中不起作用“因为加载程序尝试从 KERNEL32 调用函数,但未加载 KERNEL32.DLL ”。所以通常你应该至少添加一个导入表目录,它NumberOfRvaAndSizes至少需要 2。(如果你想让你的文件做任何有用的事情,你还需要一个导入目录,比如来自其他 DLL 的调用函数 :)
自从早期的 8.3 格式的 MSDOS 文件名以来,我就没有这样做过。如果您使用十六进制编辑器编辑 dard 磁盘目录区域并更改表示文件是扩展目录的标志字节,那么您可以像打开文件一样打开该文件。不过,我不知道后来的 DOS 女士会发生什么。如果需要,可以很容易地使用 WinHex 进行测试。
其它你可能感兴趣的问题