77
88上游项目支持:[ binwalk] ( https://github.com/ReFirmLabs/binwalk ) 、[ firmadyne] ( https://github.com/firmadyne/firmadyne ) 、[ firmware-analysis-toolkit] ( https://github.com/attify/firmware-analysis-toolkit )
99
10- ** firmware-analysis-plus** (** FAP** )主要用于常见** 路由器固件的仿真** ,可以进行固件的安全测试。感谢以下开源项目:` binwalk ` 提供优秀的固件提取 API,` firmadyne ` 提供优秀的固件仿真核心支持,` firmware-analysis-toolkit ` 提供简化流程的思想。
10+ ** firmware-analysis-plus** (** fap** )主要用于常见** 路由器固件的仿真** ,可以进行固件的安全测试。感谢以下开源项目:` binwalk ` 提供优秀的固件提取 API,` firmadyne ` 提供优秀的固件仿真核心支持,` firmware-analysis-toolkit ` 提供简化流程的思想。
11+
12+ ** fap** 只是站在巨人的肩膀上,做出改进和定制,提供一个更加高效的仿真平台。包括精简不必要组件,优化仿真流程,优化网络环境大幅压缩安装时间,修复若干 ` bug ` ,一键仿真固件。其原理主要包括两点
1113
12- ** FAP** 只是站在巨人的肩膀上,做出改进和定制,提供一个更加高效的仿真平台。包括精简不必要组件,优化仿真流程,优化网络环境大幅压缩安装时间,修复若干 ` bug ` ,一键仿真固件。其原理主要包括两点
1314- ` qemu ` 提供多种架构指令的模拟,使用预先编译好的内核启动固件中的核心业务
1415- 多数嵌入式设备含有一个 ` nvram ` 芯片,保存一些重要的配置信息,` firmadyne ` 实现一个新的 ` libnvram.so ` 库文件,通过代码模拟固件启动时加载 ` nvram ` 配置信息的行为。
1516
1617
1718| FAP 版本 | python 版本 | 支持系统 | 安装方法 |
1819| ------------------------------------------------------------ | ---------------- | ----------------------------------------------- | ------------------------------------------------------------ |
19- | [ v0.1] ( https://github.com/liyansong2018/firmware-analysis-plus/releases/tag/0.1 ) | python2、python3 | Ubuntu16.04、Ubuntu 18.04、Kali 2020.02 | [ FAP v0.1 版本手册] ( https://github.com/liyansong2018/firmware-analysis-plus/wiki/FAP-v0.1-%E7%89%88%E6%9C%AC%E6%89%8B%E5%86%8C ) |
20+ | [ v0.1] ( https://github.com/liyansong2018/firmware-analysis-plus/releases/tag/0.1 ) | python2、python3 | Ubuntu16.04、Ubuntu 18.04、Kali 2020.02 | [ fap v0.1 版本手册] ( https://github.com/liyansong2018/firmware-analysis-plus/wiki/FAP-v0.1-%E7%89%88%E6%9C%AC%E6%89%8B%E5%86%8C ) |
2021| [ v1.0] ( https://github.com/liyansong2018/firmware-analysis-plus/releases/tag/1.0 ) | python2、python3 | Beta | Beta |
2122| [ v2.0] ( https://github.com/liyansong2018/firmware-analysis-plus/releases/tag/2.0 ) | python3 | Kali 2020.04(不支持 Ubuntu 20.04,其他未测试) | 如下所示 |
2223
@@ -33,7 +34,7 @@ cd binwalk
3334sudo python3 setup.py install
3435```
3536
36- ## 安装 FAP
37+ ## 安装 fap
3738
3839``` shell
3940git clone https://github.com/liyansong2018/firmware-analysis-plus.git
@@ -48,35 +49,68 @@ cd firmware-analysis-plus
4849## 运行
4950
5051```
51- ./fat.py -q ./2.5.0/ ./testcases/wnap320_V3.7.11.4_firmware.tar
52+ ┌──(lys㉿kali)-[~/Documents/IoT/firmware-analysis-plus]
53+ └─$ ./fat.py -q ./2.5.0/ ./testcases/wnap320_V3.7.11.4_firmware.tar
54+
55+
56+ ______ _ ___
57+ | ___| (_) / _ \
58+ | |_ _ _ __ ___ / /_\ \ _ __ ___
59+ | _| | | | '_ ` _ \ | _ | | '_ \ / __| ++
60+ | | | | | | | | | | | | | | | | | | \__ \
61+ \_| |_| |_| |_| |_| \_| |_/ |_| |_| |___/
62+
63+ Welcome to the Firmware Analysis Plus - v2.1
64+ By lys - https://github.com/liyansong2018/firmware-analysis-plus | @liyansong
65+
66+ [+] Firmware: wnap320_V3.7.11.4_firmware.tar
67+ [+] Extracting the firmware...
68+ [+] Image ID: 3
69+ [+] Identifying architecture...
70+ [+] Architecture: mipseb
71+ [+] Building QEMU disk image...
72+ [+] Setting up the network connection, please standby...
73+ [+] Network interfaces: [('brtrunk', '192.168.0.100')]
74+ [+] Using qemu-system-mips from /home/lys/Documents/IoT/firmware-analysis-plus/qemu-builds/2.5.0
75+ [+] All set! Press ENTER to run the firmware...
76+ [+] When running, press Ctrl + A X to terminate qemu
77+
5278```
5379
54- ![ run] ( images/run.png )
80+ 此时回车,可以进入路由器的 shell,也可以打开 Web 端路由器管理页面。
81+
82+
5583
5684## 重置和删除中间文件
5785
5886``` shell
5987./reset.py
6088```
6189
62- 博客: [ 开源固件仿真平台FAP对嵌入式固件的模拟与定制 ] ( https://www.freebuf.com/sectool/264053.html )
90+ ## 定制
6391
64- # V2.0 变化
92+ 参见博客: [ 开源固件仿真平台fap对嵌入式固件的模拟与定制 ] ( https://www.freebuf.com/sectool/264053.html )
6593
66- - 安装流程进一步简化,增加新版本库的支持,删除冗余库
67- - 移除 ` python2 ` ,之前的版本需要 ` python2 ` 和 ` python3 ` 的同时支持
68- - 移除 ` setup2kali.sh ` ,同时修改 ` setup.sh `
69- - 修改 ` firmadyne ` 源码中的 ` inferNetwork.sh ` 文件
70- - 修改 ` firmaydne ` 源码中的 ` extractor.py ` 文件
71- - 修改 ` binwalk ` 安装脚本
94+ ## FAQ
7295
73- 欢迎提交修改代码,pull requests!
96+ ### 编译 binwalk 失败怎么办?
97+
98+ 如果已经编译好了 ` binwalk ` ,可以使用如下命令进行固件仿真
99+
100+ ``` shell
101+ ./fat.py -q ./2.5.0/ ./testcases/wnap320_V3.7.11.4_firmware.tar
102+ ```
103+
104+ 如果编译 ` binwalk ` 失败,也没关系,` fap ` 也支持不使用 ` binwalk ` 接口的模式,但是需要我们预先解压固件中的文件系统,并重新打包
74105
75- # FAQ
106+ ``` shell
107+ tar -czvf test.tar.gz * # 一定要在固件文件系统的根目录下重新打包
108+ ./fat.py -q ./2.5.0/ -b 0 ./testcases/test.tar.gz
109+ ```
76110
77- ## FAP 支持的固件
111+ ### 支持的固件
78112
79- FAP 通用版(上游 firmadyne 项目提供)
113+ fap 通用版(上游 firmadyne 项目提供)
80114
81115- [ wnap320_V3.7.11.4_firmware.tar] ( https://github.com/liyansong2018/firmware-analysis-plus/tree/master/testcases )
82116- DIR-601_REVB_FIRMWARE_2.01.BIN
@@ -92,8 +126,28 @@ FAP 通用版(上游 firmadyne 项目提供)
92126- ** DIR-300A1_FW105b09.bin**
93127- HG532eV100R001C01B020_upgrade_packet.bin
94128
95- FAP 定制版(针对特定固件定制的版本)
129+ fap 定制版(针对特定固件定制的版本)
96130
97131- [ FAP-DIR2640.tar.bz2] ( https://github.com/liyansong2018/firmware-analysis-plus/releases )
98132- TL-WR802N(US)_ V4_200
99133- Archer_C50v5_US_0.9.1_0.2
134+
135+ ## 版本更新说明
136+
137+ ### v2.0
138+
139+ - 安装流程进一步简化,增加新版本库的支持,删除冗余库
140+ - 移除 ` python2 ` ,之前的版本需要 ` python2 ` 和 ` python3 ` 的同时支持
141+ - 移除 ` setup2kali.sh ` ,同时修改 ` setup.sh `
142+ - 修改 ` firmadyne ` 源码中的 ` inferNetwork.sh ` 文件
143+ - 修改 ` firmaydne ` 源码中的 ` extractor.py ` 文件
144+ - 修改 ` binwalk ` 安装脚本
145+
146+ ### v2.1
147+
148+ - 增加无binwalk模式
149+ - 修改若干描述
150+ - 修复mips架构不能调试的问题
151+
152+
153+ 欢迎提交修改代码,pull requests!
0 commit comments