Lor*_*oh. 22 linux compression gzip linux-kernel 7-zip
我已经尝试过解压缩、gzip 和所有其他作为 google 结果出现的解决方案,但这些对我不起作用。
要仅获取 GZ 签名的图像搜索 -
1f 8b 08 00.Run Code Online (Sandbox Code Playgroud)> od -A d -t x1 vmlinuz | grep '1f 8b 08 00' 0024576 24 26 27 00 ae 21 16 00 1f 8b 08 00 7f 2f 6b 45所以图像开始于
24576+8 => 24584。然后只需从该点复制图像并解压缩它 -Run Code Online (Sandbox Code Playgroud)> dd if=vmlinuz bs=1 skip=24584 | zcat > vmlinux 1450414+0 records in 1450414+0 records out 1450414 bytes (1.5 MB) copied, 6.78127 s, 214 kB/s从在线论坛逐字获得这些说明:http : //www.codeguru.com/forum/showthread.php? t=415186
这个过程对我不起作用,最终会给出错误,指出文件未找到 0024576 和所有后续数字。
如何继续从 vmlinuz 中提取 vmlinux?
谢谢你。
编辑:这是一个逆向工程问题。我无法访问发行版来安装任何 RPM 或重新编译。我从 vmlinuz 开始。
小智 33
也许你误解了那篇文章的作者的意思。
该vmlinuz文件除了 gzip 压缩的内容之外还包含其他内容,因此您需要找出 gzip 压缩内容的开始位置。为此,请使用:
od -A d -t x1 vmlinuz | grep '1f 8b 08 00'
Run Code Online (Sandbox Code Playgroud)
这样做是为了向您展示在该文件中可以找到 gzip 标头的位置。输出看起来像:
0024576 24 26 27 00 ae 21 16 00 1f 8b 08 00 7f 2f 6b 45
Run Code Online (Sandbox Code Playgroud)
这意味着在文件中0024576(至少对于帖子的作者,你的可能在某个完全不同的地方)vmlinuz,你会发现二进制值“ 24 26 27 00 ae 21 16 00 1f 8b 08 00 7f 2f 6b 45”。您正在寻找1f 8b 08 00,它可以从字符 9 开始找到,或者在0024576 + 8(start count from 0) = 24584。
现在您知道 gzip 压缩的内容从哪里开始(在 position 24584),您可以使用它dd来提取 gzip 压缩的内容并将其解压缩。为此,请使用:
dd if=vmlinuz bs=1 skip=24584 | zcat > vmlinux
Run Code Online (Sandbox Code Playgroud)
第一个命令将寻找该位置并将所有内容复制到标准输出。zcat然后将解压缩它从标准输入获取的所有内容并将未压缩的字符串输出到标准输出。然后>将把zcat输出重定向到一个名为vmlinux.
| 归档时间: |
|
| 查看次数: |
50963 次 |
| 最近记录: |