
Обфускация строк AES на этапе компиляции для C++
Стандартные решения полагаются на length + "#" + string. Это тривиально реверсируется.
sbox использует constexpr блочный шифр AES-128 для преобразования строк в высокоэнтропийный шум.
Во время задачи Neetcode «Encode and Decode Strings» я перенёс движок AES из своего проекта обфускации, Obfusk8.
Реализация прошла за 7 мс с первой попытки. Криптографическая безопасность не должна приноситься в жертву производительности.
strings.exe (или strings в linux) возвращается ноль результатов.Загляните в папку EXAMPLES для получения подробностей реализации:
Пример с несколькими строками (sbox_test.cpp):
Демонстрирует, как обрабатывать vector<string> с помощью макроса _OBF(str) для пакетной обработки. Полезно для обфускации, готовой к передаче.
Пример с одной строкой (sbox_test1.cpp):
Демонстрирует атомарную материализацию с помощью макроса ObfStr(str). Лучше всего подходит для присваивания одной переменной:
string s = ObfStr("ama obfuscation addicted");
Время выполнения: 7 мс. Доказывая, что избыточность всё ещё может быть оптимальной.
Автор: x86byte