固件分析笔记

Android 设备

~/d$ file system.img
system.img: Android sparse image, version: 1.0, Total of 524288 4096-byte output blocks in 2184 input chunks.
~/d$ simg2img system.img system.raw
~/d$ mount -t ext4 -o loop system.raw system/

firmadyne 工具使用说明:

github: firmadyne 使用方法见 README 和 这篇文章 基于linux嵌入式固件动态分析-FIRMADYNE 但是在我的 debian 上运行

sudo ./scripts/makeImage.sh 1

报错,busybox 由于chroot 后无法找到链接库不能正常运行,解决办法:

for i in `ldd busybox`;do echo $i;done |grep -v = |grep -v 0x |grep /|xargs ls -l

拷贝到${IMAGE_DIR}后解决,根据 ldd 的结果,添加进 makeImage.sh

mkdir "${IMAGE_DIR}/lib64"
mkdir "${IMAGE_DIR}/lib/x86_64-linux-gnu"
cp /lib/x86_64-linux-gnu/ld-2.19.so "${IMAGE_DIR}/lib/x86_64-linux-gnu/"
ln "${IMAGE_DIR}/lib/x86_64-linux-gnu/ld-2.19.so" "${IMAGE_DIR}/lib64/ld-linux-x86-64.so.2"
cp /lib/x86_64-linux-gnu/libc-2.19.so "${IMAGE_DIR}/lib/x86_64-linux-gnu/libc-2.19.so"
ln "${IMAGE_DIR}/lib/x86_64-linux-gnu/libc-2.19.so" "${IMAGE_DIR}/lib/x86_64-linux-gnu/libc.so.6"

杂项记录

对于 SquashFS 中如果出现:

00000000: 6873 7174 a906 0000 0000 0000 0000 0000  hsqt............

unsquashfs命令不能正常提取,需要 patch squashfs tools。

需要使用的工具: sasquatch

案例固件: RT firmware for Netgear R6400 Based on Revision 27261

对于这个问题的文章: netgear-unsquashfs-c-version-1-3

Extract SquashFS filesystem with shsq magic number

unsquashfs fails

How to build squashfs tools on Mac OS X