ADVobfuscator — обфускация строк и данных при компиляции C++20

ADVobfuscator — библиотека C++20 для обфускации данных и кода на этапе компиляции. Она предназначена для разработчиков, которым необходимо скрывать строки или блоки данных в своих приложениях.
Возможности и состав проекта
Библиотека позволяет обфусцировать строки и блоки данных, которые затем декодируются во время выполнения программы. Для этого используются различные методы, включая шифрование AES-128 на этапе компиляции. Также поддерживается обфускация вызовов функций с помощью конечных автоматов на этапе компиляции и форматирование строк.
Начало работы и требования
Для работы ADVobfuscator требуется компилятор, совместимый с C++20 и поддерживающий стандартную библиотеку C++20. Обфускация работает только в Release-сборках; в Debug-сборках строки и данные не будут обфусцированы. Библиотека протестирована с Apple Clang, Clang, GCC и Visual Studio на macOS, Debian и Windows.
Ограничения и выбор сценария
Обфускация усложняет чтение бинарного файла, но не является надёжным способом хранить долгоживущие секреты: программа декодирует данные при исполнении. README отдельно ограничивает применение Release-сборками, поэтому Debug нельзя использовать для оценки защиты. Важны компилятор, оптимизации и поддержка C++20 Standard Library. Проверяйте результат на своём toolchain и учитывайте размер и время запуска; наличие AES-128 в механизме не превращает клиентский бинарник в защищённое хранилище ключей.
Лицензия и условия использования
GitHub определяет лицензию репозитория как BSD-3-Clause-Clear. Перед использованием и распространением проверьте полный текст LICENSE и отдельные условия зависимостей, данных или моделей: лицензия репозитория не заменяет их лицензии.




