C++名称手工修改

Sed*_*ien 10 c++ python name-mangling ida

我正在使用插件在Python中为IDA Pro反汇编程序编写脚本idapython.使用此功能,我可以填补IDA自动分析不足的空白.

令我难以理解的一个领域是命名位置/功能(为了更好的术语)"漂亮的名字".我的意思的一个例子如下图所示:

IDA漂亮的名字样本截图

idapython和IDA Pro本身只允许我输入基本的C-ish函数名称.如果我输入不允许的符号(例如范围解析运算符),则将它们替换为下划线.但是,如果我手工输入一个受损的名字(例如__ZN9IOService15powerChangeDoneEm),IDA Pro 为我美化这个.

因此我的问题是:如何生成错位名称idapython?有可用的名称库吗?有一个在Python中可用吗?我唯一的希望是将破坏功能从中解决g++并解决这个问题吗?

Mat*_* M. 6

我终于开始挖了一点.

不幸的是我找不到工具,但我确实找到了资源.

如果你想要的只是gcc3方式的mangle名称,那么就知道gcc3使用Itanium C++ ABI,它具有标准化的名称修改方案.我发现了两个文件:

作为参考,两者都来自名称管理的维基百科页面.