作者:mcdulltii
自动检测混淆代码和其他状态机
用于自动检测二进制文件中混淆代码和状态机的脚本。
实现基于 IDA 7.4+ (Python3)。查看以下博客文章以获取更多关于 Binary Ninja 实现的信息:
启发式值基于上述博客文章生成,并在(以 所有功能 模式运行时)根据其启发式复杂度从上到下排序。
由于在二进制文件中绘制每个已找到函数的支配树的递归性质,实现和运行时开销较大,尽管已经实现了多线程。
使用 PyQt 可视化插件,用户可以进一步自定义二进制文件上的启发式函数分析。
PyQt5
将 obfDetect 目录和 obfDetect.py 复制到 IDA 插件目录中。
当 IDA 成功加载二进制文件后,脚本会将其横幅打印到 IDC/Python 控制台中。
该脚本可以通过 文件 工具栏运行,如下所示。或者,按 Ctrl-Shift-H。

输出表中的函数名称可以使用 n 重命名,从而更新 IDA 中由其函数地址指定的函数名称。
导出文件名输入框点击后,将打开一个文件选择弹出窗口,可以导航到自定义保存位置。
运行 按钮开始分析导出文件名 输入框选择导出位置,然后点击 导出 按钮将表格导出为 csv 格式

