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

30.12.24

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

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

Всем привет.

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

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

Пример:

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

Обработка

 

 

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

 

 

Решение:

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

 

 

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

 

 

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

 

 

 

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

 

 

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

 

 

 

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

 

 

 

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

 

 

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

 

 

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

ТОП-5 ИНСТРУМЕНТОВ ДЛЯ РАЗРАБОТЧИКА 1С

Toolkit, DCT, OneDebugger, PrintWizard, DataFormWizard
со скидкой 20% при покупке от 2х решений!


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

См. также

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

Обработка для подписи с помощью сертификата (ЭЦП) произвольных файлов, средствами платформы 1С.

5 стартмани

19.06.2025    319    1    krundel    2    

1

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

Как спрятать свои секретные файлы от глаз любого? Всё просто, прячем все свои файлы (видео. документы, архивы, фото, да вообще любые файлы) в картинку или фото. Картинка при этом остается такой же красочной и визуально не изменившейся (лишь подрастет её вес). Стало интересно? Посмотри, как это делается, на скриншотах, если лень читать описание.

1 стартмани

03.06.2025    575    user1195929    13    

2

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

Статья посвящена практическому применению XOR-шифрования в среде 1С:Предприятие. Рассматривается теоретическая основа операции XOR, её особенности как метода шифрования, а также преимущества и недостатки в контексте защиты данных. Подробно описываются методы реализации XOR-шифрования и дешифрования на языке 1С, включая примеры кода и практические сценарии использования, такие как шифрование паролей, защита конфиденциальных данных в файлах и передача зашифрованной информации между системами. Обсуждаются аспекты безопасности, выбор ключей, а также интеграция с другими механизмами защиты данных в 1С. Статья ориентирована на разработчиков 1С, стремящихся повысить уровень защиты информации в своих решениях.

1 стартмани

09.04.2025    993    user1195929    5    

3

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

Обработки, в которых реализованы алгоритмы шифрования ГОСТ 34.10-2012, RSA-1024, AES-256-GCM, XChacha20-poly1305. Реализация нативно на чистом 1С без COM-объектов и внешних компонент.

1 стартмани

17.03.2025    992    13    alexyur    8    

5

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

Небольшой пример - "лайф-хак" по установке собственного пароля на отчет или обработку, не втягивая в это RLS.

3 стартмани

06.03.2025    2150    3    aximo    23    

13

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

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

1 стартмани

09.02.2023    3507    14    aximo    5    

2

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

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

2 стартмани

30.01.2023    2616    2    olevlasam    3    

3
Комментарии
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
1. amiralnar 9 30.12.24 15:39 Сейчас в теме
Такой модуль легко можно декомпилировать известными средствами.
gortol; maksa2005; Brawler; Olenevod; thornhiven; SerVer1C; PowerBoy; +7 Ответить
2. SAShikutkin 17 30.12.24 17:43 Сейчас в теме
(1) Запилите статью
alexey-simf; mrChOP93; VAAngelov; dimaster; thornhiven; +5 Ответить
3. SerVer1C 925 30.12.24 18:12 Сейчас в теме
Для чего вы делаете такие сложные манипуляции?? Можно же проще: меню "Текст" --> "Установить пароль".
Но надежность такого решения 1 из 10, т.к. любым декомпилятором восстанавливается алгоритм на 100%.
6. TMV 6 31.12.24 08:19 Сейчас в теме
(3) в чем смысл вашего комментария? Вы предлагаете другое решение и тут же говорите, что оно очень не надёжное. Но автор-то привел свое решение.
7. SerVer1C 925 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 925 31.12.24 09:16 Сейчас в теме
(5) Скажу вам по секрету, что всё поддается.
9. ivnik 619 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 374 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 Сейчас в теме
Все эти защиты: установка пароля, скрытие модуля, обфускация - имеют право на жисть, как минимум от пользователя или новичка защитят
18. popklop 15.05.25 10:58 Сейчас в теме
(11) Может в таком проще будет:

Функция а(а, а_)
Перем а__;
Если 1 <> 0 Тогда
a__ = 0;
Если а = а_ Тогда
a__ = -1;
a__ = 0;
a__ = 1;
Возврат Истина;
КонецЕсли;
a__ = -1;
Возврат Ложь;
КонецЕсли;
Если а = а_ Тогда
a__ = -1;
a__ = 0;
a__ = 1;
Возврат Истина;
КонецЕсли;
a__ = -1;
Возврат Ложь;

КонецФункции
19. user1399823 12 02.07.25 09:36 Сейчас в теме
А никто не прочитал информацию про декомпилятор? Они не декомпилируют комментарии. Если вы часть кода запихнете в комментарий, тогда при декомпиляция получите "шиш с маслом" :)
Оставьте свое сообщение