gpt4 book ai didi

bash - 从 vmlinuz 或 bzImage 中提取 vmlinux

转载 作者:行者123 更新时间:2023-11-29 08:47:06 29 4
gpt4 key购买 nike

我想从 vmlinuz 生成 System.map,因为大多数机器没有文件 System.map。实际上,vmlinuz 被压缩到 vmlinuz 或 bzImage。

有什么工具或脚本可以做到这一点?

我试过:

dd if=/boot/vmlinuz skip=`grep -a -b -o -m 1 -e $'\x1f\x8b\x08\x00' /boot/vmlinuz | cut -d: -f 1` bs=1 | zcat > /tmp/vmlinux

失败了:

zcat: stdin: not in gzip format
32769+0 records in
32768+0 records out

最佳答案

要从内核镜像中提取未压缩的内核,您可以使用 extract-vmlinux来自 scripts 的脚本内核树中的目录(至少在内核版本 3.5 中可用)(如果出现类似

的错误

mktemp: Cannot create temp file /tmp/vmlinux-XXX: Invalid argument

你需要替换$(mktemp /tmp/vmlinux-XXX)通过 $(mktemp /tmp/vmlinux-XXXXXX)在脚本中)。命令是/path/to/kernel/tree/scripts/extract-vmlinux <kernel image> >vmlinux .

如果提取的内核二进制文件包含符号信息,您应该能够创建 System.map使用 mksysmap 的文件来自同一子目录的脚本。这里的命令是NM=nm /path/to/kernel/tree/scripts/mksysmap vmlinux System.map .

¹ 我的发行版随附的内核镜像似乎已被删除,因此脚本无法获取符号。

关于bash - 从 vmlinuz 或 bzImage 中提取 vmlinux,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12002315/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com