前幾天國外爆出幾個關於路由器后門很火的料,
詳情可見:http://www.freebuf.com/articles/terminal/14425.html
該網站貌似專門針對固件的逆向做了很多研究,有興趣的可以看看:http://www.devttys0.com/
於是自己也動手嘗試逆向一下路由器的固件,固件下載:
http://www.tenda.cn/uploadfile/downloads/uploadfile/201103/Wireless/W302R/U_W302RRA_V3.1.201d_EN.zip
是騰達的一款路由器固件,這次后門爆料事件主角之一。
下載后的壓縮包是一個bin后綴的二進制文件,可以用一款工具binwalk來查看該固件,該工具的使用大家可以去網上搜索.

可以看看該bin文件由兩個部分組成,第一部分是uImage頭部,這個不是我們需要的關鍵信息,直接pass。
第二部分從偏移64(0x40)開始,是一段用LZMA壓縮的數據,我們用dd命令將這段數據保存到kernel.lzma:

kernel.lzma直接可以用Archive Manager或者其他解壓縮工具打開,解壓出里面的kernel文件,用file命令查看該文件:
dpanda@hacker:~/Desktop$ file kernel
kernel: data
用binwalk查看:

binwalk自帶的解壓功能-e:

解壓后的文件夾_kernel.extracted中包含一個radomdisk的文件:
用hexedit或者file命令查看可知是squashfs文件系統。


嘗試用mount命令掛載失敗,用unsquashfs解壓也失敗,貌似是經過LZMA壓縮造成的原因,查了一下有個工具firmware-mod-kit ,下載后用unsquashfs_all.sh可以成功解壓出固件:

解壓后就可以看到所有固件中包含的文件:

