
Statischer Analysator für PE-Ausführungsdateien mit pluginbasierter Erkennung von Packern, Compilern, verdächtigen Importen, kryptografischen Konstanten und ClamAV-Signaturen. Unterstützt VirusTotal-Hash-Einreichung und Authenticode-Verifizierung.
Manalyze ist ein statisches Analysetool für PE-Dateien, mit dem Sie eine erste Bewertung einer ausführbaren Datei (oder einer Gruppe von ausführbaren Dateien) durchführen können. Es sammelt schwache Signale, die auf schädliches Verhalten hindeuten könnten, und zeigt Informationen an, die eine anschließende manuelle Analyse unterstützen können.
Wenn Sie einige Beispielberichte sehen möchten, die von dem Tool generiert wurden, können Sie gerne den von mir dafür erstellten Webdienst ausprobieren: manalyzer.org.
Manalyze wurde in C++ für Windows und Linux geschrieben und wird unter den Bedingungen der GPLv3-Lizenz veröffentlicht. Es ist ein robuster Parser für PE-Dateien mit einer flexiblen Plugin-Architektur, die es Benutzern ermöglicht, Dateien statisch eingehend zu analysieren. Manalyze...
WriteProcessMemory + CreateRemoteThread)Es gibt wenige Dinge, die ich mehr hasse, als ein Open-Source-Projekt auszuchecken und zwei Stunden damit zu verbringen, es zu bauen. Deshalb habe ich mein Bestes getan, um Manalyze so einfach wie möglich zu bauen. Wenn diese wenigen Zeilen bei Ihnen nicht funktionieren, habe ich meinen Job nicht gut gemacht, und Sie sollten mir eine Nachricht schreiben, damit ich das beheben kann.
$> [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
Hinweis: Das VirusTotal-Plugin ist optional und erfordert die Boost.System-Bibliothek.
Wenn Sie schließlich von jedem Verzeichnis auf Ihrem Rechner aus auf Manalyze zugreifen möchten, installieren Sie es mit $> make install aus dem Stammverzeichnis des Projekts.
cd boost_1_XX_0 && ./bootstrap.bat && ./b2.exe --build-type=complete --with-systemBOOST_ROOT hinzu, die den Pfad zu Ihrem boost_1_XX_0-Ordner enthält.git clone https://github.com/JusticeRage/Manalyze.git && cd Manalyze && cmake .manalyze.sln sollte im Manalyze-Ordner erscheinen!# Überspringen Sie diese beiden Zeilen, falls Sie bereits eine vernünftige Build-Umgebung haben
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
Wenn Sie Manalyze auf einem Rechner ohne Internetzugang bauen müssen, müssen Sie die folgenden Projekte manuell auschecken:
Legen Sie die beiden Ordner in den external-Ordner als external/yara und external/hash-library ab. Führen Sie dann cmake . -DGitHub=OFF aus und fahren Sie wie gewohnt fort.
Ein Docker-Image für Manalyze wird von der Community bereitgestellt. Führen Sie docker pull evanowe/manalyze aus und erhalten Sie weitere Informationen hier.
Da ClamAV-Signaturen umfangreich und regelmäßig aktualisiert werden, ergab es wenig Sinn, sie über GitHub oder mit der Binärdatei zu verteilen. Wenn Sie das ClamAV-Plugin zum ersten Mal verwenden, werden Sie wahrscheinlich auf die folgende Fehlermeldung stoßen: [!] Error: Could not load yara_rules/clamav.yara. Um sie zu generieren, führen Sie das Python-Skript update_clamav_signatures.py aus, das sich im bin/yara_rules (Quellbaum) oder ${CMAKE_INSTALL_DATADIR}/manalyze/yara_rules (installiert, üblicherweise /usr/share/manalyze/yara_rules oder /usr/local/share/manalyze/yara_rules) befindet.
Führen Sie das Skript aus, wann immer Sie die Signaturen aktualisieren möchten. Kompilierte Yara-Caches werden in $XDG_CACHE_HOME/manalyze/yara_rules oder ~/.cache/manalyze/yara_rules gespeichert und können mit MANALYZE_CACHE_DIR überschrieben werden.
Standardinstallationsorte (unter Berücksichtigung von CMAKE_INSTALL_PREFIX) sind:
${CMAKE_INSTALL_SYSCONFDIR}/manalyze/manalyze.conf (oft /etc/manalyze/manalyze.conf oder /usr/local/etc/manalyze/manalyze.conf)${CMAKE_INSTALL_DATADIR}/manalyze/yara_rules (oft /usr/share/manalyze/yara_rules oder /usr/local/share/manalyze/yara_rules)${CMAKE_INSTALL_LIBDIR}/manalyze/pluginsSie können diese mit Umgebungsvariablen überschreiben:
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-Bindungen (manapy)
Python-Bindungen befinden sich unter `manapy/` und werden als `manalyze` importiert.
Aus dem Stammverzeichnis des Repositories:
cd manapy python -m pip install .
- imports: Sucht nach verdächtigen Importen.
- resources: Analysiert die Ressourcen des Programms.
- mitigation: Zeigt die aktivierten Exploit-Minderungstechniken an (DEP, ASLR, etc.).
- overlay: Analysiert Daten außerhalb der Grenzen der PE.
- authenticode: Überprüft, ob die digitale Signatur der PE gültig ist.
- virustotal: Prüft vorhandene AV-Ergebnisse auf VirusTotal.
- all: Führt alle verfügbaren Plugins aus.
Examples:
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
Kontaktieren Sie mich oder eröffnen Sie einen Pull-Request, wenn Sie dieser Liste hinzugefügt werden möchten!