Remarque: Les instructions suivantes sont pour Python3.
Si vous avez besoin d'installer Flashmingo sur Python2.7, vous pouvez vérifier la version 1.0 sous l'onglet des versions . Les étapes d'installation sont essentiellement les mêmes.
Installez les packages Python3 répertoriés dans requirements.txt .
Vous pouvez utiliser la commande suivante: pip3 install -r requirements.txt
Si vous souhaitez utiliser la fonctionnalité de décompilation, vous devez installer Jython. Les utilisateurs d'Ubuntu / Debian peuvent émettre apt install jython
Clone le projet ou téléchargez le fichier zip.
FlashMingo est un cadre d'analyse pour les fichiers SWF. L'outil triage automatiquement les fichiers flash suspects et guide le processus d'analyse plus approfondi, libérant des ressources précieuses dans votre équipe. Vous pouvez facilement intégrer les modules d'analyse de Flashmingo dans votre flux de travail.
À ce jour, les enquêteurs médico-légaux et les analystes de logiciels malveillants doivent faire face aux fichiers SWF suspects. Si l'histoire se répète, la menace de sécurité peut même devenir plus grande au-delà de la fin de vie de Flash en 2020. Les systèmes continueront de prendre en charge un format de fichier hérité qui ne sera plus mis à jour avec des correctifs de sécurité. L'automatisation est le meilleur moyen de traiter ce problème et c'est là que Flashmingo peut vous aider. FlashMingo est un cadre d'analyse pour traiter automatiquement les fichiers SWF qui vous permet d'inclater des échantillons de flash suspects et de les analyser avec un minimum d'effort. Il s'intègre dans divers flux de travail d'analyse en tant qu'application autonome ou une bibliothèque puissante. Les utilisateurs peuvent facilement étendre les fonctionnalités de l'outil via des plugins Python personnalisés.
Flashmingo est conçu avec une simplicité à l'esprit. Il lit un fichier SWF et crée un objet ( SWFObject ) représentant son contenu et sa structure. Ensuite, Flashmingo exécute une série de plugins agissant sur ce SWFObject et renvoyant leurs valeurs au programme principal.
Sous un diagramme de flux d'art ASCII obligatoire:
+----------+
| |
+------------+----------->+ PLUGIN 1 +------------+
| | | | |
| | +----------+ |
| | |
| | +----------+ |
| | | | |
+---------+ | +----------->+ PLUGIN 2 +--------+ |
|SWF FILE +----------->+ FLASHMINGO | | | | |
+---------+ | | +----------+ | |
| | | |
| | | |
| | | |
| | +-----v---v-+
| | | |
| | | |
+-----+------+------------------------->+ SWFOBJECT |
^ | |
| | |
| +-----+-----+
| |
| |
| |
+---------------------------------------+
Lorsque vous utilisez Flashmingo comme bibliothèque dans vos propres projets, il vous suffit de prendre soin de deux types d'objets:
SWFObject (s), représentant le (s) échantillon (s)Flashmingo . Cela agit essentiellement comme un harnais de connexion des plugins et SWFObject (s). Les plugins FlashMingo sont stockés dans leurs propres répertoires sous ... Vous l'avez deviné: plugins Lorsqu'un objet Flashmingo est instancié, il passe par ce répertoire et traite tous les manifestes de tous les plugins. Si cela indique que le plugin est actif, il est enregistré pour une utilisation ultérieure. Au niveau du code, cela signifie qu'un petit dictionnaire plugin_info est ajouté à la liste plugins .
Les plugins sont invoqués via l'API run_plugin avec deux arguments:
SWFObject Facultativement, la plupart des plugins vous permettent de transmettre vos propres données utilisateur . Il s'agit d'un plugin (lire la documentation) et il peut être plus facilement expliqué avec un exemple. Le plugin par défaut SuspiciousNames recherchera tous les pools constants pour les chaînes contenant des sous-chaînes suspectes (par exemple: «débordement», «pulvérisation», «shell», etc.) Il existe une liste de sous-chaînes courantes déjà codées durs dans le plugin afin qu'elle puisse être utilisée as-is Cependant, vous pouvez transmettre une liste de vos propres sous-chaînes définies, dans ce cas via le paramètre names .
Exemple de code:
fm = Flashmingo ()
print fm . run_plugin ( 'DangerousAPIs' , swf = swf )
print fm . run_plugin ( 'SuspiciousNames' , swf = swf , names = [ 'spooky' ])Flashmingo est livré avec quelques plugins utiles hors de la boîte:
Un plugin de modèle est fourni pour un développement facile. L'extension Flashmingo est plutôt simple. Suivez ces étapes simples:
runVous êtes prêt à partir :)
docs pour la documentation autogénérée $ pip install sphinxcontrib-napoleon
Après avoir configuré Sphinx pour construire vos documents, activez Napoleon dans le fichier Sphinx conf.py:
Dans conf.py , ajouter Napoléon à la liste des extensions
extensions = ['sphinxcontrib.napoleon']
Utilisez Sphinx-Apidoc pour construire votre documentation API:
$ sphinx-apidoc -f -o docs/source projectdir
Cela crée des fichiers .rst pour SPHINX à traiter
$ make html
C'est ça! :)