Практически все крупные компании прибегают к услугам других компаний или сторонних специалистов на аутсорсе, в том числе и в сфере 1С. Естественно вопрос о правах на интеллектуальную собственность, которой является код, стоит достаточно остро. В 1С есть возможность защитить строки модулей, установив пароль, и многие разработчики 1С ей активно пользуются. Но как быть в ситуации, когда необходимо внести правки в закрытый код, но программист не отвечает или отказывается помочь?
Снимаем защиту с помощью декомпилятора
В интернете на многих сайтах посвященных 1С выложена специальная обработка для таких ситуаций – декомпилятор 1С 8.3. Суть ее работы заключается в том, что она компилирует образ модуля и на его основе генерирует строки кода. Все закомментированные строки кода, включая комментарии, декомпилировать не удастся.
Основная форма большинства подобных внешних обработок содержит следующие элементы:
- Поле для выбора файла. Декомпилятор принимает файлы с расширением epf, erf и cf;
- Опция «Не создавать копию» предназначена для тех, у кого уже есть резервная копия. Если у вас обработка или конфигурация находятся в единственном экземпляре, сделайте бэкап или установите эту галку. При этом перед началом работ с файлом декомпилятор создаст копию файла с префиксом;
- Опция «Искать все модули» сообщает обработке, что необходимо более тщательно проанализировать входной файл и его физическую структуру. Данную настройку следует использовать, если без нее модули не декомпилируются, так как время работы с этой опцией существенно увеличивается.
После запуска обработки через некоторое время, зависящее от размера файла и настроек, появится сообщение об успехе операции. Также в сообщениях обработка покажет путь, где лежит файл с открытым кодом в модулях. Стоит отметить, что сама обработка 1С тоже зашифрована, но другим алгоритмом, так как не декомпилирует саму себя. Поэтому стоит использовать только те декомпиляторы, которые получены из надежных источников или от официальных партнеров.
Если защитить себя от неправомерно установленных паролей вы сможете, то стоит иметь в виду другой метод защиты, кода разработчиков намного сложнее расшифровать – обфускацию, то есть специальное запутывание кода для усложнения его понимания. Сложность заключается в том, что существует огромное количество разнообразных алгоритмов для запутывания кода и их сочетаний.
Наиболее популярными считаются следующие способы обфускации:
- Замена имен переменных на нечитаемые, понятные только автору, и то не всегда, индексы. Кажется, что это несложно, если речь идет о простой программе или внешней обработке 1С. Но как только этот метод будет применен к сложному модулю с кучей процедур и функций – голова закружится у любого разработчика;
- Изменение типов и значений данных. Чаще всего число представляют строкой или выражают в двоичной системе. Фантазия может быть безгранична и без знания алгоритма чтение кода модуля 1С превратится в головоломку;
- Нарушение прямого хода выполнения кода. Разбиение кода на отдельные блоки с переменным их вызовом.
Конечно, все, что было зашифровано может быть расшифровано, но, столкнувшись с этим процессом единожды, вы вряд ли захотите иметь дело с автором. Именно поэтому установка паролей на код и обфускация в 1С встречаются редко. Иметь хорошую репутацию важнее, чем получать дополнительные деньги за поддержку своего зашифрованного кода.
консультация эксперта
самые свежие новости 1 раз в месяц