关于FACT_core
FACT_core是一款功能强大的固件安全分析和比较工具,该工具旨在自动化大部分固件分析过程,以辅助广大研究人员完成固件安全分析等任务。
该工具可以解压任意固件文件并处理多个分析,而且它还可以比较多个图像或单个文件。除此之外,FACT_core还能够解压、分析和比较插件,同时能提供最大的灵活性和可扩展性。
FACT_core被设计为多进程应用程序,因此设备的CPU核心和 RAM 越多越好。
支持的平台
我们可以在任何 Linux 发行版上安装 FACT_core,但安装程序仅限于:
Ubuntu 20.04(稳定版)
Ubuntu 22.04(稳定版)
Debian 11(稳定版)
Kali(实验性)
运行机制
工具安装
由于该工具基于Python 3开发,因此我们首先需要在本地设备上安装并配置好最新版本的Python 3环境。
源码获取
接下来,广大研究人员可以直接使用下列命令将该项目源码克隆至本地:
sudo apt update && sudo apt upgrade && sudo apt install git git clone https://github.com/fkie-cad/FACT_core.git cd FACT_core src/install/pre_install.sh
然后切换到项目目录中,执行工具安装脚本:
cd FACT_core src/install.py
快速安装
sudo apt update && sudo apt upgrade && sudo apt install git git clone https://github.com/fkie-cad/FACT_core.git ~/FACT_core ~/FACT_core/src/install/pre_install.sh && sudo mkdir /media/data && sudo chown -R $USER /media/data
然后重新启动(例如,使用sudo reboot)并随后运行
~/FACT_core/src/install.py ~/FACT_core/start_all_installed_fact_components
等待几秒钟,打开浏览器并转到http://localhost:5000。可以使用Ctrl + c在终端中使用关闭 FACT。
工具使用
您可以通过执行start_all_installed_fact_components脚本来启动FACT_core。该脚本会自动检测所有已安装的组件。
$ ./start_all_installed_fact_components
之后可以分别通过http://localhost:5000和https://localhost (nginx)访问FACT_core。
结果的导入/导出
脚本src/firmware_import_export.py可用于导出解压后的文件和分析结果,并将其导入另一个 FACT 实例。数据以 ZIP 存档的形式存储,这也是脚本在导入期间所期望的格式。要导出已分析固件映像的文件和分析数据,只需运行:
python3 firmware_import_export.py export FW_UID [FW_UID_2 ...] [-o OUTPUT_DIR]
此后,您可以使用:
python3 firmware_import_export.py import FW.zip [FW_2.zip ...]
工具运行演示
许可证协议
本项目的开发与发布遵循GPL-3.0开源许可协议。
项目地址
FACT_core:【GitHub传送门】