我需要使用调试符号反汇编 debian 二进制文件,为此我使用 IDA Pro。问题是:如果调试符号存储在单独的文件中(对于 debian 软件包),IDA 似乎无法识别它们。然而,当编译二进制文件并在其中保留调试符号时,IDA 可以毫无问题地注释所有函数和变量。
所以我的问题是:有没有办法将调试符号添加回剥离的二进制文件中?目标是创建带有调试符号的单个二进制文件。例如,可以使用 gdb 来 1) 调试剥离的二进制文件; 2)加载调试符号; 3) 生成包含这些符号的二进制文件。
我发现的一种方法here建议将调试部分复制回二进制文件中。不幸的是,这仅部分起作用,并且一些符号仍然丢失。我已经使用 gdb 验证了这一点。
最佳答案
对于 gdb 使用设置调试文件目录
对于 IDA Pro:
- 在 IDA Pro 中打开调试符号文件
- 将数据库/类型信息导出为 IDC 脚本
- 编辑 IDC 脚本
- 手动合并数据库/typeinfo IDC 脚本
- 注释掉DeleteAll()
- 在 IDA Pro 中打开剥离的 ELF 文件
- 分析完成后,执行IDC脚本
关于debugging - 如何将调试符号添加到剥离的 ELF 二进制文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34293646/