[Python-de] gzip-lib und "trailing garbage"
Sebastian Wiesner
lunaryorn at gmail.com
Sa Jan 26 17:19:27 CET 2013
Am 26. Januar 2013 17:31 schrieb Hartmut Goebel <h.goebel at goebel-consult.de>:
> Ich nehme mal an, dass die Binärdaten, die Du zu lesen versuchst,
> irgendeinem mehr oder weniger klar definierten Format unterliegen.
>
>
> Leider ist diese Annahme falsche -- es handelt sich um das vmlinux-Image für
> ARM.
Das ist ein *definiertes* Datenformat.
> Das wird direkt in den Speicher geladen und ausgeführt. Und irgendwo da
> drin steckt der gzipped Kernel. Davor ist Maschinen-Code und ggf. eine
> initrd.
Der komprimierte Kernel-Code befindet sich nicht „irgendwo“, sondern
an einer bestimmten Stelle im enthaltenen ELF-Objektcode. Eine initrd
sollte im vmlinux-Abbild eigentlich nicht enthalten sein.
Das Format ist augenscheinlich einfach zu parsen. So einfach
jedenfalls, dass es im Kernel-Quelltext unter /scripts/ ein
Shell-Script(!) namens extract-vmlinux [1] gibt, dass den Kernel-Code
aus dem Abbild extrahiert.
[1]: https://github.com/torvalds/linux/blob/master/scripts/extract-vmlinux
Mehr Informationen über die Mailingliste python-de