Как распаковать объектный файл?

Как распаковать удаленный объектный файл?

Может ли eu-unstrip от elfutils сделать это для меня?

Мне это нужно для преобразования ядра 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, так как я могу восстановить эти заголовки?


person Zskdan    schedule 03.08.2010    source источник


Ответы (1)


Ваш вопрос не имеет смысла. Если объектный файл был удален, очевидно, что информации больше нет. Вам неоткуда извлечь удаленные данные.

person Nathan Fellman    schedule 03.08.2010
comment
Это может иметь смысл. Заголовок ELF, на который он ссылается, вероятно, просто волшебство для его загрузки, а не для поиска символов. - person synthesizerpatel; 12.05.2011