Das Pharos statische Binäranalyse -Framework ist ein Projekt des Software Engineering Institute der Carnegie Mellon University. Das Framework soll die automatisierte Analyse von Binärprogrammen erleichtern. Es verwendet die von Lawrence Livermore National Laboratory für Demontage, Kontrollflussanalyse, Unterrichtssemantik und vieles mehr entwickelte Rose Compiler -Infrastruktur. Diese Software wird unter einer BSD -Lizenz veröffentlicht.
Die aktuelle Verteilung ist eine wesentliche Aktualisierung der Vorgängerversion und fügt eine Vielzahl von Funktionen hinzu, einschließlich Verbesserungen des Ooanalyzer-Tools, dem Code für experimentelle Pfadanalyse, Partitikerverbesserungen, Multi-Threading und vielen anderen kleineren Funktionen.
Das Pharos -Framework ist ein Forschungsprojekt, und der Code wird aktiv entwickelt. Es werden keine Garantien für Fitness für einen Zweck bereitgestellt. Während diese Version Build -Anweisungen, Unit -Tests und einige Dokumentationen enthält, bleibt noch viel Arbeit zu erledigen. Wir haben einige ausgewählte Build -Konfigurationen getestet, aber die Portabilität des Quellcodes nicht aktiv getestet. Weitere Informationen finden Sie in den Installationsanweisungen.
Da das Hauptziel für die Veröffentlichung dieses Codes darin besteht, Transparenz in unsere Forschung zu liefern und das Gespräch mit anderen binären statischen Analyseforschern zu stimulieren, wenden Sie sich bitte an Cory Cohen [email protected] mit Fragen, die Sie möglicherweise zu dieser Arbeit haben. Ich kann vielleicht nicht rechtzeitig antworten, aber ich werde mein Bestes geben.
Apianalyzer ist ein Instrument zum Auffinden von Sequenzen von API -Aufrufen mit den angegebenen Daten- und Kontrollbeziehungen. Diese Fähigkeit soll verwendet werden, um gemeinsame Paradigmen für Betriebssystem -Interaktion wie das Öffnen einer Datei, das Schreiben und das Schließen zu erkennen.
Ooanalyzer ist ein Werkzeug für die Analyse und Wiederherstellung objektorientierter Konstrukte. Dieses Tool war Gegenstand eines Papiers mit dem Titel "Verwenden der Logikprogrammierung zur Wiederherstellung von C ++ - Klassen und Methoden aus kompilierten ausführbaren Funktionen", das 2018 auf der ACM -Konferenz über Computer- und Kommunikationssicherheit veröffentlicht wurde. Das Tool identifiziert Objektmitglieder und Methoden, indem Objektzeiger zwischen Funktionen im Programm verfolgt werden. Eine frühere Implementierung dieses Tools wurde als "ObjDigger" bezeichnet, aber es wurde umbenannt, um eine wesentliche Neugestaltung unter Verwendung von Prolog -Regeln zur Wiederherstellung der Objektattribute widerzuspiegeln. Die aktuelle Version des Tools unterstützt nur die Analyse von 32-Bit-X86-Executables, die von Microsoft Visual C ++ zusammengestellt wurden. Weitere detailliertere Aussagen, wie Sie Ooanalyzer auf sehr großen ausführbaren Ausführungen betreiben können, finden Sie in diesen Notizen.
Die Pharos -Verteilung enthielt ein Plugin, das OO -Informationen importierte, die von Ooanalayzer in den Ghidra Reverse Engineering -Toolssatz exportiert wurden. Um diese Funktionalität jetzt und in Zukunft zu erhalten, installieren Sie das Kaiju Ghidra -Plugin, das die Funktionalität des Ooanalayzer -Plugins enthält.
Callanalyzer ist ein Instrument zur Berichterstattung über die statischen Parameter für API -Aufrufe in einem binären Programm. Es ist größtenteils eine Demonstration unserer aktuellen Aufrufkonventions-, Parameteranalyse- und Typ -Erkennungsfunktionen, obwohl es auch eine nützliche Analyse des Codes in einem Programm bietet.
FN2YARA ist ein Werkzeug, um Yara -Signaturen für die Übereinstimmung von Funktionen in einem ausführbaren Programm zu generieren. Programme, die eine erhebliche Anzahl von Funktionen teilen, haben wahrscheinlich ein gemeinsames Verhalten.
FN2HASH ist das Werkzeug, um eine Vielzahl von Hashes und anderen deskriptiven Eigenschaften für Funktionen in einem ausführbaren Programm zu generieren. Wie FN2yara kann es verwendet werden, um die Analyse der binären Ähnlichkeit zu unterstützen oder Merkmale für Algorithmen für maschinelles Lernen bereitzustellen.
Dumpmasm ist ein Werkzeug, mit dem die Belastungen von Demontage aus einer ausführbaren Datei mit dem Pharos -Framework im gleichen Stil wie die anderen Tools ausgestattet sind. Es wurde nicht aktiv aufrechterhalten, und Sie sollten in Betracht ziehen, die Standard -Recursive -Assemble von Rose zu verwenden.