如何在 Ghidra 脚本中执行“文件 -> 添加到程序...”?

逆向工程 吉德拉 dll 动态链接 共享对象
2021-07-04 02:14:34

我正在反转具有大量共享库的旧视频游戏,并且为了正确引用它们(通过“thunk”函数?)我想我需要将所有原始文件导入到同一个程序树中。我已经尝试使用analyzeHeadless将所有共享库导入到项目中,但我没有看到使用该工具将它们放入现有程序的方法(而是为每个文件创建一个新程序)。如果我做错了什么,请告诉我。

1个回答

它们是通过特殊机制加载的原始文件还是典型.so.dll共享对象?鉴于dll标签,我假设您关心.dll文件。

首次导入程序时,您可以选择 Options “导入 $filename”对话框的图片

然后激活“加载外部库” 在此处输入图片说明

通过Edit Paths. 在此处输入图片说明

搜索路径以查找在您正在导入的实际程序中指定为导入的共享库。如果您已经导入了该程序,您仍然可以按照本问题中的描述使用 ELF 文件修复此问题,但由于某种原因,PE 文件没有预制脚本,即.dlls. 不过,可能仍然有一种方法可以手动执行此操作,这个想法只是导入相关的 DLL 文件,以便您可以将其链接到需要它作为外部库的程序。然后将正确链接相关功能。