
Статический анализатор PE-исполняемых файлов с обнаружением упаковщиков, компиляторов, подозрительных импортов, криптографических констант и сигнатур ClamAV на основе плагинов. Поддерживает отправку хешей в VirusTotal и проверку аутентикода.
Manalyze — это инструмент статического анализа PE-файлов, который можно использовать для первичной оценки исполняемого файла (или набора исполняемых файлов). Он собирает слабые сигналы, которые могут указывать на вредоносное поведение, и отображает информацию, способную помочь последующему ручному анализу.
Если вы хотите увидеть примеры отчётов, созданных инструментом, попробуйте веб-сервис, который я для него создал: manalyzer.org.
Manalyze написан на C++ для Windows и Linux и выпущен под лицензией GPLv3. Это надёжный парсер PE-файлов с гибкой архитектурой плагинов, позволяющей пользователям проводить углублённый статический анализ файлов. Manalyze...
WriteProcessMemory + CreateRemoteThread)Есть немного вещей, которые я ненавижу больше, чем скачать проект с открытым исходным кодом и потратить два часа на его сборку. Поэтому я сделал всё возможное, чтобы Manalyze было как можно проще собрать. Если эти несколько строк не сработают, значит, я не справился со своей работой, и вам стоит написать мне, чтобы я это исправил.
$> [sudo или от root] apt-get install libboost-dev libboost-system-dev libssl-dev build-essential cmake git
$> [альтернативно, также sudo или от root] pkg install boost libressl cmake git
$> git clone https://github.com/JusticeRage/Manalyze.git && cd Manalyze
$> cmake .
$> make -j5
$> cd bin && ./manalyze --version
Примечание: плагин VirusTotal является опциональным и требует библиотеку Boost.System.
Наконец, если вы хотите иметь доступ к Manalyze из любой директории на вашей машине, установите его с помощью $> make install из корневой папки проекта.
cd boost_1_XX_0 && ./bootstrap.bat && ./b2.exe --build-type=complete --with-systemBOOST_ROOT, содержащую путь к вашей папке boost_1_XX_0.git clone https://github.com/JusticeRage/Manalyze.git && cd Manalyze && cmake .Manalyze должен появиться проект Visual Studio manalyze.sln!# Пропустите эти две строки, если у вас уже есть нормальная среда сборки
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
Если вам нужно собрать Manalyze на машине без доступа в интернет, придётся вручную скачать следующие проекты:
Поместите две папки в папку external как external/yara и external/hash-library соответственно. Затем выполните cmake . -DGitHub=OFF и продолжайте как обычно.
Docker-образ для Manalyze предоставлен сообществом. Выполните docker pull evanowe/manalyze и получите дополнительную информацию здесь.
Поскольку сигнатуры ClamAV объёмны и регулярно обновляются, распространять их через GitHub или вместе с бинарным файлом не имеет смысла. При первой попытке использования плагина ClamAV вы, скорее всего, увидите следующее сообщение об ошибке: [!] Error: Could not load yara_rules/clamav.yara. Чтобы сгенерировать их, запустите Python-скрипт update_clamav_signatures.py, находящийся в bin/yara_rules (дерево исходников) или ${CMAKE_INSTALL_DATADIR}/manalyze/yara_rules (установленная версия, обычно /usr/share/manalyze/yara_rules или /usr/local/share/manalyze/yara_rules).
Запускайте скрипт всякий раз, когда хотите обновить сигнатуры. Скомпилированные кеши Yara хранятся в $XDG_CACHE_HOME/manalyze/yara_rules или ~/.cache/manalyze/yara_rules, их можно переопределить с помощью MANALYZE_CACHE_DIR.
Места установки по умолчанию (с учётом CMAKE_INSTALL_PREFIX):
${CMAKE_INSTALL_SYSCONFDIR}/manalyze/manalyze.conf (часто /etc/manalyze/manalyze.conf или /usr/local/etc/manalyze/manalyze.conf)${CMAKE_INSTALL_DATADIR}/manalyze/yara_rules (часто /usr/share/manalyze/yara_rules или /usr/local/share/manalyze/yara_rules)${CMAKE_INSTALL_LIBDIR}/manalyze/pluginsИх можно переопределить с помощью переменных окружения:
MANALYZE_CONFIG_DIR, MANALYZE_DATA_DIR, MANALYZE_PLUGIN_DIR, MANALYZE_CACHE_DIR.
$ ./manalyze.exe --help
Использование:
-h [ --help ] Выводит это сообщение.
-v [ --version ] Показывает версию программы.
--pe arg Анализируемый PE. Также принимается как позиционный
аргумент. Можно указать несколько файлов.
-r [ --recursive ] Сканировать все файлы в директории (поддиректории
будут проигнорированы).
-o [ --output ] arg Формат вывода. Может быть 'raw' (по умолчанию) или 'json'.
-d [ --dump ] arg Выгрузить информацию о PE. Доступные варианты: любая
комбинация: all, summary, dos (dos-заголовок), pe (pe-заголовок), opt (опциональный заголовок PE), sections, imports, exports, resources, version, debug, tls, config, delay, rich
--hashes Вычислить различные хеши файла (может замедлить анализ!)
-x [ --extract ] arg Извлечь ресурсы PE в указанную директорию.
-p [ --plugins ] arg Проанализировать бинарный файл с дополнительными плагинами. (может замедлить анализ!)
Доступные плагины:
- clamav: Сканирует бинарный файл с определениями вирусов ClamAV.
- compilers: Пытается определить, какой компилятор создал бинарный файл.
- peid: Возвращает сигнатуру PEiD бинарного файла.
- strings: Ищет подозрительные строки (анти-VM, имена процессов...).
- findcrypt: Обнаруживает встроенные криптографические константы.
- packer: Пытается структурно обнаружить наличие упаковщика.
## Привязки Python (manapy)
Привязки Python находятся в папке `manapy/` и импортируются как `manalyze`.
Из корня репозитория:
cd manapy python -m pip install .
- imports: Ищет подозрительные импорты.
- resources: Анализирует ресурсы программы.
- mitigation: Отображает включённые методы смягчения последствий эксплуатации (DEP, ASLR и т.д.).
- overlay: Анализирует данные за пределами границ PE.
- authenticode: Проверяет, действительна ли цифровая подпись PE.
- virustotal: Проверяет существующие результаты антивирусов на VirusTotal.
- all: Запускает все доступные плагины.
Примеры:
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
Свяжитесь со мной или откройте pull request, если хотите быть добавленными в этот список!