我正在查看我的路由器C1000A/C1000A-D的固件,但在安装和模拟它时遇到了一些困难。从我所读到的,逆向工程固件的一般过程是提取固件并在 Qemu 中运行它或将其挂载到您的文件系统。
我设法从以下内容中提取了我认为是文件系统的内容
$> binwalk -e --dd="lzma:7z:7zip -d %e" CAC002-31.30L.76.img
我看到有一个工具会尝试挂载这个运行,unjffs2当我运行它时它会失败,似乎无法解决驱动程序未加载的问题。然而奇怪的是,文件系统挂载了,只有一堆空文件夹。
$> ./unjffs2 4000.jffs2
Converting image to little endian...
Wrong bitmask at 0x00033fe8, 0x0000
Wrong bitmask at 0x00033fec, 0x0000
Wrong bitmask at 0x00033ff0, 0x0000
Wrong bitmask at 0x00033ff4, 0x0000
Wrong bitmask at 0x00033ff8, 0x0000
Wrong bitmask at 0x00033ffc, 0x0000
Wrong bitmask at 0x00063f68, 0x0000
Wrong bitmask at 0x00063f6c, 0x0000
Wrong bitmask at 0x00063f70, 0x0000
Wrong bitmask at 0x00063f74, 0x0000
Wrong bitmask at 0x00063f78, 0x0000
Wrong bitmask at 0x00063f7c, 0x0000
Wrong bitmask at 0x00063f80, 0x0000
Wrong bitmask at 0x00063f84, 0x0000
Wrong bitmask at 0x00063f88, 0x0000
Wrong bitmask at 0x00063f8c, 0x0000
Wrong bitmask at 0x00063f90, 0x0000
Wrong bitmask at 0x00063f94, 0x0000
Wrong bitmask at 0x00063f98, 0x0000
Wrong bitmask at 0x00063f9c, 0x0000
Wrong bitmask at 0x00063fa0, 0x0000
Wrong bitmask at 0x00063fa4, 0x0000
Wrong bitmask at 0x00063fa8, 0x0000
...
Wrong bitmask at 0x000f3ff0, 0x0000
Wrong bitmask at 0x000f3ff4, 0x0000
Wrong bitmask at 0x000f3ff8, 0x0000
Wrong bitmask at 0x000f3ffc, 0x0000
modprobe: FATAL: Module mtdchar not found.
2033+1 records in
2033+1 records out
1041200 bytes (1.0 MB) copied, 0.00570635 s, 182 MB/s
JFFS2 image mounted to jffs2-root
在这一点上,因为我mtdchar在我的系统中没有看到任何驱动程序(基于 Ubuntu)。
我认为最好的方法是在 Qemu 中运行。我怎样才能做到这一点 ?