In English

Технологии защиты



Защищая Ваш проект, DotFix NiceProtect встраивает в файл свой защитный механизм, задачей которого является распаковка и исполнение виртуализованного кода, а также защита программы от отладки и модицикации. Для усложнения анализа и взлома, при каждой защите программы, загрузчик создается абсолютно уникальный. Каждый элемент загрузчика разделяется на отдельные команды, которые описываются по-разному. Также после каждой команды размещаются "мусорные" циклы, условия и другие команды, которые не несут абсолютно никакой полезной нагрузки, но на порядок усложняют анализ кода.

NiceProtect software protection

В загрузчике также размещается анти-трассировочный код. В случае запуска программы под отладчиком происходит замедление работы загрузчика, что детектируется, и загрузчик не выполняется. Для исключения возможности автоматической распаковки программы специализированными утилитами, в DotFix NiceProtect'е используется алгоритм скрытия стартового кода программы. Он также обфусцируется (команды заменяются на аналоги и разбавляются мусорными инструкциями) и перемещается в загрузчик защиты.

NiceProtect software obfuscation and virtualization

Важной особенностью DotFix NiceProtect является виртуализация кода. Используя маркеры Вы можете пометить критичный код для защиты еще на этапе программирования. Защита сама найдет метки и защитит код. Часть команд будет преобразовано в псевдокод для интерпретации исполнителем виртуальной машины, а часть будет обфусцирована (так называемая технология мутации). Также имеется возможность виртуализации пролога функций для исключения работы декомпиляторов (начальный код функции будет содержать мусор что вызовет некорректную работу декомпиляторов). Функции для такой защиты можно выбрать через MAP файл.

NiceProtect virtual machine

Ключевой особенностью NiceProtect, отсутствующей у всех конкурирующих продуктов является обфускация служебных данных, оставленных компилятором. Эта функция поддерживается для программ, написанных на Delphi начиная с 3 версии, включая Delphi 10 Seattle, а также для программ на Visual Basic 5.0/6.0. Мало кто знает, но в скомпилированном файле сохраняются имена всех форм, элементов управления, служебная информация о проекте, а также имена событий и публичных функций. Иногда даже с прототипами. Все это помогает взломщику понять алгоритм Вашей программы и взломать ее. Все это можно избежать благодаря нашим наработкам в области декомпиляции DotFix NiceProtect умеет декомпилировать бинарные файлы и удалять все неиспользуемые данные.

NiceProtect decompilation and obfuscation

После защиты полученный файл может быть запакован для снижения разрастания размера после защиты. Упаковка ложится отдельным слоем и также имеет средства противодействия анализу. Также поддерживается упаковка и защита ресурсов.