Modber Сообщество
профессионалов по 1С

Способы защиты исходного кода 1С 8.2



Платформы: 1С:Предприятие 8.3, 1С:Предприятие 8.2, 1С:Предприятие 8.1
Конфигурации: Все конфигурации
2012-12-12
11236 

 

Всем известно, что к функциям 1С не относиться защита исходных кодов. Спасение от декомпулятора не состоит в пароле, который устанавливается на исходный код модуля.

Исходя из того, что я разрабатываю внешнею обработку для 1С предприятия, то понятно дело что проблема защиты исходного кода стала на моем пути. В своей статье я буду излагать все способы защиты этого исходного кода, и так же пути их обхода, причем использую только простые механизмы.
 

Первый способ — это один из самых стандартных

Мы устанавливаем определенный пароль на сам модуль объекта.
Что бы наши действия увенчались успехом, нам нужно будет в модуле (в активном состоянии) объекта в кофигураторе 1С Предприятие выбрать — «Текст — Установить пароль».
Но пароль, указанный таким способом легко можно снять используя декомпилятор 1С. Пароль устанавливается только лишь на модуль объекта, поэтому весь код необходимо помещать в него и вызывать из модуля определенные формы, например:

В модуле объекта пишем:

Функция Сумма(значение1, значение2) Экспорт

Возврат значение 1 + значение2;

КонецФункции


В модуле формы вызываем эту функцию:

Сумма = Сумма(а,б);


Но правда говоря, такие действие не всегда бывают удобными.
 

Второй способ — это исключить исходные коды из поставки

Для внешней обработки еще есть возможность в исключении всех исходных кодов из поставки. В таком случае, при открытии обработки в конфигураторе, платформа сразу же сообщит, что в обработка не содержится исходного кода. Например расположить его на внешнем ресурсе (например HASP ключе).

Но как ни крути, такой способ защиты занимает огромное количество нашего времени да и еще при нулевой эффективности, так как все тот же декомпилятор легко может восстановить исходный код.
 

Третий способ – это обфускация кода 1С

Вообще, обфускация — это вид запутывание кода, в результате которого он приобретает неудобно читаемый вид.

Принцип довольно таки простой. Программист пишет код с определенной структурой, при этом оставляя комментарии, обозначая переменные удобно читаемыми именами с целью будущей легкой модифицировании программы.

Обфусцированный код просто напросто не дает возможности читать текст кода, ведь имена всех переменных представляют собой набор символов.

Насколько бы надежным не казался такой способ, все же обфускация это не стопроцентное решение проблемы. Ведь опытный программист с высокими навыками работы сможет вычистить код и вернуть его в начальное состояние. Для большей защиты можно просто наполнить модуль разными ненужными и бесполезными функциями, чем у усложнить задачу взломщика.
 

Четвертый способ – это способ комбинирования уже трех вышепоказанных способов

Самым рациональным есть использование пароля + обфускацию при защите. Еще несколько небольших ухищрений, например, расположение исходного кода в центре модуля, чтобы после декомпиляции сразу не было видно обфусцированный код. Также можно использовать разные способы обмана декомпилятора.

Конечно, ни один из способов не даст вас 100% защиту, но делают работу по восстановлению кода более тяжелой, сложной и трудозатратной.




В центре внимания

Комментарии (0)