用手手工绘制C++名称

2024-09-27 02:18:11 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在使用^{}插件为Python中的IDA Pro反汇编程序编写一个脚本。使用这个工具,我可以填补IDA的自动分析不足之处。在

一个让我困惑的地方是用“漂亮的名字”来命名位置/功能(为了更好地称呼)。下面举例说明我的意思:

IDA pretty names sample screenshot

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

因此我的问题是:如何生成经过idapython的损坏名称?有没有一个名字叫曼格林图书馆?在Python中有吗?我唯一的希望是从g++中删除损坏的功能并解决它吗?在


Tags: 工具函数功能脚本插件地方符号运算符
3条回答

一个简单的(AleBoo-HaKy)方法是编译一个C++文件,其中包含你想要的符号,然后从.O文件的符号表中提取必要的符号。稍加努力,这可能是一个很好的脚本。在

下面是一个article,它解释了可视化编译器是如何完成损坏的。对于gcc所做的修改,我想您可以在binutils包的源代码中找到信息。在

我终于抽出时间挖了一点。在

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

如果你想要的是GC3时尚中的名字,那么就知道GC3使用了ItAudiaC++ + ABI,它有一个标准化的名字命名方案。我找到了两份文件:

作为参考,这两个都来自Name Mangling上的维基百科页面。在

相关问题 更多 >

    热门问题