我大约在一个星期前下载了Ghidra(我是逆向工程的新手,我做了Ghidra官方网站上的教程视频所显示的,我为Visual Studio创建了一个简单的C ++程序,该程序有一个无穷的while([C0 ]),显示“ Hello World!”。到屏幕(while(1)
)。我使用Ghidra来分解该程序,就像教程中的人一样,但是我遇到了错误。
错误:
std::cout << "Hello World!";
[我看到了“ README_PDB.html”,我照着那里说的去做,但是仍然是错误,所有的错误都在那儿。
[一段时间后,我发现存储我的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.
的文件夹也有一个[我的exe名称] .pdb文件,并且当您选择分析器时,会有一个分析器“ PDB”,如果单击它,将使您插入路径,尝试将路径插入到该.pdb的父文件夹,但仍未更改。
所以:我该如何进行这项工作,请任何人,我很拼命
基于该错误,看来您正在Windows上运行ghidra,并且该错误在.exe
和README_PDB站点上提到。也许问题出在Visual Studio而不是ghidra。
从那里报价:
和:为了使本机PDB解析器在您的Microsoft上工作Windows机器,您必须:
- msdia140.dll在您的计算机上,和
注册Windows注册表中的- msdia140.dll
。
以下说明假定您具有64位操作系统。如果您已使用DIA的较新版本重建了pdb.exe,您将需要注册SDK的相应版本的64位DLL。 DIA SDK 14.0对应于Visual Studio 2017。
已知PDB格式会随着时间而改变,可能是与包含在其中的当前 pdb.exe解析器不兼容吉德拉Microsoft Visual Studio项目位于Ghidra / Features / PDB / src / pdb目录,该目录可用于用更新版本的Visual Studio和DIA SDK重建它。