Disassemblerobjekte
Zusammenfassung
Disassemblerobjekte ermöglichen das Disassemblieren von Code für eine bestimmte Architektur.
Objektmethoden
Name | Rückgabetyp | Signatur | BESCHREIBUNG |
---|---|---|---|
DisassembleBlocks | Sammlung des Basisblocks | DisassembleBlocks(address) | Startet die Disassemblierung an der Adresse und gibt eine Sammlung von Grundlegenden Blöcken zurück. Die Disassemblierung erfolgt hier linear von der Adresse auf Anweisungsbasis. Da dadurch keine vollständige Flussanalyse einer Funktion durchgeführt wird, ist es durchaus möglich, dass es Sprünge in die Mitte der Blöcke gibt, die von dieser Methode zurückgegeben werden. Von jedem gibt es nur einen einzigen Ausgangspunkt; Jedoch. |
DisassembleInstructions | Sammlung von Anweisungen | DisassembleInstructions(address) | Startet die Disassemblierung an der Adresse. |
DisassembleFunction | Sammlung des Basisblocks | DisassembleFunction(address) | Wenn eine Funktion bei der Adresse beginnt, wird eine vollständige Flussanalyse der Funktion durchgeführt. Das Ergebnis ist eine Sammlung von Basisblöcken mit einem Einstiegspunkt und einem Ausgangspunkt. |
GetRegister | register | GetRegister(regId) | Gibt ein Registerobjekt aus der angegebenen Register-ID zurück. |
Bemerkungen
Der hier bereitgestellte Disassembler verfügt über eine deutlich bessere Disassemblierungsausgabe, wenn vollständige symbolische Informationen für die disassemblierte Funktion vorhanden sind (z. B. wird die Adress- und Operandengröße verwendet, um zu bestimmen, welches Feld einer Struktur/Union berührt wird).
Ein gegebener instance eines Disassemblers kann eine erhebliche Menge an Daten zwischenspeichern, um eine bessere Benutzererfahrung zu gewährleisten.