Создание внешней обработки с закрытым (скомпилированным) кодом

30.12.24

Разработка - Защита ПО и шифрование

В статье приведен простой способ защиты кода внешней обработки от несанкционированного доступа (если это необходимо).

Всем привет.

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

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

Пример:

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

Обработка

 

 

Код модуля формы обработки

 

 

Решение:

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

 

 

  1. В модуле формы дорабатываем код серверной функции

 

 

  1. Осталось «зашифровать» код модуля объекта, чтобы скрыть алгоритм генерации. Для этого создаем пустую базу (можно файловую) и встраиваем нашу внешнюю обработку.

 

 

 

  1. В свойствах конфигурации пустой базы на закладке «Разработка» заполняем поля «Поставщик» и «Версия» любыми значениями, например «Разработчик» и «1.1.1.1» Обновляем конфигурацию (F7).

 

 

  1. В настройках поставки снимаем флаг «Включать в поставку исходный текст модулей объекта»

 

 

 

  1. Снимаем флаг «Создать файл обновления конфигурации» и создаем файл поставки, нажав Выполнить

 

 

 

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

 

 

  1. Готово. Если теперь открыть обработку в конфигураторе, то модулю объекта будет скомпилированным и, как итог – закрытым.

 

 

Причем, такой модуль нельзя декомпилировать средствами 1С.

внешняя обработка компиляция защита кода

См. также

Защита ПО и шифрование Программист Платформа 1С v8.3 1С:Бухгалтерия 3.0 Абонемент ($m)

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

1 стартмани

09.02.2023    2909    12    aximo    5    

2

Защита ПО и шифрование Программист Абонемент ($m)

Для установки защиты pdf документа, полученного в 1С, написано консольное приложение на c#., использующее одну зависимость pdfSharp.dll. В результате работы приложения ограничены операции над документом и записаны метаданные. С помощью аргументов командной строки можно управлять работой приложения.

2 стартмани

30.01.2023    2237    2    olevlasam    3    

3

Защита ПО и шифрование Программист Платформа 1С v8.3 Конфигурации 1cv8 Абонемент ($m)

Универсальный синтаксический анализатор ASN.1, который может декодировать любую допустимую структуру ASN.1 DER или BER, независимо от того, закодирована ли она в кодировке Base64 (распознаются необработанные base64, защита PEM и begin-base64) или в шестнадцатеричном кодировании.

1 стартмани

04.12.2022    3701    17    keyn5565`    0    

15

Защита ПО и шифрование Программист Платформа 1С v8.3 Абонемент ($m)

Демонстрация возможностей шифрования строки на основе мастер-пароля в 1С Предприятие 8.3.19. AES без zip файла, RSA, PKDF2. (c использованием библиотеки С# через com).

2 стартмани

31.08.2022    4618    9    vit59    2    

6

Защита ПО и шифрование Программист Платформа 1С v8.3 Конфигурации 1cv8 Россия Абонемент ($m)

Обработка, позволяющая запутывать и шифровать байт-код, поставлять модули без исходных текстов и т.д. Работает только в файловом варианте с версии платформы 8.3.22.1368 из-за конструктора ГенераторСлучайныхЧисел, поскольку алгоритм был изменён.

10 стартмани

16.06.2022    13189    111    ZhokhovM    12    

46

Защита ПО и шифрование Программист Платформа 1С v7.7 Платформа 1С v8.3 Абонемент ($m)

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

2 стартмани

09.03.2022    6270    4    ge_ni    9    

2

Защита ПО и шифрование Программист Платформа 1С v8.3 Конфигурации 1cv8 Абонемент ($m)

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

1 стартмани

27.12.2021    5265    2    idm80    12    

9
Комментарии
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
1. amiralnar 9 30.12.24 15:39 Сейчас в теме
Такой модуль легко можно декомпилировать известными средствами.
gortol; maksa2005; Brawler; Olenevod; thornhiven; SerVer1C; PowerBoy; +7 Ответить
2. SAShikutkin 15 30.12.24 17:43 Сейчас в теме
(1) Запилите статью
mrChOP93; VAAngelov; dimaster; thornhiven; +4 Ответить
3. SerVer1C 839 30.12.24 18:12 Сейчас в теме
Для чего вы делаете такие сложные манипуляции?? Можно же проще: меню "Текст" --> "Установить пароль".
Но надежность такого решения 1 из 10, т.к. любым декомпилятором восстанавливается алгоритм на 100%.
6. TMV 14 31.12.24 08:19 Сейчас в теме
(3) в чем смысл вашего комментария? Вы предлагаете другое решение и тут же говорите, что оно очень не надёжное. Но автор-то привел свое решение.
7. SerVer1C 839 31.12.24 09:16 Сейчас в теме
(6) Смысл комментария в том, что автор на элементарное действие написал целую статью. По сути - это вредный совет.
4. sewell 30.12.24 19:02 Сейчас в теме
Вы бы хоть изучили мат. часть на сайте. То же мне зашита :)
SerVer1C; +1 Ответить
5. sultbec 10 31.12.24 01:24 Сейчас в теме
Чтобы не пройти декомпиляцию,надо использовать новые объекты метаданных относительно 8.2
Расширения например не поддаются.
8. SerVer1C 839 31.12.24 09:16 Сейчас в теме
(5) Скажу вам по секрету, что всё поддается.
9. ivnik 608 31.12.24 12:26 Сейчас в теме
А мне понравилась https://netlenka.org/, я уже не один год пользуюсь. Все надежно, очень просто и любые модули: конфигурации, расширения, внешние обработки, отчеты и все это - элементарно, в 2-3 движения.
10. user1565957 01.01.25 18:37 Сейчас в теме
netlenka открывается также как все стандартные защиты 1с. Уже открыто, пользуюсь когда надо ошибки в коде исправить. Не забывайте что 1с как то надо процессору команды предоставить, а процессор можно посмотреть через стековую машину.
11. amiralnar 9 02.01.25 08:07 Сейчас в теме
(10) Допустим, ты декомпилируешь нетленку.

И как ты собираешься исправлять ошибку вот в таком вот коде?
Прикрепленные файлы:
12. maksa2005 553 03.01.25 11:26 Сейчас в теме
(11) никак. исходники надо хранить)
13. amiralnar 9 03.01.25 15:04 Сейчас в теме
(12) Мы рассматриваем случай обхода защиты
14. markers 278 05.01.25 08:29 Сейчас в теме
(11) Да, при декомпиляции обфусцированного кода, он будет получен ровно с тем же мусором что и до компиляции.
После обфускации возможны только два варианта:
1) (относительно простой) делать де-обфускатор, который сможет распутать и упростить все переходы и пр.
2) (сложный) пилить свою оптимизирующую виртуальную машину, которая в ходе выполнения кода, сможет выполнять перестроение кода и оптимизацию
Но эти способы несколько сложней, чем вариант с конвертирования байт-кода в обычный код, тем-более что такие решения есть на просторах.
15. amiralnar 9 08.01.25 08:18 Сейчас в теме
(14)
(относительно простой)

(14)
де-обфускатор
Прикрепленные файлы:
16. Fril 09.01.25 16:34 Сейчас в теме
Я где-то видел, а может слышал и вообще это не точно, что часть кода хранят во внешней компоненте, вроде как защита лучше...
а еще можно заглушку по периоду поставить если обработка как демо версия имеет ограничение по периоду, после истечения которого обработка перестаёт работать
17. Fril 09.01.25 16:40 Сейчас в теме
Все эти защиты: установка пароля, скрытие модуля, обфускация - имеют право на жисть, как минимум от пользователя или новичка защитят
Оставьте свое сообщение