工具

FLARE IDA Pro 实用脚本合集

Mandiant FLARE 团队已归档的 IDAPython 插件与脚本合集,用于在 IDA Pro 中分析恶意软件和原生代码。它可在代码中搜索 shellcode 使用的预计算 API 名称哈希,恢复在栈上拼接的字符串(静态分析,或在 ironstrings 中借助 flare-emu 模拟执行),为结构体字段和间接调用应用函数类型,用 MSDN 中的函数、参数和常量信息注释导入函数,并通过 idb2pat 从 IDB 中的函数生成可用于制作 FLIRT 签名的模式文件。其他脚本可追踪字符串解码函数等调用的静态参数,在 Mach-O 文件中把 Objective-C 选择器引用关联到其实现,还能为常见 Windows API 导入函数植入简易实现,使解码或解包代码可在 IDA 的 Bochs 模拟模式下运行。

使用条件与局限

  • 仓库已归档、只读,没有发布版本或标签;所审阅的 master 分支提交(2024-10-29)是最后一次提交。脚本不经打包:README 说明需将 plugins/ 复制到 IDA 的 plugins 文件夹,将 python/ 复制到 IDA 的 python 文件夹或加入 PYTHONPATH;annotate_IDB_MSDN.py、ironstrings.py 和 code_grafter.py 等脚本则通过 File → Script file 运行。
  • 需要带 IDAPython 的 IDA Pro;README 给出的是 Windows 的 %PROGRAMFILES% 路径,未注明支持的 IDA 版本。代码横跨多代 IDA:apply_callee_type 针对 IDA 7.6 SP1 做过修复,idb2pat 已移植到 Python 3,而 stackstrings、argtracker 和 decompiler_scripts 仍使用 Python 2 语法,StackStrings 插件也提示因依赖 vivisect 只能在 Python 2 下运行。带对话框的工具导入 PyQt5;ironstrings、objc2_analyzer 和 revil_string_decrypt 需要 flare-emu 与 Unicorn,decompiler_scripts 需要 Hex-Rays 反编译器,code_grafter 则面向 IDA 的 Bochs IDB 模拟模式。
  • 样本和 IDB 由分析者自备。仓库附带 sc_hashes.db,这是约 50 MB 的 SQLite 数据库,保存 Microsoft DLL 导出名称的预计算哈希;make_sc_hash_db.py 可根据用户指定的 DLL 目录重新生成。MSDN 注释工具需要一个仓库未提供的 MSDN_data 目录;MSDN_crawler 脚本使用 Python 2.7,从解压后的 MSDN 文档副本和 IDA 的 tilib 生成该目录。
  • 仓库没有测试或 CI。各工具的行为由 README、各工具的说明文件以及所链接的 FireEye 和 Mandiant 博客文章记录,本次也未在当前 IDA 版本上检验这些脚本。
  • 仓库整体采用 Apache-2.0,而 msdn_crawler.py 是基于 zynamics msdn-crawler 的衍生作品,采用 GPL-2.0-or-later。IDA Pro、Hex-Rays 反编译器以及 Microsoft DLL 和文档仍受各自条款约束。本次未运行脚本,也未分析任何样本;所审来源未确立与 REA 的关联。

关于此条目

类型
工具
类别
原生分析工具
关联
基础工具
目标
二进制

来源复核于

说明已依据一手来源复核;这不代表已运行验证、经过安全审计或确认兼容。

报告条目过时 建议修正翻译

一手来源

  1. README.md GitHub · mandiant/flare-ida · 修订 fc667de
  2. python/flare/ironstrings/README.md GitHub · mandiant/flare-ida · 修订 fc667de
  3. code_grafter/README.md GitHub · mandiant/flare-ida · 修订 fc667de
  4. shellcode_hashes/README.md GitHub · mandiant/flare-ida · 修订 fc667de
  5. plugins/stackstrings_plugin.py GitHub · mandiant/flare-ida · 修订 fc667de
  6. python/flare/argtracker.py GitHub · mandiant/flare-ida · 修订 fc667de
  7. python/flare/annotate_IDB_MSDN.py GitHub · mandiant/flare-ida · 修订 fc667de
  8. MSDN_crawler/msdn_crawler.py GitHub · mandiant/flare-ida · 修订 fc667de
  9. LICENSE GitHub · mandiant/flare-ida · 修订 fc667de
  10. https://github.com/mandiant/flare-ida/commit/14c771f456fd3c1fcd3fb7d681db92279a0e63d7
  11. https://github.com/mandiant/flare-ida/commit/c9a39c4328fc39004d18e80b750a720fbe56af7d

同分区更多条目:原生二进制

原生二进制分区全部 120 项资源