Skip to content
KitploitKITPLOIT
工具博客
提交
工具博客
提交

黑客、渗透测试和网络安全工具,武装您的安全武器库!

Kitploit 是一个黑客、网络安全和渗透测试工具的目录。发现最新的项目更新,查找漏洞、分析系统、自动化测试并加强你的安全。

··订阅源·联系·隐私·© 2026 Kitploit

工具目录

分类

查看所有分类
Loading categories
FACT_core — 固件分析与比较工具 | Kitploit
工具/GitHubGitHub/fkie-cad/fact_core
嵌入式系统安全静态分析动态分析 (沙盒)物联网安全漏洞分析逆向工程取证分析硬件安全二进制分析固件分析
GitHubfkie-cad/fact_core

FACT_core

1.5k25014天前Kitploit 审核通过

最受欢迎

查看全部 →

发现我们社区最常用的工具。

探索所有工具

浏览我们的工具集合

查看所有工具 →
分享

固件分析与比较工具

查看仓库网站

FACT标志,放大镜作为字母C
固件分析与比较工具 (FACT)

codecov Codacy Badge Gitter chat CI Build License: GPL v3

目录

  • 为什么选择FACT?
  • 设置
  • 使用
  • 文档
  • 贡献
  • 额外插件
  • 分析导入/导出
  • 演讲
  • 社交
  • 致谢
  • 许可证

为什么选择FACT?

固件分析可用于实现多种有趣的目标,其中最主要的是识别黑盒固件的功能、组件和潜在安全弱点。

固件分析与比较工具(FACT)旨在尽可能自动化手动固件分析工作。FACT 结合了一组不断扩展的强大分析功能,创建了一个统一界面,将用户从任意固件样本带到完成的分析结果。FACT 分析的一些关键特性是,结果:

  • 可浏览
  • 可搜索
  • 可比较

此外,FACT 提供了多种导航和可视化分析结果以及固件内容的方式,以便轻松访问。主要的 FACT 界面是一个基于 html/js/css 的 Web 界面,可以本地托管或通过网络共享。此外,FACT 还提供了一个类似 REST 的 HTTP API,可以通过集成的 SwaggerUI 进行探索。Web 界面的一些关键特性包括:

  • 通过文件树渲染所有固件组件,轻松可视化固件。
  • 通过观察所有固件组件的结果摘要,快速导航分析结果。
  • 在每个页面顶部以标签形式突出显示相关分析结果。
  • 固件和组件的多种下载选项,方便进入高级分析。

虽然 FACT 作为研究原型维护,但该项目经过充分测试,包含基础文档,并提供多种生产级功能。我们始终欢迎反馈和功能请求。

更多细节和一些截图可以在我们的项目页面找到。

设置

要求

FACT 设计为多进程应用程序,内核和 RAM 越多越好。

最低配置推荐配置
4 核16 核
8 GB 内存64 GB 内存
10 GB 磁盘空间10* GB 磁盘空间

[!NOTE] 设置 FACT 代码、容器和二进制文件大约需要 10 GB 空间。解压文件和存储分析结果需要额外空间,可位于单独分区或驱动器。

本地安装

原则上可以在任何 Linux 发行版上安装 FACT,但安装程序仅限于:

  • Debian 12/13 或兼容版本(稳定版)
  • Ubuntu 22.04/24.04/26.04 或兼容版本(稳定版)
  • Kali(实验性)

在较旧发行版(例如 Debian 11 “Bullseye” 或 Ubuntu 20.04 “Focal”)上安装可能仍然有效,但由于这些发行版已到达生命周期,不被视为稳定。

FACT 需要 Python 3.10–3.14(应已在所有受支持发行版中默认安装)。

设置过程基本自动化,封装在单个脚本中。不过,某些功能可以专门选择。有关如何安装 FACT 的详细指南,请参阅 INSTALL.md。

[!IMPORTANT] 请注意,虽然大量使用容器,FACT 仍然包含许多依赖项(并且没有提供卸载)。如果您希望保持系统清洁,可以尝试以下提供的设置选项。

Vagrant

