Защита и шифрование модулей конфигураций, внешних отчетов и обработок на 1С 7.7.

small logo

КОМПЛЕКС ЗАЩИТЫ КОНФИГУРАЦИЙ 2.0

сохрани свою уникальность

Описание технологии

КЗК2Метод защиты основан на компилировании модулей конфигурации 1С: Предприятия 7.7, построенной на любой из трех компонент платформы: бухгалтерия, оперативный учет, расчет. Это намного надежнее обычного шифрования, так как исходный код просто исключается, а вместо него сохраняется исполняемый π-код. Получение авторского исходного кода просто невозможно, а декомпилирование модуля сравнимо по трудозатратам с полным его переписыванием.

В контексте 1С:Предприятия 7.7 компиляцией называется процесс подготовки программного модуля для выполнения, при котором исходный код модуля на встроенном языке преобразуется во внутренний π-код. Именно полученный после компиляции π-код и выполняется «движком» 1С:Предприятия, а исходный код становится не нужен.

Подобная схема работы позволяет исключить исходный код программных модулей из поставки клиенту, произведя предварительную компиляцию на стороне поставщика конфигурации. Программный пакет КЗК-2 (Комплекс Защиты Конфигурации версии 2) предназначен для выполнения такой предварительной компиляции на стороне поставщика и обеспечения разворачивания сохраненного π-кода на стороне клиента для выполнения. Такую же схему защиты применила и сама фирма 1С в 1С:Предприятии версии 8.х (поставка без исходных кодов).

Для выполнения компиляции КЗК-2 использует средства «движка» 1С:Предприятия, а не собственную реализацию компилятора, поэтому на выходе получается такой же π-код, как и при обычной схеме работы. Но это накладывает и ограничение на возможность работы КЗК-2. Для его функционирования у пользователя обязательно должно быть установлено 1С:Предприятие, а исполняемые файла Компилятора из состава КЗК-2 должны иметь доступ к файлам «движка» 1С:Предприятия (для этого можно поместить Компилятор в тот же каталог, что и Предприятие или прописать пути в переменной окружения PATH).

После обработки КЗК-2, полученный π-код записывается в модули конфигурации (или внешних отчетов) в виде комментариев, чтобы не нарушать структуру файла конфигурации (1Cv7.md). Такой подход, кроме всего прочего, позволяет реализовать открытый программный код, который 1С:Предприятие будет выполнять если не загружена внешняя компонента Прекомпилятор из состава КЗК-2 или истек срок действия лицензии, установленный при компиляции.

Зачем может понадобиться оставлять открытый исходный код?
Например, при защите доработок, а не полностью самостоятельно разработанного модуля, по окончания срока лицензии у клиента остается вполне работоспособный модуль, но без дополнительного кода, который реализован только в скомпилированной части и отсутствует в открытом коде.
Еще один пример – создание демонстрационных версий, которые имеют полный функционал какое-то время, а после окончания срока лицензии переходят в демо-режим с ограниченным функционалом.

Стойкость защиты с использованием компиляции базируется на том, что по сути своей она является однонаправленным процессом. В общем случае невозможно получить из π-кода обратно тот же текст программы, что был до компиляции. Возможно написание специального декомпилятора, который преобразует скомпилированный модуль обратно в модуль на встроенном языке 1С:Предприятия. Но полученный текст для дальнейшего сопровождения и доработки потребует сильной ручной переработки, сравнимой с переписывание защищенного модуля «с нуля».

Для усложнения декомпиляции КЗК-2 позволяет произвести дополнительную обработку скомпилированных модулей. При этом производится «запутывание» полученного после компиляции π-кода. После этой обработки автоматическая декомпиляция усложняется на порядок. При этом следует учесть, что даже для написания простейшего декомпилятора требуется достаточно серьезные знания и навыки.

Главная | Продукт | Скачать | Купить | Поддержка | Карта сайта | Контакты

2007-2023 © Федоров Алексей