
Высокооктановый триажный анализ
[][docs]
[
][tests]
[
][codecov]
[
][pypi]
__ __ High Octane Triage Analysis __
|| _||______ __ __________ _____ ||
|| \||___ \__| ____/ ______/___ / ____\ ||
==||=====|| | __/ |/ \ /==| / __ \ __\===]|
'======|| | \ | | \_ _| \ ___/| | ||
||____ /__|___|__/ / | \____]| | ||
=========''====\/=========/ /==|__|=====|__|======'
\ /
\/
Binary Refinery™ — это набор Python-скриптов, реализующих преобразования бинарных данных, такие как сжатие и шифрование.
Мы часто будем называть его просто refinery, что также является именем соответствующего пакета.
Скрипты спроектированы так, чтобы исключительно читать входные данные из stdin и записывать выходные данные в stdout.
Основная философия заключается в том, что каждый скрипт должен быть модулем в том смысле, что он выполняет одну задачу,
а отдельные модули можно объединять в конвейеры с помощью оператора конвейера | в командной строке для выполнения более сложных задач.
Основное внимание проекта сосредоточено на триаже вредоносного ПО,
и это попытка реализовать нечто вроде CyberChef в командной строке.
Создайте виртуальное окружение Python. Требуется Python 3.11 или новее. Установите refinery так:
python -m pip install -U pip
python -m pip install -U binary-refinery[extended]
Запускайте модули с -h, чтобы узнать, как они работают, ищите по [документации][docs] или используйте команду binref, чтобы найти их.
Посмотрите [недавнее видео][VOD3], если хотите увидеть это в действии.
Но также прочитайте остальную часть этого readme.
Графика выпусков нет, но релизы выходят очень часто, и рекомендуется периодически обновляться. Исправления ошибок не документируются вне GIT, но все остальные изменения (т.е. новые функции) документируются в changelog. Следите за мной в [Mastodon][] для получения информации об особо значимых релизах.
Текст справки, отображаемый при запуске модуля с ключом -h или --help, является его основной документацией.
[Автоматически сгенерированная документация][docs] содержит компиляцию этого вывода для каждого модуля верхнего уровня,
а также содержит спецификацию для трёх фундаментальных концепций набора инструментов:
[фрейминг][frame], [аргументы multibin][argformats] и [метапеременные][meta].
Полнотекстовый поиск по описанию и тексту справки для каждого модуля также доступен в командной строке
через предоставляемую команду binref. Признавая, что справочная документация может быть несколько сухой,
ведётся постоянная работа над созданием серии руководств; я настоятельно рекомендую с ними ознакомиться.
Вдобавок ко всему, ниже я собираю дополнительные ресурсы (включая некоторые, созданные третьими сторонами).
[!NOTE]
Refinery всё ещё находится в альфа-версии, и интерфейс иногда может меняться, т.е. модули и параметры могут быть удалены или переименованы. Следовательно, может случиться так, что конкретные командные строки из старых видео и постов в блогах больше не работают.
2021/08] [OALabs][OA] любезно позволили мне [продемонстрировать набор инструментов в тематическом видео][VOD1].
В видео я по сути прорабатываю содержимое
первого руководства.2021/11] [Johannes Bader][JB] написал потрясающий [пост в блоге][BLOG] об анализе мусорных рассылок с помощью binary refinery.2024/03] [Malware Analysis For Hedgehogs][MH] сделали [видео о распаковке образца XWorm][VOD2] с использованием refinery.2024/11] [the CyberYeti][CY] пригласил меня [на стрим для презентации refinery][VOD3].2025/06] Я снова [был на стриме][VOD4] с [the CyberYeti][CY], этот получился немного более сырым.
Все баги, которые вы здесь можете увидеть, были исправлены. 😉Демонстрации снова включают образцы из раздела примеров ниже и руководства.
Binary Refinery является (c) 2019 Jesko Hüttenhain и опубликован под [3-Clause BSD License][license]. Этот репозиторий также содержит копию полного текста лицензии. Если вы хотите сделать с ним что-то, что не покрывается этой лицензией, пожалуйста, свяжитесь с автором.
Refinery требует как минимум Python 3.11. Рекомендуется устанавливать его в собственное [виртуальное окружение][venv]: Пакет может подтянуть много зависимостей, и установка его в глобальный Python несколько склонна к конфликтам версий. Кроме того, поскольку набор инструментов вводит большое количество новых команд, есть большая вероятность, что некоторые из них будут конфликтовать в некоторых системах, и хранение их в отдельном виртуальном окружении — один из способов это предотвратить.
Если вы хотите, чтобы все команды refinery были доступны в вашей оболочке постоянно (т.е. без необходимости переключаться на пользовательское виртуальное окружение),
у вас также есть возможность выбрать префикс для установки,
который будет добавлен перед каждой устанавливаемой командой-обёрткой.
Например, если вы выберете r. в качестве префикса, то модуль [emit][] будет установлен как команда r.emit.
Дополнительное преимущество в том, что вы можете набрать r. и дважды нажать Tab, чтобы получить список всех доступных команд refinery.
Однако учтите, что в документации префикс не предполагается, и цель разработки refinery — не конфликтовать в большинстве систем.
Автор не использует префикс и предоставляет эту возможность как подстраховку.
Самый простой способ установить и обновить refinery — через pip. Сначала убедитесь, что вы запускаете последнюю версию:
python -m pip install -U pip
Затем просто установите пакет refinery:
pip install -U binary-refinery
Если вы хотите выбрать префикс для всех модулей, вы можете указать его через переменную окружения REFINERY_PREFIX.
Например, следующая команда установит refinery в текущее окружение Python с префиксом r. в Linux:
REFINERY_PREFIX=r. pip install -U binary-refinery
В Windows вам нужно будет выполнить следующие команды:
set REFINERY_PREFIX=r.
pip install -U binary-refinery
Указание специального префикса ! приведёт к тому, что команды оболочки вообще не будут созданы,
и binary refinery будет установлен только как библиотека.
Если вы хотите установить текущий HEAD refinery, вы можете повторить все вышеперечисленные шаги, указав этот репозиторий вместо пакета pip.
Например, следующая команда установит самый последний коммит refinery:
pip install -U git+git://github.com/binref/refinery.git
Наконец, если вы используете [REMnux][remnux-main], вы можете использовать их [docker-контейнер refinery][remnux].
Если вы хотите научить свой локальный [claude][] для анализа вредоносного ПО использовать binary refinery, ознакомьтесь с [Binary Refinery Skill][agent].
Ниже приведена сводка того, насколько хорошо в настоящее время поддерживаются различные среды оболочек: