随便看一段IDA的反汇编: 

è¿éåå¾çæè¿°

C++编译器用于区分重载函数的机制。为了给重载函数生成唯一的名称,编译器用其他字符来修饰函数名称

图左就是C++的后缀命名法,图右是正常的函数名字

为了显示正常的函数名字,使用Options▶Demangled Names (选项 -> 解码名称)

è¿éåå¾çæè¿°

比如,我们选中Names,反汇编将显示为: 

è¿éåå¾çæè¿°

如果一个二进制文件使用了后缀命名,IDA的取消改编功能会立即展示函数的参数类型和返回类型。相反,如果函数并未使用后缀命名,你必须花费大量时间分析,从而确定函数的签名。 
当然,一般的C++都是后缀命名,所以在切换成Names后,我们能立即看到operator new(int)这样的完整定义

Logo

魔乐社区(Modelers.cn) 是一个中立、公益的人工智能社区,提供人工智能工具、模型、数据的托管、展示与应用协同服务,为人工智能开发及爱好者搭建开放的学习交流平台。社区通过理事会方式运作,由全产业链共同建设、共同运营、共同享有,推动国产AI生态繁荣发展。

更多推荐