За основу взята обработка [2 in 1] «Обфускация кода 1С» и «RegExp Тестер».
Запутывание кода — приведение исходного текста или исполняемого кода программы к виду, сохраняющему её функциональность, но затрудняющему анализ (Википедия).
Обработка позволяет проводить обфускацию кода 1С в несколько этапов:
- Предварительная обработка исходного кода:
- Удаление комментариев;
- Удаление областей и пустых строк;
- Заполнение настроек. Настройки могут быть описаны в тексте исходного кода.
- Добавление условий триал периода. Для этого указывается дата триал периода - после которой обработка перестанет работать и сообщение триал периода которое будет выдаваться. При добавлении ограничений по триал периоду добавляются дополнительные процедуры, что может увеличить текст модуля.
-
Заполнение дерева запутывания и формирования таблицы соответствий идентификаторов имен процедур, функций и переменных. В настройках можно указать список имен которые будут оставаться неизменными.
Идентификаторы можно сформировать несколькими способами:
- Уникальный идентификатор - Например: bf9ee4cee2a04be1b5d029f3456dc126;
- Символ + счетчик - Например: i35 (удобно для нахождения по таблице соответствия исходного имени идентификатора);
- Количество символов - Например: iiiiiiiiiiiiiiiiiiiiiiiiiiiiiii.
- Получение обработанного кода 1С.
Все можно выполнить по нажатию одной кнопки.
Инструкции предпроцессора и комментарии с кавычками (для обхода этих ограничений и сделал возможность замены строк кода)
Для шифрования строк требуется capicom.dll, скачать можно с сайта Майкрософт.
RegExp должен быть доступен на сервере.
Для обхода ограничений по комментариям с кавычками можно использовать замену строк исходного кода на текст обрабатываемый корректно и возвращать его обратно при получении результата. Например заменить "https://infostart.ru/public/959902/" на "СайтПроекта", а потом вернуть обратно.
Обработать можно процедуры с директивами компиляции и без них.
В тексте исходного кода можно указать настройки запутывания кода 1С.
Настройки указываются в формате: //#
Список возможных настроек указанных в тексте модуля:
- Код_ОчищатьНастройкиПередАнализом - перед подготовкой кода установить настройки в значения по умолчанию;
- ИмяИдентификатора_Вариант - вариант формирования идентификатора: Счетчик, УникальныйИдентификатор, СимволКоличество;
- ИмяИдентификатора_Количество - настройка количество идентификатора (зависит от варианта идентификатора);
- ИмяИдентификатора_Символ - настройка символ идентификатора (зависит от варианта идентификатора);
- ТриалПериод_Дата - дата триал периода, после которой обработка перестанет работать;
- ТриалПериод_Сообщение - сообщение выдаваемое пользователю при наступлении даты триал периода;
- Код_УбратьПустыеСтроки - убрать пустые строки в коде;
- Код_ВыполнитьЗаменуСтрок - вернусть строки после обработки кода;
- Код_ДобавитьТриалПериод - добавить триал период при подготовке кода;
- Результат_ОграничениеКолВаСимволов - Количество символов в строке результата;
- Результат_ШифроватьСтроковыеДанные - шифровать строки в результате.
- GlobalText - заменяемые строки при подготовке кода и возвращаемые в результате, в формате Например: //#GlobalText "https://infostart.ru/public/917931/" заменить на "СайтПроекта" и при получении результата вернуть обрабтно;
- GlobalVar или GlobalName - список имен переменных для которых должно остаться исходное имя идентификатора. Например: //#GlobalVar ПараметрыОтчета, ВариантАнализа, КомпоновщикНастроек
См. также:
Анализ прав доступа БСП 2+
Анализ ролей пользователей БСП
Журнал учета выдачи расчетных листов. ЗУП 3.1, ЗКГУ 3.1, KA 2, ERP 2, БП 3
Автоматическая рассылка расчетных листов. ЗУП 3.1, ЗКГУ 3.1, КА 2, ERP 2, БП3
Массовое создание справок 2-НДФЛ для сотрудников в разрезе ОКТМО/КПП. ЗУП 3.1, ЗКГУ 3.1, KA 2, ERP 2, БП 3