kirovgrad/Renamaida

GitHub: kirovgrad/Renamaida

一款 IDA Pro 插件,通过预先生成的函数签名数据库自动识别并重命名固件二进制中静态链接的开放库函数。

Stars: 5 | Forks: 2

# IDA Pro 的 Renamaida 插件 # 简介 Renamaida 是一款用于 IDA Pro 反汇编器的插件,可以帮助重命名固件二进制文件中的未知函数。它通过使用预先生成的签名文件,来识别从开放库导入或静态链接的函数,并根据其签名对它们进行重命名。 # 安装说明 要使用 Renamaida,只需将该插件复制到您 IDA Pro 安装目录的 "plugins" 文件夹中。然后,当您在 IDA Pro 中打开固件二进制文件时,就可以从 "Edit" 菜单中选择 Renamaida。 # 用法 在使用 Renamaida 之前,您需要为您正在使用的库生成一个签名文件。为此,您需要自行编译该库,并确保其包含所有调试信息,包括原始函数名。 您编译的库与固件链接的库越相似,能被识别出的函数就越多。这不仅适用于库的发布版本,也适用于固件运行所基于的架构版本。 一旦有了编译好的库,您就可以使用 "Renamaida signature generator" 脚本来创建一个 JSON 文件,其中包含该库中所有函数的签名。要使用签名生成器,请在 IDA Pro 中从命令行运行它。 要重命名固件二进制文件中的未知函数,请在 IDA Pro 中打开该二进制文件,并从 "Edit" 菜单中选择 Renamaida。此时会弹出一个窗口,您可以在其中选择用于重命名的 JSON 签名文件。选择文件后,Renamaida 将使用这些签名,对二进制文件中与签名匹配的任何未知函数进行重命名。 # 算法工作原理 在 Renamaida 中,使用了一个字典,其中键是特定架构的指令,而它们的值是英文字母。在创建 JSON 签名数据库时,函数名以键的形式存储,而一串字母则代表了该函数的指令序列。 当插件启动时,Renamaida 会使用相同的字典为当前二进制文件创建一个签名库,并使用 Jaro-Winkler 相似度算法逐一比较这些键的值。只有在相似度值高于 0.83 单位时,函数才会被重命名。另一个限制条件是长度少于十条指令的函数,因为它们可用于比较的数据非常少。 # 贡献 如果您在使用 Renamaida 时遇到任何问题,或希望为其开发做出贡献,请在 GitHub 仓库中提交 issue 或 pull request。
标签:Homebrew安装, IDA Pro 插件, 二进制分析, 云安全监控, 云安全运维, 云资产清单, 固件分析, 特征库匹配, 逆向工具, 逆向工程, 静态分析