
Analyseur statique pour exécutables PE avec détection basée sur plugins de packers, compilateurs, importations suspectes, constantes cryptographiques et signatures ClamAV. Prend en charge la soumission de hachages VirusTotal et la vérification Authenticode.
Manalyze est un outil d'analyse statique pour les fichiers PE que vous pouvez utiliser pour effectuer une évaluation préliminaire d'un exécutable (ou d'un ensemble d'exécutables). Il collecte des signaux faibles pouvant indiquer un comportement malveillant et affiche des informations qui peuvent aider une analyse manuelle ultérieure.
Si vous souhaitez voir quelques exemples de rapports générés par l'outil, n'hésitez pas à essayer le service web que j'ai créé pour cela : manalyzer.org.
Manalyze a été écrit en C++ pour Windows et Linux et est publié sous les termes de la licence GPLv3. C'est un analyseur robuste de fichiers PE avec une architecture de plugins flexible qui permet aux utilisateurs d'analyser statiquement les fichiers en profondeur. Manalyze...
WriteProcessMemory + CreateRemoteThread)Il y a peu de choses que je déteste plus que de télécharger un projet open-source et de passer deux heures à essayer de le compiler. C'est pourquoi j'ai fait de mon mieux pour rendre Manalyze aussi facile à compiler que possible. Si ces quelques lignes ne fonctionnent pas pour vous, alors j'ai échoué dans mon travail et vous devriez m'envoyer un message pour que je puisse corriger cela.
$> [sudo or as root] apt-get install libboost-dev libboost-system-dev libssl-dev build-essential cmake git
$> [alternatively, also sudo or as root] pkg install boost libressl cmake git
$> git clone https://github.com/JusticeRage/Manalyze.git && cd Manalyze
$> cmake .
$> make -j5
$> cd bin && ./manalyze --version
Remarque : le plugin VirusTotal est optionnel et nécessite la bibliothèque Boost.System.
Enfin, si vous souhaitez accéder à Manalyze depuis n'importe quel répertoire de votre machine, installez-le en utilisant $> make install depuis le dossier racine du projet.
cd boost_1_XX_0 && ./bootstrap.bat && ./b2.exe --build-type=complete --with-systemBOOST_ROOT qui contient le chemin vers votre dossier boost_1_XX_0.git clone https://github.com/JusticeRage/Manalyze.git && cd Manalyze && cmake .manalyze.sln devrait être apparu dans le dossier Manalyze !# Skip these two lines if you already have a sane build environment
user$ xcode-select --install
user$ sudo installer -pkg /Library/Developer/CommandLineTools/Packages/macOS_SDK_headers_for_macOS_10.14.pkg -target /
user$ git clone https://github.com/JusticeRage/Manalyze.git && cd Manalyze
user$ brew install openssl boost
user$ cmake . -DOPENSSL_ROOT_DIR=/usr/local/opt/openssl/ && make -j5
user$ bin && ./manalyze --version
Si vous devez compiler Manalyze sur une machine sans accès internet, vous devez télécharger manuellement les projets suivants :
Placez les deux dossiers dans le dossier external en tant que external/yara et external/hash-library respectivement. Exécutez ensuite cmake . -DGitHub=OFF et continuez comme d'habitude.
Une image Docker pour Manalyze est fournie par la communauté. Exécutez docker pull evanowe/manalyze et obtenez des informations supplémentaires ici.
Étant donné que les signatures ClamAV sont volumineuses et mises à jour régulièrement, il n'était pas très logique de les distribuer depuis GitHub ou avec le binaire. Lorsque vous essayez d'utiliser le plugin ClamAV pour la première fois, vous rencontrerez probablement le message d'erreur suivant : [!] Error: Could not load yara_rules/clamav.yara. Pour les générer, exécutez le script Python update_clamav_signatures.py situé dans bin/yara_rules (arborescence source) ou ${CMAKE_INSTALL_DATADIR}/manalyze/yara_rules (installé, généralement /usr/share/manalyze/yara_rules ou /usr/local/share/manalyze/yara_rules).
Exécutez le script chaque fois que vous souhaitez rafraîchir les signatures. Les caches Yara compilés sont stockés dans $XDG_CACHE_HOME/manalyze/yara_rules ou ~/.cache/manalyze/yara_rules, et peuvent être remplacés par MANALYZE_CACHE_DIR.
Les emplacements d'installation par défaut (respectant CMAKE_INSTALL_PREFIX) sont :
${CMAKE_INSTALL_SYSCONFDIR}/manalyze/manalyze.conf (souvent /etc/manalyze/manalyze.conf ou /usr/local/etc/manalyze/manalyze.conf)${CMAKE_INSTALL_DATADIR}/manalyze/yara_rules (souvent /usr/share/manalyze/yara_rules ou /usr/local/share/manalyze/yara_rules)${CMAKE_INSTALL_LIBDIR}/manalyze/pluginsVous pouvez remplacer ces valeurs avec des variables d'environnement : MANALYZE_CONFIG_DIR, MANALYZE_DATA_DIR, MANALYZE_PLUGIN_DIR, MANALYZE_CACHE_DIR.
$ ./manalyze.exe --help
Usage:
-h [ --help ] Displays this message.
-v [ --version ] Prints the program's version.
--pe arg The PE to analyze. Also accepted as a positional
argument. Multiple files may be specified.
-r [ --recursive ] Scan all files in a directory (subdirectories will be
ignored).
-o [ --output ] arg The output format. May be 'raw' (default) or 'json'.
-d [ --dump ] arg Dump PE information. Available choices are any
combination of: all, summary, dos (dos header), pe (pe
header), opt (pe optional header), sections, imports,
exports, resources, version, debug, tls, config, delay, rich
--hashes Calculate various hashes of the file (may slow down the
analysis!)
-x [ --extract ] arg Extract the PE resources to the target directory.
-p [ --plugins ] arg Analyze the binary with additional plugins. (may slow
down the analysis!)
Available plugins:
- clamav: Scans the binary with ClamAV virus definitions.
- compilers: Tries to determine which compiler generated the binary.
- peid: Returns the PEiD signature of the binary.
- strings: Looks for suspicious strings (anti-VM, process names...).
- findcrypt: Detects embedded cryptographic constants.
- packer: Tries to structurally detect packer presence.
## Python bindings (manapy)
Les liaisons Python se trouvent dans `manapy/` et sont importées en tant que `manalyze`.
Depuis la racine du dépôt :
cd manapy python -m pip install .
- imports : Recherche des importations suspectes.
- resources : Analyse les ressources du programme.
- mitigation : Affiche les techniques d'atténuation des exploits activées (DEP, ASLR, etc.).
- overlay : Analyse les données en dehors des limites du PE.
- authenticode : Vérifie si la signature numérique du PE est valide.
- virustotal : Vérifie les résultats AV existants sur VirusTotal.
- all : Exécute tous les plugins disponibles.
Exemples :
manalyze.exe program.exe
manalyze.exe -dresources -dexports -x out/ program.exe
manalyze.exe --dump=imports,sections --hashes program.exe
manalyze.exe -r malwares/ --plugins=peid,clamav --dump all
Contactez-moi ou ouvrez une pull request si vous souhaitez être ajouté à cette liste !