本文档仅供学习和研究使用,请勿使用文中的技术源码用于非法用途,任何人造成的任何负面影响,与本人无关.
相关教程
相关工具
- craigz28/firmwalker - 用于在提取的固件文件系统中搜索好东西的脚本
手动提取
使用 hexdump 搜索 hsqs 的地址
hexdump -C RT-N300_3.0.0.4_378_9317-g2f672ff.trx | grep -i 'hsqs'
使用 dd 命令截取地址 925888(0xe20c0)之后的数据,保存到 rt-n300-fs。
dd if=RT-N300_3.0.0.4_378_9317-g2f672ff.trx bs=1 skip=925888 of=rt-n300-fs
最后,使用 unsquashfs rt-n300-fs 命令解析 rt-n300-fs 文件,得到的 squashfs-root 就是固件系统
unsquashfs rt-n300-fs
binwalk 提取
项目地址 : binwalk
-
基础使用
binwalk kali 自带,很拉跨,需要重装
wget https://github.com/ReFirmLabs/binwalk/archive/master.zip unzip master.zip (cd binwalk-master && python setup.py uninstall && python setup.py install)
binwalk -Me xxx.bin # 递归提取 binwalk -e -t -vv xxx.bin # 查看详细的提取过程
binwalk 通过自带的强大的 magic 特征集,扫描固件中文件系统初始地址的特征码,若匹配成功,则将该段数据 dump 下来 , https://github.com/ReFirmLabs/binwalk/blob/master/src/binwalk/magic/filesystems , Squashfs 文件系统,对应的扫描特征码为 hsqs
binwalk 提取出来的文件夹为
_xxx.extracted/
-
相关文章
- binwalk提取固件失败 - 在 binwalk 遇到大端序可以先用 DD 截取出来之后使用 objcopy 转换为小端序再用 binwalk 提取。
-
常见报错
- binwalk WARNING: Extractor.execute failed to run external extractor 'sasquatch -p 1 -le -d '%%squash
- 需要安装 sasquatch
apt-get install -y build-essential liblzma-dev liblzo2-dev zlib1g-dev git clone https://github.com/devttys0/sasquatch cd sasquatch ./build.sh
- 需要安装 sasquatch
- binwalk WARNING: Extractor.execute failed to run external extractor 'sasquatch -p 1 -le -d '%%squash
Squashfs 文件系统提取
mksquash xxxx xxxx.squash # 制作 squashfs 镜像
unsquashfs xxx.squashfs # 解压
yaffs 文件系统提取
- unyaffs
unyaffs xxx.yaffs2
相关文章
- Multiple vulnerabilities found in the Dlink DWR-932B (backdoor, backdoor accounts, weak WPS, RCE ...)
- 【技术分享】Dlink DWR-932B路由器被爆多个安全漏洞 - 上面文章的翻译
分析实战