关于FirmWire
FirmWire是一款功能强大的全系统基带固件仿真平台,在该工具的帮助下,广大研究人员可以轻松对设备基带固件系统/镜像进行模糊测试、调试或安全分析。
支持的镜像
MediaTek
Samsung A10s (MT6762)
Samsung A41 (MT6768)
Shannon
Most images for Galaxy S7, S7e (S335)
Moto One Vision (S337)
Galaxy S8, S8+ (S355)
Galaxy S9 (S360)
Galaxy S10, S10e (S5000)
工具安装
我们建议广大研究人员使用提供的Dockerfile来安装、下载和使用FirmWire。下列命令执行后可以构建Docker文件:
git clone https://github.com/FirmWire/FirmWire.git cd FirmWire git clone https://github.com/FirmWire/panda.git # This will take some time docker build -t firmwire .
接下来,运行下列命令之后,我们将会得到一个指向FirmWire Docker环境的交互式Shell:
docker run --rm -it -v $(pwd):/firmwire firmwire
工具使用
安装好FireWire之后,我们就可以使用下列命令来运行FirmWire,并开始我们的基带固件仿真了:
$ ./firmwire.py modem.bin
上述命令将会自动识别固件文件,并解压固件,然后选择对应的加载工具和设备来运行固件。除此之外,我们还可以通过URL来加载固件文件:
$ ./firmwire.py https://github.com/grant-h/ShannonFirmware/raw/master/modem_files/CP_G973FXXU3ASG8_CP13372649_CL16487963_QB24948473_REV01_user_low_ship.tar.md5.lz4
当前版本的FirmWire支持MediaTek MTK和三星Shannon系列固件镜像。
需要注意的是,FirmWire需要使用不同的TCP端口来完成其操作,如果你的设备端口受限制的话,请使用“--consecutive-ports”选项来指定需要使用的端口。比如说,如果端口10000-10005是空闲的,则可以使用下列命令来调用FirmWire:
$ ./firmwire.py --consecutive-ports 10000 modem.bin
工具使用演示
许可证协议
本项目的开发与发布遵循BSD-3-Clause开源许可证协议。
项目地址
FirmWire:【GitHub传送门】
参考资料
https://firmwire.github.io/docs/installation.html
https://hernan.de/research/papers/firmwire-ndss22-hernandez.pdf