有没有一种很好的方法可以从压缩的内核映像中提取uname所提供的相同信息?我希望这能够检查嵌入式Linux系统上休眠mtd内核的狗标签,并将其与当前运行的内核进行比较。从压缩的内核映像中获取uname信息
7
A
回答
10
对于用gzip压缩Linux映像,使用:
dd if=arch/arm/boot/zImage bs=1 skip=$(LC_ALL=C grep -a -b -o $'\x1f\x8b\x08\x00\x00\x00\x00\x00' arch/arm/boot/zImage | cut -d ':' -f 1) | zcat | grep -a 'Linux version'
对于XZ压缩Linux映像,使用:
dd if=arch/arm/boot/zImage bs=1 skip=$(LC_ALL=C grep -a -b -o $'\xFD\x37\x7A\x58\x5A\x00' arch/arm/boot/zImage | head -n 1 | cut -d ':' -f 1) | xzcat | grep -a 'Linux version'
因为图像文件包含数据压缩结束后流,你会得到一个你可以忽略的错误。
的字符串常量似乎是冻结的用户空间可见的内核API的一部分:
http://git.kernel.org/?p=linux/kernel/git/torvalds/linux.git;a=blob;f=init/version.c;hb=HEAD#l40
3
$ mkimage生成-l的uImage
Image Name: Linux-2.6.39
Created: Wed Jun 6 13:49:58 2012
Image Type: ARM Linux Kernel Image (uncompressed)
Data Size: 3091036 Bytes = 3018.59 kB = 2.95 MB
Load Address: 80008000
Entry Point: 80008000
+1
适用于zImage也 – chrisvarnz 2014-03-10 14:36:13
+0
进入'u-boot-tools' – sanmai 2017-06-29 11:22:13
相关问题
- 1. 从Linux内核映像获取配置
- 2. 如何解压缩压缩的内核
- 3. 如何通过uname_hack获取uname正确的信息
- 4. 如何从图像中获取信息?
- 5. 从图形图像中获取信息
- 6. 如何从内核获取页面错误统计信息
- 7. 解压缩文件夹并从解压缩文件中获取图像
- 8. Android:从图像获取缩略图信息
- 9. 获取未压缩的图像大小
- 10. 从压缩文件中获取图像的高度和宽度
- 11. 压缩映像时C#中的内存泄漏
- 12. 如何在Linux内核模块中获取CPU信息?
- 13. 从julia获取系统内存信息
- 14. 如何从内存映像获取流?
- 15. 如何从内核映像文件中提取配置
- 16. 如何从Silverlight中的图像获取像素ARGB信息?
- 17. Qt的QProcess中获取内存信息
- 18. 使用lz4进行C++压缩,压缩信息不如预期
- 19. 从matlab中的图像中的任何对象获取信息
- 20. 信号压缩
- 21. 短信压缩
- 22. 从内存中获取字节数组时的内存压缩异常
- 23. 从.xml获取信息
- 24. 从privatevoid获取信息
- 25. 获取信息从PHP
- 26. 从按钮获取信息
- 27. 从restfb获取信息
- 28. jQuery从url获取信息
- 29. 从“QWidget”获取信息
- 30. 从网页获取信息
不为我工作。也无法在引用的URL或version.c的历史记录中找到字符串常量。 'file'显示:kernel/zImage:Linux内核ARM启动可执行文件zImage(little-endian) – 2016-10-20 11:06:17
字符串常量在那里:http://git.kernel.org/cgit/linux/kernel/git/torvalds/linux.git /tree/init/version.c?id=HEAD#n47 – 2016-10-20 16:49:37
@Daniel Alder你的图片使用了什么样的压缩? – 2016-10-20 16:51:15