我有一个供应商未提供源代码的内核。它是压缩过的内核。序列数据部分从哪里开始?我试图找到魔术数字(1f 8b),并将其复制到gzip文件中,但我无法在7zip中解码。
我有一个供应商未提供源代码的内核。它是压缩过的内核。序列数据部分从哪里开始?我试图找到魔术数字(1f 8b),并将其复制到gzip文件中,但我无法在7zip中解码。
gzip
/zcat
的工具。$ mkdir -p /tmp/kernel-uncompressed/; cd /tmp/kernel-uncompressed/
$ f="vmlinuz-`uname -r`" # e.g. "vmlinuz-2.6.18-128.el5.uvm6PAE"
$ cp /boot/$f .
$ od -t x1 -A d $f | grep "1f 8b 08"
0008320 1b 00 1f 8b 08 00 d5 c2 9a 49 02 03 ec 3b 7d 7c
$ offset=8322 # Where the gzip marker starts, based on the above output.
$ dd bs=1 skip=$offset if=$f | zcat > vmlinux
gzip: stdin has flags 0x85 -- not supported
。看起来是因为它不是一个gzip文件。file
的输出显示为bzImage
,所以我猜它使用bzip2。 - wjandreascripts/extract-vmlinux
比手动操作更好。 - wjandrea