Обфускация - запутывание кода. Переименование переменных, процедур и функций в бессмысленные имена. Удаление форматирования, регистра символов и комментариев. Разрушение типовых конструкций, запутывание контроля потока и использование дополнительных методов защиты для защиты логики модуля. Обфускация байт-кода 1C для защиты от декомпиляции известными и новыми декомпиляторами.
Мы постарались максимально упростить процедуру защиты:
Вставьте текст модуля в окно защиты.
При необходимости, задайте необходимые опции и нажмите Защитить
Скопируйте защищенный код обратно в Конфигуратор, сделайте проверку синтаксиса и проверку конфигурации на наличие обработчиков.
Возможно автоматически защитить весь файл конфигуации или внешней обработки. Для этого используйте комплект разработчика "Нетленка 1С: Защита конфигураций"
Инструкция по работе с SDKВ своем арсенале "Нетленка 1С: Защита конфигураций и обработок" использует следующие методы защиты:
Удаление форматирования | Удаляются переносы строк, пробелы, табуляции, прописные буквы преобразуются в строчные. Метод обратим. |
Удаление комментариев | Удаляются все комментарии. Метод полностью необратим. |
Шифрование строк | Строковые константы шифруются с помощью случайного алгоритма. Т.к. все данные для дешифровки в любом случае содержатся в тексте модуля, метод обратим. Так же расшифровка строк - достаточно затратная по времени операция и может повлиять на быстродействие в циклах. |
Переименование методов и переменных | Замена имен на бессмысленные, плохо узнаваемые идентификаторы. Это значительно увеличивает время на анализ и модификацию кода. Метод абсолютно необратим. |
Обфускация контроля потока | Разрушаются типовые конструкции 1C, создаются ложные условные и безусловные переходы, добавляются фальшивые операции. Анализ и ручная модификация такого модуля существенно затруднены. |
Компиляция в код стековой машины | Текст модулей компилируется в последовательность инструкций, которые затем выполняются через стек. Это дополнительно усложняет разбор обфусцированных модулей. Если задать пароль на защищенный модуль или исключить его из поставки, то это затрудняет процесс декомпиляции и приводит к неработоспособности декомпилированного кода. |
Защита байт-кода 1С от декомпиляции | Дополнительный инструмент защиты обфусцирует байт-код 1С и тем самым нарушает работу декомпиляторов. Вместе с обфускацией исходного кода, защита байт-кода 1С значительно повышает устойчивость ко взлому |
Удаление текстов закрытых модулей | Если эту опцию включить, то при попытке открыть модуль в конфигураторе, не будет появляться окно с вводом пароля, а будет выдано сообщение "Текст модуля отсутствует" |
Переименование экспортных методов общих модулей | Экспортные методы модулей, отмеченных директивой //@rename_export_methods будут переименованы в уникальные идентификаторы вида _9e33edb3639d4ead885153b2aa433a5f. Также будут переименованы вызовы этих методов во всех поддерживаемых модулях конфигурации. |
На текущий момент, обфускатор не анализирует текст исполняемого кода этих операторов. Поэтому для корректной работы программы, имена переменных и методов, используемых в этих строках должны быть заявлены с помощью директив //@global или //@exclude
Методы COM-объектов и внешних компонент могут быть чувствительны к регистру символов. В этом случае используйте директиву //@keepcase. Она указывает системе, что необходимо сохранить регистр всех методов объектов.