fkie-cad/FACT_core
GitHub: fkie-cad/FACT_core
FACT 是一款企业级固件分析与比对平台,通过自动化解包、组件识别和漏洞扫描,帮助安全研究人员快速理解黑盒固件的结构与安全风险。
Stars: 1423 | Forks: 242
The Firmware Analysis and Comparison Tool (FACT)
[](https://codecov.io/gh/fkie-cad/FACT_core)
[](https://www.codacy.com/gh/fkie-cad/FACT_core/dashboard?utm_source=github.com&utm_medium=referral&utm_content=fkie-cad/FACT_core&utm_campaign=Badge_Grade)
[](https://gitter.im/FACT_core/community)
[](https://github.com/fkie-cad/FACT_core/actions/workflows/build_ci.yml)
[](https://github.com/fkie-cad/FACT_core/actions/workflows/ruff.yml)
[](https://www.gnu.org/licenses/gpl-3.0)
## 目录
- [为什么选择 FACT?](#why-fact)
- [安装设置](#setup)
- [使用方法](#usage)
- [文档](#documentation)
- [贡献](#contributing)
- [附加插件](#additional-plugins)
- [分析导入/导出](#analysis-import--export)
- [演示](#presentations)
- [社交](#social)
- [致谢](#acknowledgments)
- [许可证](#license)
## 为什么选择 FACT?
固件分析可用于实现多个有趣的目标。
其中最主要的是在黑盒固件中识别功能、组件和潜在的安全漏洞。
固件分析与比较工具 (FACT) 旨在尽可能多地自动化手动固件分析工作。
FACT 结合了一系列不断增长的功能强大的分析工具,创建了一个统一的界面,引导用户从任意固件样本开始,直到完成分析。
FACT 分析的一些关键特性在于,其结果是
- 可浏览
- 可搜索
- 且可比较。
此外,FACT 提供了多种方式来导航和可视化分析结果及固件内容,以实现便捷的访问。
FACT 的主界面是一个基于 HTML/JS/CSS 的 Web 界面,可以在本地托管或通过网络共享。
此外,FACT 还提供了一个 REST 风格的 HTTP API,可以通过集成的 SwaggerUI 进行探索。
Web 界面的一些关键特性包括:
- 通过所有固件组件的文件树渲染,轻松实现固件可视化。
- 通过观察所有固件组件的结果摘要,快速导航分析结果。
- 在每个页面顶部以标签形式高亮显示相关的分析结果。
- 提供多种固件和组件下载选项,以便进行深入分析。
虽然 FACT 是作为研究原型进行维护的,但该项目经过了充分测试,包含基准文档,并提供多种生产级功能。
我们始终期待您的反馈和功能请求。
更多详细信息和部分截图可以在我们的[项目页面](https://fkie-cad.github.io/FACT_core/)上找到。
## 安装设置
### 系统要求
FACT 被设计为多进程应用程序,核心 (Cores) 和 RAM 越多越好。
| 最低配置 | 推荐配置 |
|------------------|--------------------|
| 4 核心 | 16 核心 |
| 8 GB RAM | 64 GB RAM |
| 10 GB 磁盘空间 | 10* GB 磁盘空间 |
### 本地安装
原则上可以在任何 Linux 发行版上安装 FACT,但安装程序仅限于
- Debian 12 (稳定版)
- Ubuntu 22.04/24.04 (稳定版)
- Linux Mint 21/22 (稳定版)
- Kali (实验性)
在较旧的发行版(例如 Debian 11 "Bullseye" 或 Ubuntu 20.04 "Focal")上安装可能仍然可行,但不被视为稳定版,因为这些发行版已达到生命周期终点。
FACT 需要 Python 3.10–3.12(应为所有受支持发行版中的默认版本)
安装过程大部分是自动化的,并封装在单个脚本中。
不过,某些功能可以专门选择。
有关如何安装 FACT 的详细指南,请参阅
[INSTALL.md](https://github.com/fkie-cad/FACT_core/blob/master/INSTALL.md)。
### Vagrant
我们每月提供 master 分支的现成 Vagrant box。
[Vagrant](https://www.vagrantup.com/) 是开始使用 FACT 的一种简单便捷的方式,无需在您的计算机上安装它。
只需设置 Vagrant 并将我们提供的 box 导入 VirtualBox。
我们的 box 可以在[这里](https://app.vagrantup.com/fact-cad/boxes/FACT-master)找到!
请参阅我们的[教程](https://github.com/fkie-cad/FACT_core/blob/master/INSTALL.vagrant.md),了解如何开始使用 FACT 和 Vagrant。
### Docker
还有一个 Docker 化的版本,但目前处于无人维护状态。
(有关更多信息,请参阅 [FACT_docker](https://github.com/fkie-cad/FACT_docker) 仓库)。
## 使用方法
您可以通过执行 `start_fact.py` 脚本来启动 FACT。
该脚本会自动检测所有已安装的组件。
```
src/start_fact.py
```
之后,可以通过 标签:CVE, DNS 反向解析, FACT, IoT安全, Python, 二进制分析, 云安全监控, 云安全运维, 云资产清单, 代码比对, 固件分析, 固件安全, 固件解包, 域名收集, 嵌入式系统, 开源安全工具, 数字签名, 文档安全, 无后门, 网络安全, 网络测绘, 请求拦截, 调试插件, 逆向工具, 逆向工程, 逆向工程平台, 隐私保护, 静态分析, 黑盒测试