
IDA Python Plugin zur schnellen, positionsgesteuerten Zuordnung von Open-Source-Bibliothekssymbolen in Binärdateien, das effizientes Reverse Engineering und Schwachstellenanalyse von großer Firmware und Malware ermöglicht.
/$$ /$$ /$$
| $$ /$$/ | $$
| $$ /$$/ /$$$$$$ /$$$$$$ /$$$$$$ /$$$$$$
| $$$$$$/ |____ $$ /$$__ $$|_ $$_/ |____ $$
| $$ $$ /$$$$$$$| $$ \__/ | $$ /$$$$$$$
| $$\ $$ /$$__ $$| $$ | $$ /$$ /$$__ $$
| $$ \ $$| $$$$$$$| $$ | $$$$/| $$$$$$$
|__/ \__/ \_______/|__/ \___/ \_______/
„Karta“ (Russisch für „Karte“) ist ein IDA Python Plugin, das Open-Source-Bibliotheken in einer gegebenen Binärdatei identifiziert und abgleicht. Das Plugin verwendet eine einzigartige Technik, die es ermöglicht, riesige Binärdateien (>200.000 Funktionen) zu unterstützen, nahezu ohne Auswirkung auf die Gesamtleistung.
Der Abgleichsalgorithmus ist ortgesteuert (location-driven). Das bedeutet, dass sein Hauptfokus darauf liegt, die verschiedenen kompilierten Dateien zu lokalisieren und jede Funktion der Datei basierend auf ihrer ursprünglichen Reihenfolge innerhalb der Datei abzugleichen. Auf diese Weise hängt der Abgleich von K (Anzahl der Funktionen in der Open Source) ab, anstatt von N (Größe der Binärdatei), was einen erheblichen Leistungsschub bringt, da normalerweise N >> K.
Wir glauben, dass es drei Hauptanwendungsfälle für dieses IDA Plugin gibt:
Für die neuesten Versionen mit Python 3 klonen Sie einfach das Repository und führen Sie das Skript setup.py install aus.
Python 3 wird ab Version v2.0.0 unterstützt.
Seit der Veröffentlichung von IDA 7.4 wird Karta nur noch aktiv für IDA 7.4 oder neuer und Python 3 entwickelt. Python 2 und ältere IDA-Versionen werden weiterhin mit der Release-Version v1.2.0 unterstützt, die aufgrund des Endes der Lebensdauer von Python 2.X höchstwahrscheinlich die letzte unterstützte Version sein wird.
Kartas Identifier ist ein kleineres Plugin, das das Vorhandensein und die Versionen der vorhandenen (unterstützten) Open-Source-Bibliotheken in der Binärdatei identifiziert und deren Fingerabdruck erstellt. Keine Notwendigkeit mehr, dieselbe Open-Source-Bibliothek immer wieder zu reverse engineering zu müssen; führen Sie einfach das Identifier-Plugin aus und erhalten Sie eine detaillierte Liste der verwendeten Open-Source-Bibliotheken. Karta unterstützt derzeit mehr als 10 Open-Source-Bibliotheken, darunter:
Nachdem die verwendeten Open Source identifiziert wurden, kann man eine .JSON-Konfigurationsdatei für eine bestimmte Bibliothek (z.B. libpng Version 1.2.29) erstellen. Nach der Erstellung wird Karta automatisch versuchen, die Funktionen (Symbole) der Open Source in der geladenen Binärdatei abzugleichen. Darüber hinaus, falls Ihre Open Source externe Funktionen verwendet (memcpy, fread oder zlib_inflate), wird Karta auch versuchen, diese externen Funktionen abzugleichen.
Dieses Projekt wurde von mir (siehe Kontaktdaten unten) mit Hilfe und Unterstützung meiner Forschungsgruppe bei Check Point (Check Point Research) entwickelt.
Dieses Repository wurde von mir, Eyal Itkin, während meiner Zeit bei Check Point Research entwickelt und gepflegt. Leider werde ich nach meinem Ausscheiden aus der Forschungsgruppe nicht mehr in der Lage sein, dieses Repository zu pflegen. Dies liegt hauptsächlich an der langen Liste von Anforderungen für die Durchführung aller Regressionstests und an den IDA Pro-Versionen, die in den Prozess involviert sind.
Bitte nehmen Sie meine aufrichtige Entschuldigung an.