Manuel Ems
2006-06-05 18:55:51 UTC
Hallo,
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.
Beispiel:
40101f: 6a 40 push $0x40
401021: 68 00 20 40 00 push $0x402000
401026: 68 1c 20 40 00 push $0x40201c
40102b: 6a 00 push $0x0
40102d: e8 0e 00 00 00 call 401040 <***@16>
Zu beachten sind '$0x402000' und '$0x40201c' aus Zeile 2 und 3 aus
meinem Beispiel. Das was ich daran nicht verstehe ist dass die daten
auf die diese Adressen zeigen eigentlich an der Position 0x600 bzw.
0x61c in der Datei anzutreffen sind.
Ausserdem beginnt der Programmcode des Beispiels sich nicht an der
Position 0x40101f, sondern beginnt bei 0x41f.
Es liegt also auf der Hand dass es sich hierbei nicht um die Positionen
der Daten in der Datei handelt, sondern um etwas anderes.
Ist vllt. jemand in der lage mir zu erklaeren was diese Adressen zu
bedeute haben und wie sie sich nachvollziehen lassen?
lg, Manuel
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.
Beispiel:
40101f: 6a 40 push $0x40
401021: 68 00 20 40 00 push $0x402000
401026: 68 1c 20 40 00 push $0x40201c
40102b: 6a 00 push $0x0
40102d: e8 0e 00 00 00 call 401040 <***@16>
Zu beachten sind '$0x402000' und '$0x40201c' aus Zeile 2 und 3 aus
meinem Beispiel. Das was ich daran nicht verstehe ist dass die daten
auf die diese Adressen zeigen eigentlich an der Position 0x600 bzw.
0x61c in der Datei anzutreffen sind.
Ausserdem beginnt der Programmcode des Beispiels sich nicht an der
Position 0x40101f, sondern beginnt bei 0x41f.
Es liegt also auf der Hand dass es sich hierbei nicht um die Positionen
der Daten in der Datei handelt, sondern um etwas anderes.
Ist vllt. jemand in der lage mir zu erklaeren was diese Adressen zu
bedeute haben und wie sie sich nachvollziehen lassen?
lg, Manuel
--
Wer den Kopf in den Sand steckt, darf sich nicht wundern
wenn er in den Hintern getreten wird.
Wer den Kopf in den Sand steckt, darf sich nicht wundern
wenn er in den Hintern getreten wird.