Компания NVISO недавно открыла исходный код своего нового инструмента CODASM, предназначенного для кодирования произвольных данных в псевдо-ASM-инструкции и их компиляции в раздел .text двоичных файлов. Этот шаг нацелен на повышение безопасности и устойчивости данных к анализу. CODASM скрывает данные, такие как шелл-коды, в высокоэнтропийных участках бинарных файлов, делая их менее заметными для защитных механизмов.
CODASM является Python-скриптом, который генерирует легитимно выглядящий шеллкод для любых произвольных полезных нагрузок и создает заголовочный файл на языке C, который можно использовать в программах для встраивания шеллкода в бинарные файлы и его извлечения во время выполнения.
Процесс кодирования полезных нагрузок с помощью CODASM включает:
- Генерацию валидных функций x86_64 с прологами, эпилогами и случайными инструкциями.
- Встраивание байтов полезной нагрузки в операнды инструкций (например, mov eax, ).
- Шифрование встроенных байтов полезной нагрузки с помощью XOR.
Процесс декодирования полезных нагрузок включает:
- Парсинг отдельных инструкций до извлечения необходимого количества байтов полезной нагрузки.
- Обнаружение инструкций, содержащих байты полезной нагрузки, их извлечение и расшифровка.
CODASM поддерживает компиляторы MSVC и MINGW и не требует установки специфических библиотек Python, что делает его удобным для интеграции в различные проекты.
Этот инструмент является частью стремления NVISO к повышению открытости и сотрудничества в сообществе кибербезопасности, предоставляя мощные средства для анализа и защиты от угроз.
Дополнительную информацию можно найти на официальной странице проекта на GitHub .