我们每月提供 master 分支的即用型 Vagrant box。Vagrant 是一种简单便捷的方式,无需在机器上安装即可开始使用 FACT。只需设置 Vagrant 并将我们提供的 box 导入 VirtualBox。我们的 box 可以在 vagrantup 网站 找到!

请查看我们的教程,了解如何开始使用 FACT 和 Vagrant。

Docker

也存在 Docker 化版本,但目前未维护。(有关详细信息,请参阅 FACT_docker 仓库。)

使用

您可以通过执行 start_fact.py 脚本来启动 FACT。该脚本会自动检测所有已安装的组件。

root@kitploit:~
src/start_fact.py

之后,可以通过 http://localhost:5000(默认)或 https://localhost(如果使用 nginx 安装 FACT)访问 FACT。

您可以通过按下 Ctrl + c 或向 start_fact.py 脚本发送 SIGTERM 来关闭系统。

[!CAUTION] FACT 不打算用作公共互联网服务。Web 界面不是加固的应用程序。我们通过应用 SecDevOps 尽力限制安全问题,但 FACT 仍可能存在漏洞。如果计划在非完全可信网络上托管 FACT,请确保重置 FACT 配置中的所有密码。

文档

[!TIP] 有关如何使用 FACT 的更多文档,请参阅我们的 wiki 页面。

您也可以查看我们的 Sphinx 文档。

关于 FACT 是什么以及如何工作的信息,也可以在 docs 文件夹的幻灯片中找到。

REST API

FACT 提供 REST API。更多信息可在 wiki 页面中找到。

用户管理

FACT 提供可选的基于认证、角色和用户管理。更多信息可在 wiki 页面中找到。

贡献

贡献的最简单方式是编写自己的插件。我们的开发者手册可在 GitHub 上的 wiki 中找到。

额外插件

当前可用的额外插件:

  • Codescanner (⚠️ 不同许可证)
    • 任意二进制文件中段落的分类(例如 ascii / 代码 / 高熵)
    • 代码段中 CPU 架构的分类

分析导入/导出

脚本 src/firmware_import_export.py 可用于导出解压后的文件和分析结果,并将其导入到另一个 FACT 实例。数据存储为 ZIP 存档,这也是脚本在导入时期望的格式。要导出已分析固件映像的文件和分析数据,请运行:

root@kitploit:~
python3 firmware_import_export.py export FW_UID [FW_UID_2 ...] [-o OUTPUT_DIR]

[!NOTE] 导出的存档可能占用大量磁盘空间。没有固定比例,但可能超过原始固件大小的 2 到 10 倍。

之后,您可以使用以下命令导入导出的文件:

root@kitploit:~
python3 firmware_import_export.py import FW.zip [FW_2.zip ...]

演讲

BlackHat Arsenal

我们很荣幸在多次 BlackHat Arsenal 会议中展示 FACT。

  • Black Hat Arsenal
  • Black Hat Arsenal
  • Black Hat Arsenal
  • Black Hat Arsenal
  • Black Hat Arsenal

其他

  • Hardwear.io 2017 / 幻灯片
  • Pass the salt 2019 / 幻灯片 / 视频
  • Hardwear.io 2019

社交

  • Twitter
  • Gitter

致谢

感谢 @botlabsDev,他最初提供了 Vagrantfile,不过现已废弃。

该项目部分由 德国联邦信息安全办公室(BSI) 和其他机构资助。

许可证

固件分析与比较工具 (FACT)

版权所有 (C) 2015-2026 Fraunhofer FKIE

本程序是自由软件:您可以重新分发和/或修改它,前提是遵守自由软件基金会发布的 GNU 通用公共许可证,无论是许可证第 3 版,还是(按您的选择)任何更高版本。 本程序的分发旨在提供有用性,但不作任何保证;甚至不包括适销性或特定用途适用性的隐含保证。 有关详细信息,请参见 GNU 通用公共许可证。 您应该已随本程序收到一份 GNU 通用公共许可证副本。如果没有,请访问 http://www.gnu.org/licenses/。

某些插件可能具有不同许可证。如果是这样,插件文件夹中会提供许可证文件。

下载工具