我一直在尝试通过反转comctl32.dll系统库来学习Ghidra,该系统库记录了许多功能。我在其中开始了反编译分析,过了一会儿它显示了以下错误消息:



然后我碰巧看到,如果我去File-> Download PDB file,然后选择驱动器上的某个文件夹并提供Microsoft符号路径https://msdl.microsoft.com/download/symbols并单击"Download from URL",它似乎已下载。

然后询问是否要将其应用到项目中,如果我单击Yes,则显示此警告:



所以我显然做错了。

所以我很好奇:

A)是否可以提供符号服务器路径并自动下载所需的符号文件吗?

B)如果没有,为特定二进制文件加载符号的顺序是什么?似乎它想在前面加上符号,但是我怎么知道它可能需要哪些文件/导入(除了我正在打开的明显的二进制文件之外)?

#1 楼

是的,它并不像IDA Pro那样完全自动化。
尽管NSA开发团队在该项目上非常活跃。而且任何美国公民都应该能够(通过Java)添加这样的功能并发出添加请求。

我发现您要做的只是将模块添加到Ghidra项目中。 />当您单击模块/可执行文件时,它将询问“ ...您现在要分析吗?”。
单击“否”,加载PDB,然后通过“分析”手动开始分析“菜单选项。

评论


“任何美国公民”?

–c00000fd
19-10-25在8:43

>>“任何美国公民”?据了解,他们的知识产权阻碍了一些国家,我可能是错的。别客气。

–Sirmabus
19-10-26在23:53

IP块?我认为它可以在您的计算机上本地运行,您可以从GitHub下载它。你什么意思?

–c00000fd
19-10-27在3:17

@ c00000fd:这是法律要求,不是技术要求

–伊戈尔·斯科钦斯基♦
19年11月22日在9:22

#2 楼

可能的方法之一-将rade2或Cutter与r2ghidra插件一起使用。它将加载PDB并使用Ghidra反编译器进行实际的反编译。