提取路由器固件中的squashfs


之前用binwalk -Me提取固件中的squashfs,但會生成大量的壓縮包等,只提取文件系統的話,可以定位squashfs的文件頭(hsqs)位置,然后用dd將它分離出來,然后在unsquashfs解壓出來。

比如手頭上有個路由器固件,文件名為hc6361.bin
hexdump -C hc6361.bin | grep hsqs

得到結果為
00190000  68 73 71 73 5e 0b 00 00  7c 5a 03 58 00 00 04 00  |hsqs^...|Z.X....|

可見hsqs的開始位置是0x190000,dd命令是不支持16進制的,先轉換為10進制,0x190000轉為10進制后為1638400,接着可以構建dd命令了。
dd if=hc6361.bin of=hc6361.squashfs skip=1 bs=1638400

這樣就得到了hc6361.squashfs文件了,解壓squashfs文件需要用到unsquashfs命令
unsquashfs hc6361.squashfs
運行該命令后,會在當前目錄生成文件夾squashfs-root,里面就是解壓出來的文件系統


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM