【发布时间】:2017-06-22 04:31:12
【问题描述】:
我正在尝试解压缩 zImage。我有一个从闪存芯片中转储的固件二进制文件。用 binwalk 分析得到如下结果:
$ binwalk flash_dump.bin
DECIMAL HEXADECIMAL DESCRIPTION
--------------------------------------------------------------------------------
352832 0x56240 Linux kernel ARM boot executable zImage (big-endian)
10617408 0xA20240 Linux kernel ARM boot executable zImage (big-endian)
10630468 0xA23544 device tree image (dtb)
我尝试分离第一个 Linux zImage:
$ dd if=flash_dump.bin of=zImage bs=1 skip=352832 count=10264576
10264576+0 records in
10264576+0 records out
10264576 bytes (10 MB, 9.8 MiB) copied, 13.7267 s, 748 kB/s
确保它仍然是 zImage:
$ file zImage
zImage: Linux kernel ARM boot executable zImage (big-endian)
搜索 gZip 标头:
$ arm-none-eabi-objdump -EB -b binary -D -m armv5t zImage | grep 8b1f
15e4c: b81c8b1f ldmdalt ip, {r0, r1, r2, r3, r4, r8, r9, fp, pc}
401f8: 0b3d2bfe bleq 0xf8b1f8
我似乎找不到 gZip 标头。
如何解压缩 zImage?我想通过IDA Pro之类的反汇编程序来查看。
【问题讨论】:
-
你怎么知道没找到?
标签: linux-kernel reverse-engineering compression disassembly firmware