HINWEIS: Die folgenden Anweisungen gelten für Python3.
Wenn Sie Flashmingo auf Python2.7 installieren müssen, können Sie die Release 1.0 unter der Registerkarte "Releases" überprüfen. Die Installationsschritte sind im Wesentlichen gleich.
Installieren Sie die in requirements.txt aufgeführten Python3 -Pakete.txt.
Sie können den folgenden Befehl verwenden: pip3 install -r requirements.txt
Wenn Sie die Dekompilierungsfunktionen verwenden möchten, müssen Sie Jython installieren. Ubuntu/Debian -Benutzer können apt install jython ausstellen
Klonen Sie das Projekt oder laden Sie die ZIP -Datei herunter.
Flashenmingo ist ein Analyse -Framework für SWF -Dateien. Das Tool trifft automatisch verdächtige Flash -Dateien und führt den weiteren Analyseprozess, wodurch wertvolle Ressourcen in Ihrem Team befreit werden. Sie können die Analysemodule von FlasheMingos leicht in Ihren Workflow einbeziehen.
Bis heute müssen forensische Ermittler und Malware -Analysten mit verdächtigen SWF -Dateien zu tun. Wenn sich die Geschichte wiederholt, kann die Sicherheitsbedrohung über das Lebensende von Flash im Jahr 2020 sogar noch größer werden. Systeme werden weiterhin ein Legacy -Dateiformat unterstützen, das nicht mehr mit Sicherheitspatches aktualisiert wird. Automatisierung ist der beste Weg, um mit diesem Problem umzugehen, und hier kann Flashmingo Ihnen helfen. Flashenmingo ist ein Analyse -Framework, mit dem SWF -Dateien automatisch verarbeitet werden können, mit dem Sie verdächtige Flash -Beispiele markieren und mit minimalem Aufwand analysieren können. Es ist in verschiedene Analyse-Workflows als eigenständige Anwendung oder eine leistungsstarke Bibliothek integriert. Benutzer können die Funktionalität des Tools einfach über benutzerdefinierte Python -Plugins erweitern.
Flashmingo ist im Sinn. Es liest eine SWF -Datei und erstellt ein Objekt ( SWFObject ), das seinen Inhalt und seine Struktur darstellt. Danach führt Flashmingo eine Reihe von Plugins aus, die auf dieses SWFObject einwirken und ihre Werte an das Hauptprogramm zurückgeben.
Unterhalb eines obligatorischen ASCII -Kunstflussdiagramms:
+----------+
| |
+------------+----------->+ PLUGIN 1 +------------+
| | | | |
| | +----------+ |
| | |
| | +----------+ |
| | | | |
+---------+ | +----------->+ PLUGIN 2 +--------+ |
|SWF FILE +----------->+ FLASHMINGO | | | | |
+---------+ | | +----------+ | |
| | | |
| | | |
| | | |
| | +-----v---v-+
| | | |
| | | |
+-----+------+------------------------->+ SWFOBJECT |
^ | |
| | |
| +-----+-----+
| |
| |
| |
+---------------------------------------+
Wenn Sie Flashmingo als Bibliothek in Ihren eigenen Projekten verwenden, müssen Sie sich nur um zwei Objekte kümmern:
SWFObject (en), die die Probe (en) darstellenFlashmingo -Objekt. Dies wirkt im Wesentlichen als Kabelbaumverbindungs -Plugins und SWFObject (en). Flashmingo -Plugins werden in ihren eigenen Verzeichnissen unter ... Sie haben es erraten: plugins Wenn ein Flashmingo -Objekt instanziiert ist, durchläuft es dieses Verzeichnis und verarbeitet alle Manifesten aller Plugins. Sollte dies darauf hinweisen, dass das Plugin aktiv ist, ist dies für die spätere Verwendung registriert. Auf der Codeebene bedeutet dies, dass der plugins -Liste ein kleines plugin_info -Wörterbuch hinzugefügt wird.
Plugins werden über die run_plugin -API mit zwei Argumenten aufgerufen:
SWFObject -Instanz Optional können Sie die meisten Plugins mit Ihren eigenen Benutzerdaten übergeben. Dies ist Plugin -abhängig (Lesen Sie die Dokumentation) und kann mit einem Beispiel leichter erklärt werden. Das Standard-Plugin SuspiciousNames wird alle konstanten Pools nach Zeichenfolgen mit verdächtigen Substrings durchsucht (z. B. "Überlauf", "Spray", "Shell" usw.). Es gibt eine Liste der gängigen Substrings, die bereits im Plugin fest codiert sind, damit es as-is verwendet werden kann. In diesem Fall können Sie jedoch eine Liste Ihrer eigenen definierten Substrings über den Parameter names übergeben.
Codebeispiel:
fm = Flashmingo ()
print fm . run_plugin ( 'DangerousAPIs' , swf = swf )
print fm . run_plugin ( 'SuspiciousNames' , swf = swf , names = [ 'spooky' ])Flashenmingo wird mit einigen nützlichen Plugins aus der Box geliefert:
Für eine einfache Entwicklung wird ein Vorlagen -Plugin bereitgestellt. Das Ausdehnen von Flashmingo ist ziemlich einfach. Befolgen Sie diese einfachen Schritte:
run -MethodeDu bist bereit zu gehen :)
docs -Verzeichnis für autogenerierte Dokumentation $ pip install sphinxcontrib-napoleon
Aktivieren Sie nach dem Einrichten von Sphinx, um Ihre Dokumente zu erstellen, Napoleon in der Sphinx Conf.py -Datei:
Fügen Sie in conf.py Napoleon zur Liste der Erweiterungen hinzu
extensions = ['sphinxcontrib.napoleon']
Verwenden Sie Sphinx-apidoc, um Ihre API-Dokumentation zu erstellen:
$ sphinx-apidoc -f -o docs/source projectdir
Dies erstellt .rst -Dateien, damit Sphinx verarbeitet wird
$ make html
Das war's! :)