Skip to content

4.38 IDA反汇编some时加载来自some.debug的符号信息

https://scz.617.cn/unix/202105121709.txt

Q:

用IDA反汇编来自RedHat的some。gdb调试some时能看到从some.debug中成功读取符号 信息。现在想在IDA中加载some.debug中的符号信息,怎么搞?

A: 2021-05-12

"file -b some.debug"说这是ELF,但它只含有调试符号,类似windbg所用PDB文件。

可以用eu-unstrip将some、some.debug揉到一起,生成some.full。

aptitude install elfutils eu-unstrip -o some.full some some.debug

用IDA反汇编some.full即可。

第二种办法,先用IDA反汇编some.debug,导出some.idc:

File->Produce file->Dump database to IDC file

编辑some.idc,修改main(),只保留Bytes()、Functions()相关的函数。

再用IDA反汇编some,导入some.idc:

File->Script file (Alt-F7)

条件、时机允许的情况下,推荐第一种办法。

D: 2021-05-12

有人提到两处加载符号文件的位置

File->Load file->DBG file Edit->Plugins->Load DWARF file

另有人表示可用上述操作加载Ubuntu的调试符号。但我这里x64/RetHat的调试符号无 法加载成功,事实上这两处操作最终都去调第二处的插件,插件报错:

DWARF: Fatal error; the DWARF plugin will stop now (Missing .gnu_debugaltlink-provided context)

应该是插件BUG,或者不支持RedHat的some.debug格式。