工具

FA(Firmware Analysis)符号定位自动化工具

一个主要以 IDA 插件形式使用的 Python 框架,把定位符号时的手工步骤(例如查找字符串、跟随交叉引用、跳到函数起始处)写成可复用的签名。Hjson 格式的 SIG 文件按平台归入不同项目,其中串联的命令可搜索字节、字符串、立即数或用 Keystone 汇编出的指令,按操作数和交叉引用筛选,再设置名称、类型、常量、枚举和结构体成员;也可用 Python 脚本调用同一解释器。在 IDA 中,它添加 FA 菜单和工具栏,用于查找项目的全部符号、根据当前函数生成临时签名草稿,以及导出符号和 C 头文件;另有一个加载器可在不使用 IDA 的情况下对原始 ELF 文件运行签名。

使用条件与局限

  • 审阅时最新版本为 v1.0.11,发布于 2026-03-25,未附带任何文件;该标签指向所审阅的 master 提交,PyPI 上也有同版本的 fa 1.0.11。README 的安装方式是克隆仓库后运行 pip install -e,并说明代码库高度面向 IDA,对 Ghidra、radare2 等其他反汇编器的支持仅在未来考虑之列。
  • README 称支持 IDA 8.0+,2026 年 3 月的一次提交为 make-offset 加入了 IDA 9.0 支持。软件包要求 Python 3.8+;keystone-engine、capstone、hjson、rpyc 等依赖需安装到 IDA 自带的 Python 中。IDA 也可在脚本模式下运行该插件并写出符号文件;ELF 加载器脚本则需要 pyelftools,而它只列在测试依赖中。
  • 二进制文件、IDA 数据库和签名均由分析者自行提供:仓库在 fa/signatures 下只附带两个小型测试项目,没有面向真实固件的签名集。README 将签名按项目划分,部分目的在于降低误报;ELF 加载器遇到多处匹配的符号时会如实报告,而不会替用户选定其一。
  • CI 使用 flake8 做静态检查,并在 Python 3.8 至 3.12 上运行 pytest;测试在模拟内存段上检查 find-bytes,并在测试时用 Keystone 和 simpleelf 生成的小型 ARM ELF 上检查 ELF 符号搜索,均不运行 IDA。许可证文本为 GPL-3.0,pyproject.toml 的分类标注为 GPLv3 或更高版本。本次未安装或运行任何内容。

关于此条目

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

来源复核于

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

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

一手来源

  1. README.md GitHub · doronz88/fa · 修订 b584a37
  2. commands.md GitHub · doronz88/fa · 修订 b584a37
  3. fa/ida_plugin.py GitHub · doronz88/fa · 修订 b584a37
  4. elf_loader.py GitHub · doronz88/fa · 修订 b584a37
  5. pyproject.toml GitHub · doronz88/fa · 修订 b584a37
  6. requirements.txt GitHub · doronz88/fa · 修订 b584a37
  7. requirements_testing.txt GitHub · doronz88/fa · 修订 b584a37
  8. fa/signatures GitHub · doronz88/fa · 修订 b584a37
  9. tests/conftest.py GitHub · doronz88/fa · 修订 b584a37
  10. .github/workflows/python-app.yml GitHub · doronz88/fa · 修订 b584a37
  11. LICENSE GitHub · doronz88/fa · 修订 b584a37
  12. https://github.com/doronz88/fa/commit/bc88577a0af4e9a91bcfcae4d88bbf9c012fe646
  13. https://github.com/doronz88/fa/releases/tag/v1.0.11
  14. https://pypi.org/project/fa/1.0.11/

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

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