1

我大约一周前下载了 Ghidra(我是逆向工程的新手),我做了 Ghidra 官方网站上的教程视频所显示的内容,我在 Visual Studio 中制作了一个简单的 C++ 程序,该程序有一个无穷大的 while( while(1)) 打印“你好世界!” 到屏幕(std::cout << "Hello World!";)。正如教程中的人所做的那样,我使用 Ghidra 来反汇编该程序,但我遇到了错误。

错误:

PDB> ERROR: Unable to locate the DIA SDK. It is required to load PDB files.
* See docs/README_PDB.html for DLL registration instructions.


PDB> ERROR: Unable to locate the DIA SDK. It is required to load PDB files.
* See docs/README_PDB.html for DLL registration instructions.


Windows x86 PE RTTI Analyzer> Couldn't find type info structure.

我看到了“README_PDB.html”,我按照它所说的去做了,但仍然有错误,所有的错误,都在那里。

一段时间后,我发现我.exe存储的文件夹还有一个 [name of my exe].pdb 文件,当你选择分析器时,有一个分析器“PDB”,如果你点击它,你会插入一个路径,试图插入该 .pdb 的父文件夹的路径,但仍然没有任何改变。

所以: 我怎样才能使这项工作,请任何人,我很绝望

4

2 回答 2

2

根据该错误,您似乎正在 Windows 上运行 ghidra,并且该错误在README_PDBload_pdb站点中被引用。也许问题出在 Visual Studio 而不是 ghidra 上。

从那里引用:

为了让本机 PDB 解析器在您的 Microsoft Windows 机器上工作,您必须:

  1. 确保您的计算机上有 msdia140.dll,并且
  2. 在 Windows 注册表中注册 msdia140.dll 。

和:

  • 以下说明假设您拥有 64 位操作系统。如果您使用较新版本的 DIA SDK 重建 pdb.exe,则需要注册相应版本的 64 位 DLL。DIA SDK 14.0 对应于 Visual Studio 2017。

  • 众所周知,PDB 格式会随时间而变化,并且可能与 Ghidra 中包含的当前pdb.exe解析器不兼容。Ghidra/Features/PDB/src/pdb目录中提供了一个 Microsoft Visual Studio 项目, 它允许您使用较新版本的 Visual Studio 和 DIA SDK 重新构建它。
  • 于 2020-05-12T23:42:00.707 回答
    0

    Microsoft Visual Studio 2019 msdia140.dll 不适用于 Ghidra 9.1.2 pdb.exe。为了构建与 Visual Studio 2019 msdia140.dll 一起使用的新 Ghidra pdb.exe,您应该使用 inverzeio 响应的最后一个项目符号中提到的 Visual Studio 项目。$(GHIDRA)\Ghidra\Features\PDB\src\pdb\README.txt 解释了如何做到这一点。

    msdia140.dll 也必须注册,如 $(GHIDRA)\docs\README_PDB.html 中所述。

    于 2020-06-07T21:24:45.987 回答