我正在学习radare2。有没有一种方法可以在拆装过程中对c ++函数进行分解处理?例如在gdb

set print asm-demangle


更改

callq 0x400a30 <_ZNSo3putEc@plt>




callq 0x400a30 <_std::ostream::put(char)@plt>


编辑:
我有radare2 0.9.6,它带有Ubuntu的突触包管理器。我从https://github.com/radare/radare2重新安装了它。现在,在输入asm.demangle之后,我看到Ve变量,它被设置为true,但是名称仍然被修饰。

#1 楼

检查e asm.demangle,并根据需要将其设置为true或false。

radar2版本是否使用的是最新版本?

您应该能够查看所有配置数据使用e

键入e??应该会向您显示配置变量的完整列表及其说明。您可以通过输出对所有具有模式脱模的var进行grep操作,

[0x00001d52]> e??~demangle
        asm.demangle: Show demangled symbols in disasm
        bin.demangle: Import demangled symbols from RBin
            bin.lang: Language for bin.demangle
[0x00001d52]>


在启动时需要告知Radare2加载脱模信息,因此可以进行设置bin.demangletrue,然后重新打开文件:

 e bin.demangle = true
 oo 


最后但并非最不重要的是,您可以使用大小写错误的形式,以大小写的形式提供符号名称。命令iD

[0x7c810705]> iD cxx _ZNSo3putEc
std::ostream::put
[0x7c810705]>


顺便说一句,提示而不是在这里问一个问题并永远等待:
radare2是自我记录的,因此您可以从以下开始键入?以获取帮助,然后将?附加到每个命令,例如a?pd?等...

评论


对不起,但是如何?如果输入e asm.demangle = true,则会得到:未找到变量'asm.demangle'

–robert
15年12月18日在14:33