Mach-O-symbol stubs (IOS)

Ich versuche zu verstehen, wie Mach-o-Dateien arbeiten und ein gutes Geschäft gemacht haben Fortschritte mit den verfügbaren online-Ressourcen (insbesondere der Apple-Seite hier: http://developer.apple.com/library/mac/#documentation/developertools/conceptual/MachORuntime/Reference/reference.html), aber ich traf eine Straßensperre auf das Verständnis, wie symbol stubs arbeiten.

Mit "otool -l" sehe ich den folgenden Abschnitt:

Section
  sectname __symbolstub1
   segname __TEXT
      addr 0x00005fc0
      size 0x00000040
    offset 20416
     align 2^2 (4)
    reloff 0
    nreloc 0
     flags 0x80000408

Aber wenn ich mir die Daten aus der Binär-Datei in einem hex-editor sehe ich die folgenden 4 bytes wiederholte wieder und wieder:

00005FC0  38 F0 9F E5 38 F0 9F E5  38 F0 9F E5 38 F0 9F E5  88
00005FD0  38 F0 9F E5 38 F0 9F E5  38 F0 9F E5 38 F0 9F E5  88
00005FE0  38 F0 9F E5 38 F0 9F E5  38 F0 9F E5 38 F0 9F E5  88  
00005FF0  38 F0 9F E5 38 F0 9F E5  38 F0 9F E5 38 F0 9F E5  88

Diese sieht etwas wie ein LDR erhöht PC um einen festen Betrag, aber ich sehe nicht ein, warum die Menge ist die gleiche für jeden Eintrag in der Symboltabelle.

Wenn jemand kann Licht auf, warum dies so ist, oder geben Sie keine Ressourcen, die erhalten diesem niedrigen Niveau, lassen Sie es mich bitte wissen.

Dank!

  • Ich denke, ich habe herausgefunden, was Los ist, jedes der 4-byte-Einträge in der Tabelle verweist auf einen Datenbereich unten, die hat eine DCD-Anweisung speichert die Position des Funktionsaufrufs. Aber ich bin noch ein bisschen verwirrt, warum diese zusätzliche Ebene der Dereferenzierung erforderlich ist, also wenn jemand das " follow info, ich würde es zu schätzen wissen.
InformationsquelleAutor Locksleyu | 2012-01-11
Schreibe einen Kommentar