如何解压缩目标文件?

时间:2010-08-03 10:23:41

标签: gcc kernel elf strip

如何解除剥离的目标文件?

elfutils的eu-unstrip可以为我做这个吗?

我需要这个来将zImage内核转换为vmlinux而不重新编译。

这是我的剧本之一:

magic="1f 8b 08 00"
full_line=$(od -A d -t x1 zImage | grep "$magic" )
offset_full_line=$( echo $full_line | cut -f1 -d" ")
data_full_line=$( echo $full_line | cut -f1 -d" " --complement )
index=$[ $( awk -v a="$data_full_line" -v b="$magic" 'BEGIN{print index(a,b)}' ) / 3 ]
offset=$[ 10#$offset_full_line + $index ]

dd if=zImage bs=1 skip=$offset 2>/dev/null | zcat > vmlinux

但是我的结果vmlinux有一个未知的格式,因为它不包含ELF头,所以我该如何恢复这些头?

1 个答案:

答案 0 :(得分:2)

你的问题毫无意义。如果目标文件已被剥离,那么显然信息不再存在。你无处可从中提取剥离的数据。