Шесть рычагов
диверсификации
Изоморфизмы CFG: перегруппировка базовых блоков (BBR, Basic Block Reordering), легкое уплощение (CFF, Control Flow Flattening), непрозрачные предикаты (OP, Opaque Predicates) (только критические точки).
Настройки графа вызовов: выборочное встраивание/выделение, объединение/разделение функций.
Разнообразие инструкций: допустимые замены (LEA/ADD, CMOV/branch), различное выравнивание/заполнение.
Импорт хуков: таблицы API перемешиваются при каждой сборке — скрипты, перехватывающие импорты, перестают работать.
Ротация кодирования данных: ключи для строк/констант для каждой сборки; перестановки индексов таблиц.
Перемешивание ссылок/макетов: рандомизация порядка разделов/функций; разделение горячих/холодных участков.
Даже при самом консервативном подходе из одного и того же кода автоматически получается более 200 уникальных бинарных файлов.