Manuel Ems schrieb:
> [...]
> Gerade habe ich eines meiner Programme Disassembliert mit dem
> 'objdump' (gnu) und mir fiel etwas auf was fuer mich nicht
> nachvollziehbar ist:
>
> Die Adressen fuer Daten oder Sprungziele entsprechen nicht dem
> offset der Ausfuehrbaren Datei.
Diese Entsprechung gibt es selbst bei den einfachsten Executable-
Formaten nicht. COM-Programme unter DOS werden z.B. an den Offset
256 geladen, d.h. man muss alle Adressangaben innerhalb der Datei
um den Wert korrigieren.
> [...]
> Ist vllt. jemand in der lage mir zu erklaeren was diese Adressen zu
> bedeute haben und wie sie sich nachvollziehen lassen?
Auf modernen Systemen wie Linux werden die einzelnen Segmente eines
Programms (so wie die aller beteiligten Shared Libraries) per mmap(2)
an virtuelle Adressen eingeblendet.
http://www.muppetlabs.com/~breadbox/software/ELF.txt
--
Ich kenne die Mißverständnisse-FAQ, und sie wird oft mißverstanden.
-- Andreas M. Kirchwitz <slrne144uq.gdg.amk@krell.zikzak.de>