2008年8月26日星期二

如何解压缩vmlinuz内核文件

vmlinuz文件是经过gzip压缩的并且在文件的前端,添加了精简过的解压缩代码。如何能将该文件解压缩呢?

从http://felinemenace.org/~andrewg/MikroTik_Router_Security_Analysis_Part2/找到方法:

首先我们看一下普通gzip文件的特征:

root@showrun-laptop:/boot# xxd memtest86+.bin.gz |head -5
0000000: 1f8b 0808 33d2 fc46 0003 6d65 6d74 6573 ….3..F..memtes
0000010: 7438 362b 2e62 696e 00ec bd0b 5c54 65fe t86+.bin….\Te.
0000020: 3f7e 6618 60c0 d119 158d 8c72 aab1 3051 ?~f.`……r..0Q
0000030: 0744 05a5 1c11 110b 6d44 044a 4d48 4040 .D……mD.JMH@@
0000040: 5416 66bc b4a4 4307 d2e3 3866 abb5 b5eb T.f…C…8f….
我们就在linuz文件中查找1f8b

#xxd vmlinuz-2.6.22-14-generic |egrep “\b1f8b” | head -n 5

0002080: 1a00 1f8b 0800 f44d b147 0203 ec5a 7b70 …….M.G…Z{p
000bd40: 57a0 5d3a 7f13 1f8b 275e 6515 0db3 d12e W.]:….’^e…..
0015380: 84c6 e1e3 5864 3b42 0030 1f8b 713f 0295 ….Xd;B.0..q?..
0023f70: dd6a cd42 58e2 1f8b 5fa1 6ec5 9cfe f937 .j.BX…_.n….7
0027100: 5ffc c09d 1d7a b291 1f8b fe6d a2c9 0bfc _….z…..m….

计算位置为:2080+2

#dd if=vmlinuz-2.6.22-14-generic of=vmlinuz.gz bs=1 skip=$((0×2082))

#gunzip vmlinuz.gz

能够正常解压缩

没有评论: