# FA（Firmware Analysis）符号定位自动化工具

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

- 类型：工具
- 目标：二进制 · 固件
- 类别：原生分析工具
- 关联：基础工具
- 来源复核于：2026-10-20
- 收录于：2026-11-02
- 原始资源：<https://github.com/doronz88/fa>
- 一手来源：<https://github.com/doronz88/fa/blob/b584a37f920995310f257d428e1a0b387cbf489e/README.md>
- 目录页面：<https://awesomerea.org/zh/resources/fa-firmware-analysis/>
- 记录 JSON：<https://awesomerea.org/resources/fa-firmware-analysis/record.json>
- 英文版：[English](https://awesomerea.org/resources/fa-firmware-analysis/index.md)

## 使用条件与局限

- 审阅时最新版本为 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. <https://github.com/doronz88/fa/blob/b584a37f920995310f257d428e1a0b387cbf489e/README.md>
2. <https://github.com/doronz88/fa/blob/b584a37f920995310f257d428e1a0b387cbf489e/commands.md>
3. <https://github.com/doronz88/fa/blob/b584a37f920995310f257d428e1a0b387cbf489e/fa/ida_plugin.py>
4. <https://github.com/doronz88/fa/blob/b584a37f920995310f257d428e1a0b387cbf489e/elf_loader.py>
5. <https://github.com/doronz88/fa/blob/b584a37f920995310f257d428e1a0b387cbf489e/pyproject.toml>
6. <https://github.com/doronz88/fa/blob/b584a37f920995310f257d428e1a0b387cbf489e/requirements.txt>
7. <https://github.com/doronz88/fa/blob/b584a37f920995310f257d428e1a0b387cbf489e/requirements_testing.txt>
8. <https://github.com/doronz88/fa/tree/b584a37f920995310f257d428e1a0b387cbf489e/fa/signatures>
9. <https://github.com/doronz88/fa/blob/b584a37f920995310f257d428e1a0b387cbf489e/tests/conftest.py>
10. <https://github.com/doronz88/fa/blob/b584a37f920995310f257d428e1a0b387cbf489e/.github/workflows/python-app.yml>
11. <https://github.com/doronz88/fa/blob/b584a37f920995310f257d428e1a0b387cbf489e/LICENSE>
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/>

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

- [pyinstxtractor-ng 新一代 PyInstaller 程序提取工具](https://awesomerea.org/zh/resources/pyinstxtractor-ng/index.md) · 工具
- [CoBRA 混合布尔-算术表达式化简器](https://awesomerea.org/zh/resources/cobra-mba-simplifier/index.md) · 工具
- [ollvm-unflattener OLLVM 控制流平坦化去混淆工具](https://awesomerea.org/zh/resources/ollvm-unflattener/index.md) · 工具
- [GolangAnalyzerExtension Ghidra Go 分析扩展](https://awesomerea.org/zh/resources/ghidra-golanganalyzerextension/index.md) · 工具
- [IDA iOS Helper iOS 逆向辅助插件](https://awesomerea.org/zh/resources/ida-ios-helper/index.md) · 工具
- [MAMBO 动态二进制修改框架](https://awesomerea.org/zh/resources/mambo/index.md) · 工具

## 关于此条目

说明已依据一手来源复核。
原创说明采用 MIT 许可；外部项目、论文与素材保留各自的权利和许可。
