Skip to content

Commit 891b5e3

Browse files
authored
Update to v2.1 & Update README.md
1 parent 2a160ba commit 891b5e3

File tree

1 file changed

+73
-19
lines changed

1 file changed

+73
-19
lines changed

README.md

Lines changed: 73 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -7,16 +7,17 @@
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
3334
sudo python3 setup.py install
3435
```
3536

36-
## 安装 FAP
37+
## 安装 fap
3738

3839
```shell
3940
git 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

Comments
 (0)