IDARustDemangler — 让 IDA 识别 Rust 程序符号

IDARustDemangler — 让 IDA 识别 Rust 程序符号

一、说明

IDARustDemangler 可以对 Rust 函数名称进行识别,让 IDA 对其进行规范化,从而更容易阅读和理解代码。

二、环境

  • Python 3.x
  • IDA Pro 7.x or later

三、依赖

此脚本中使用的函数名称识别算法需依赖于 FTLRustDemangler,因此在使用之前请确保已经安装了 FTLRustDemangler。FTLRustDemangler 是一个命令行工具,用于对使用 Rust 约定破坏的符号名称进行识别,以被破坏过后的符号名称作为输入,输出识别后的名称。

FTLRustDemangler -> https://github.com/timetravelthree/FTLRustDemangler

四、安装

首先需要安装 FTLRustDemangler,将项目克隆到本地进行构建:

图片[1]-IDARustDemangler — 让 IDA 识别 Rust 程序符号-零度非安全
cargo build –release

为了让 IDARustDemangler 插件识别 rs-dml,将 rs-dml 程序添加到用户 PATH 环境变量中,然后将 IDARustDemangler 目录下的 plugin 目录里的文件复制粘贴到 IDA 中的 plugin 目录中即可。

五、测试用例

随便编写个简单的 Rust 程序,构建 release 版本,再将其加载到 IDA 中,同时让 IDA 加载相应的 .pdb 文件,在插件选项里选择执行

图片[2]-IDARustDemangler — 让 IDA 识别 Rust 程序符号-零度非安全
IDA Rust Demangler

IDARustDemangler 解码了 163 个符号

图片[3]-IDARustDemangler — 让 IDA 识别 Rust 程序符号-零度非安全
解码了 163 个符号

识别前

图片[4]-IDARustDemangler — 让 IDA 识别 Rust 程序符号-零度非安全
识别前的符号

从上图可看出,被破坏的符号名大多以 _ZN 开头,让我们看下识别后的符号

图片[5]-IDARustDemangler — 让 IDA 识别 Rust 程序符号-零度非安全
识别后的符号

© 版权声明
THE END
喜欢就支持一下吧
点赞3 分享
评论 抢沙发

请登录后发表评论

    暂无评论内容