Защита внешней обработки - прячем и шифруем макет

16.06.15

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

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

Скачать файл

ВНИМАНИЕ: Файлы из Базы знаний - это исходный код разработки. Это примеры решения задач, шаблоны, заготовки, "строительные материалы" для учетной системы. Файлы ориентированы на специалистов 1С, которые могут разобраться в коде и оптимизировать программу для запуска в базе данных. Гарантии работоспособности нет. Возврата нет. Технической поддержки нет.

Наименование По подписке [?] Купить один файл
Hide_Template_1s.rar
.rar 5,68Kb
1
1 Скачать (2 SM) Купить за 2 150 руб.

Как защитить модуль внешней обработки от "чайника" знают все - поставить на него пароль. А что делать если основную ценность обработки представляет не только модуль но и макет табличного документа содержащий множество различных секций, который Вы рисовали не одну ночь. За примером далеко ходить не надо - посмотрите на любую форму Госкомстата :)

Ну что, поехали - постановка задачи: защитить макет табличного документа внешней обработки.

1). Сохраняем наш супер-макет табличного документа в MXL-файл - МойМакет.mxl

2). Удаляем его из обработки.

3). Архивируем МойМакет.mxl с помощью архиватора в формате ZIP, ОБЯЗАТЕЛЬНО С ПАРОЛЕМ - МойСекретныйПароль, получаем файл МойМакет.zip

4). Добавляем в нашу обработку макет типа Двоичные данные, называем его ШифрованныйМакет и загружаем в него файл МойМакет.zip

5). В форме обработки:

Процедура КнопкаВыполнитьНажатие(Кнопка)
   
Печать("ШифрованныйМакет"
);
КонецПроцедуры

6). Модуль обработки:

Процедура Печать(ИмяМакета) экспорт

   
ИмяMXLфайла = "МойМакет.mxl";

   
// Извлекаем файл ZIP из макета и сохраняем во временный файл
   
ИмяВременногоФайлаZIP = ПолучитьИмяВременногоФайла("zip");
   
ДвоичныеДанные = ПолучитьМакет(ИмяМакета);
   
ДвоичныеДанные.Записать(ИмяВременногоФайлаZIP);

   
// Извлекаем из ZIP-архива MXL-файл и сохраняем его во временный файл
   
ЧтениеZIP = Новый ЧтениеZipФайла(ИмяВременногоФайлаZIP, "МойСекретныйПароль");
   
ЭлементZIPАрхива = ЧтениеZIP.Элементы.Найти(ИмяMXLфайла);
   
ЧтениеZIP.Извлечь(ЭлементZIPАрхива, КаталогВременныхФайлов(), РежимВосстановленияПутейФайловZIP.НеВосстанавливать);
   
ЧтениеZIP.Закрыть();

   
// Получаем макет табличного документа из M
XL-файла
   
Макет = Новый ТабличныйДокумент;
   
Макет.Прочитать(КаталогВременныхФайлов()+ ИмяMXLфайла);
   

    // Заметаем следы
    УдалитьФайлы(КаталогВременныхФайлов()+ИмяMXLфайла);
   
УдалитьФайлы(ИмяВременногоФайлаZIP);
   

    // Показываем результирующий табличный документ пользователю
    Табличныйдокумент = Новый ТабличныйДокумент;
   
ОбластьМакета = Макет.ПолучитьОбласть("Область1|Область2");
    Для
Счетчик1 = 1 по 10 цикл
       
Табличныйдокумент.Вывести(ОбластьМакета);
        Для
Счетчик2 = 1 по 4 цикл
           
Табличныйдокумент.Присоединить(ОбластьМакета);
        КонецЦикла;
    КонецЦикла;
   
Табличныйдокумент.Защита=Истина;
   
Табличныйдокумент.Показать
();

КонецПроцедуры

7). А теперь самое главное: ставим пароль на модуль нашей внешней обработки - МойСекретныйПароль, иначе все наши выкрутасы с шифрованием-дешифрованием - коту под хвост :)

Конечно кто-то скажет, что данную защиту можно взломать, и конечно он окажется прав, потому что взломать можно ЛЮБУЮ ЗАЩИТУ. Идеальной защиты не существует, как впрочем, и ничего идеального ...

Вроде ничего не забыл.  Пользуем, плюсуем :)

 

Источник: http://www.obrabotki.com/1s-hide-template/

См. также

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

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

1 стартмани

09.02.2023    2751    12    aximo    5    

2

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

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

2 стартмани

30.01.2023    2163    2    olevlasam    3    

3

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

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

1 стартмани

04.12.2022    3599    16    keyn5565`    0    

14

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

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

2 стартмани

31.08.2022    4498    9    vit59    2    

6

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

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

10 стартмани

16.06.2022    12842    106    ZhokhovM    12    

45

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

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

2 стартмани

09.03.2022    6162    3    ge_ni    9    

2

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

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

1 стартмани

27.12.2021    5135    2    idm80    12    

9
Комментарии
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
1. Поручик 4658 12.03.10 23:01 Сейчас в теме
А теперь самое главное: раскрыли модуль, увидели пароль зипованного макета, и все ваши выкрутасы с шифрованием-дешифрованием - коту псу под хвост :)
Годится для чайников, чисто как пример работы с внешними макетами и архивами.
2. ll13 1071 12.03.10 23:09 Сейчас в теме
(1) Вы не открыли Америки, в начале статьи собственно это и написано.
Для кого псу под хвост, для кого коту под хвост http://ru.wiktionary.org/wiki/%D0%BA%D0%BE%D1%82%D1%83_%D0%BF%D0%BE%D0%B4_%D1%85%­D0%B2%D0%BE%D1%81%D1%82
3. Поручик 4658 12.03.10 23:16 Сейчас в теме
(2)
Статья нуждается в доработке.
Это незаконченная статья. Вы можете помочь проекту, исправив и дополнив её.
4. alexk-is 6544 12.03.10 23:37 Сейчас в теме
Тексты модулей можно раскрасить получше :)

Процедура КнопкаВыполнитьНажатие(Кнопка)
    
Печать("ШифрованныйМакет");
КонецПроцедуры
5. ll13 1071 12.03.10 23:47 Сейчас в теме
(4) Расскажите как Вы текст раскрашиваете ?
А то я искал, так и не нашел... :(
6. Поручик 4658 12.03.10 23:50 Сейчас в теме
7. ll13 1071 13.03.10 00:00 Сейчас в теме
8. Душелов 4020 13.03.10 00:31 Сейчас в теме
Эта защита от кого? От разработчика? Эту "защиту" он обойдет за 10-60 минут (в зависимости от опыта).
От пользователя - и пароля хватит.
awk; awa; Abadonna; +3 Ответить
9. Rusk51 88 13.03.10 22:53 Сейчас в теме
(8)+ А пользователю макет и даром не нужен ;)
12. Abadonna 3969 14.03.10 13:23 Сейчас в теме
(9)
А пользователю макет и даром не нужен

Знаю я пользователей, которые лихо с макетами расправляются. Особых знаний там же не нужно.
13. Душелов 4020 14.03.10 23:01 Сейчас в теме
(12) Таким в конфигураторе делать нечего.
14. Abadonna 3969 15.03.10 02:50 Сейчас в теме
(13)
Таким в конфигураторе делать нечего.

Ну прям! Им надо дожидаться "мальчиков" из франчей?
Вот, что пишет мне одна очень продвинутая бухгалтерша:
Наталья Энерго (11:24:00 11/03/2010)
так вот именно. Ну, а кто работает в 1С-БИТ, это и так все знают. Берут людей без ничего и с улицы, (не говоря уже о том, что вчера этот мальчик просто откровенно делал все ПО БУМАЖКЕ)
;)
15. Душелов 4020 15.03.10 07:51 Сейчас в теме
(14) Ну молодец, что по бумажке!
16. larisab 160 15.03.10 08:09 Сейчас в теме
(14) Мы где-то уже обсуждали этот вопрос. Филиалы московского БиТа - это продажи коробок и ИТС-сервис. Платят там мало, работают одни студенты. НЕ ВСЕ франчи такие ;)
17. Abadonna 3969 15.03.10 08:10 Сейчас в теме
(16) Это КРАСНОЯРСКИЙ БИТ был;)
18. larisab 160 15.03.10 08:11 Сейчас в теме
(17)
Это КРАСНОЯРСКИЙ БИТ был

Он филиал московского БиТа.
И у нас такой же ;)
10. Tatitutu 3847 14.03.10 11:02 Сейчас в теме
Змейка
:D посмотри как эта обработка закрыта.
Паролей нет, удали в модуле весь код и запусти, удали все и запусти - результат тот же - все работает.
День ушел , чтобы найти и понять (как это сделано и самое главное как так сделать)
11. ll13 1071 14.03.10 12:32 Сейчас в теме
(10) Я то думал что этот фокус(внешняя обработка без текста модуля) уже все знают ))
Как так сделать знал уже давно, будет время статейку напишу.
На вскрытие ушло 30 секунд )
23. WellMaster 104 17.03.10 13:11 Сейчас в теме
(11)
"На вскрытие ушло 30 секунд )"
На вскрытие обработки без исходного модуля? Поделитесь, плз, методикой.
24. awa 2610 17.03.10 15:30 Сейчас в теме
(23) Найдётся всё!
Надеюсь, это не является нарушением правил))
25. bulpi 217 17.03.10 16:41 Сейчас в теме
(10)
Я не понял, что Вас так поразило в обработке Змейка? Ничего особо странного я там не заметил :oops:
26. ll13 1071 17.03.10 16:46 Сейчас в теме
(10),(25) Да, да кстати расскажите что необычного в игре змейка, может я что интересное не заметил(без шуток). Сейчас как раз во внутренностях epf копаюсь.
27. bulpi 217 17.03.10 18:08 Сейчас в теме
(26)
Можно ли назвать необычным кольцевую ссылку на форму в модуле, благодаря которой форма не обновляется методом "закрыть обработку и снова открыть" ? Так это было известно еще с первых дисков ИТС по 8.0. На целый день тут никак не наскребешь :)
19. iov 407 16.03.10 00:10 Сейчас в теме
хм ....
была как-то проблема.... Ставлю прогу а она не ставится говорит что dll заменить не может...
Прога перед установкой в темп дир распаковывалась быстро так и удалялась также... Так вот помогли мне права на папочку нужные выстваить...и вуаля.... все что распаковала удалить не может... а тама dll старую поменял на новую и запустил повторно установочку...
Мысль ясна?
чем отследить файловую активность расказывать надеюсь не нужно....
А самое главное что сохранить печатную форму и сделать из него макет....
ну скажем так... Вот за публикацию потенциально "НЕБЕЗОПАСТНОГО" кода +
За то что не знал что этим на ура пользуются "-" (в любой закрытой обработке может размещаться подобная схема и внедрять в систему реальную угрозу вашим данным)
Но в целом за позитивчик "+"
20. Душелов 4020 16.03.10 00:35 Сейчас в теме
(19) >в любой закрытой обработке может размещаться подобная схема

Не надо открывать такие закрытие разработки. Или предварительно распаковывать их смотреть код.
21. iov 407 16.03.10 00:50 Сейчас в теме
(20) Именно так ;) Но как поется в одной старой но до сих пор актуальной песне - "будь осторожен :!: ". И не все помнят это и порой случается что фирма как то резко сдала позиции конкуренту....
22. iov 407 16.03.10 00:58 Сейчас в теме
Был знаком с человеком который распространил одну обработку которая хранила в себе вредную штуку (которая ждала команды хозяина с определенного ресурса) , но надо было такому случится что именно в этой вредной штуке он ошибся одной буквой c и с (и получить отклик смог а вот выполнить удаленно код уже нет). Так он распространил хорошую весчь просто так...
И это можно сказать веселая история. наверно единственная... Потому что остальные истории заканчивались не очень хорошо для невнимательных.
28. demanru 28 19.03.10 12:59 Сейчас в теме
а в ХранилищеЗначения? Можешь кидать туда всё что угодно и доставать как бинарный файл ;)
29. ll13 1071 19.03.10 22:11 Сейчас в теме
(28) Угу, особенно во внешней обработке ...
Пример в студию !
30. ILM 241 22.04.10 21:20 Сейчас в теме
Если бы обработки позволяли хранить данные внутри себя. Причем не меняя размер. Много задач можно было бы решить без единого изменения конфигурации. Одними внешними разработками ;)
31. v.l. 435 11.10.11 14:11 Сейчас в теме
Я вот что думаю - можно ведь этот MXL загнать в виде строки и зашифровать её штатными средствами 1С 8.

Пример:

	КартинкаВСтроке = "iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAIAAABvFaqvAAAACXBIWXMAAAs6AAAL
	|OgFkf1cNAAAEbElEQVR4nJXTazSbdxzA8ZyzIZnI5Xme0IZEXDvXFE2Kuu2U­sZnV
	|pkq1xzhTXa1no0IQtyCppFPnuAalHIYVzUq0uiXIEMclmYQ8iSKKJy55vxd7­txec
	|XlE75//iOc/3eT4v/v/fH2Uy6k+y1jdV+Z3XI1LBqxHWfS0VxnX1Ox+gPkgg­hgV4
	|cSynMPJcFpZeaHUhDZtXd3l5VfH/IMSw8KRdwOcnedWSSEMgOEkiTEGBYwyB­rnTy
	|5dMNZOFE0O6mVjog+jHGLSYIbSciYqvxhFGAIIMIEogmdUqcja/S8E4EqSYH­78T7
	|pYSS67lpYSzaqVw8tgGPqwdwdURcHQCKbKhtjrBB8QFoc2VeVH4zkYHrbylX­TTxJ
	|T/RM4Pide+hH5dFwJURsOR57j4AV4gfmO46D9hDdn/2NqWG2gsxvt1ZVGyvz­Bd+F
	|lNyOeqCtyZTeim6LCm0KCW0N+bwzXLLQcxxkXFdXs5OuXyCND7aZjPo9BObd­jmEl
	|MrV6uXJNplweVSw9q5MJK6QcOTx0HLSgkBSmhAnvXH65PLcPNXJvJAfbzMvF­Owi8
	|g2hNRv3iiwl4TbH/fCT013CHICtOJm7eQ+B9SPq46adYL+mAaA/RHfrLIdDW­qqq/
	|uayuKBVWSl+9XNMqagtTehuK3p/pIyG9crTsh6iOqmzjyut529lYGuwQ3suO­183J
	|tg2aN9O70N6WDh5//ojDFkRHJtAtWYGe4nzOguTxq9TNzroZSGX5e1YGh3dn­ZO6n
	|9yBEpxQ/El2MLfN2+9naLu6MxfeniSxzuwpnxkgFf7a3qyEspt8zLN/d9pob­Jg0H
	|ZXxMLnXwHeHxjavqt6DlSWklPViezm669M21j0gJAC6BQChA23Mt7AsAl2Ky­Ryvg
	|aYhO5bm6JwL4BACfh6Zy0fYc6MwI/+6+dQB1pWU8DI//d9ukFbU30wMqHNxK­Qdd2
	|oler1ad5aEqOGVlMjzS0/loTFMohudx39BDb+HRYueWhKZVeQfL6+m2DBmUy­6rWj
	|z6r8wyfy+P9olpHkXK17hNo7cooSpITO9wFepRhathm56+KV3YnZmfCkSffP­NM6h
	|SuuDxLaidSWnr0yPoXbWF8fqa8sd/br9ouDYW/pTQTB4XgcFwETmNOjXA3rz­MQ7Z
	|Zqdrnfz/jrkBQ/46KED7RmJhKI0RsUt/SFA764ujNTU8V6YQ6/yU5DsPMhYB­xhLA
	|nAMZQ6BvF+BdhqaxzG2FWKdxwPeQZGHX/NWVFwoZyoToVL/31QR/WYShthHc­JZCv
	|FPR9DvqIQXofdLYJ71ZgTskxt/3F0mkQ8jk0DZdwD/bIuKqW3a8utvOq+ITW­THDv
	|Ael90NlekN5G8OBiaLnmtmwMhYuxPzTxXRha6fDrU9vd1Ipz8kup3sUYqgDr­VIV1
	|Flo6FllQctGUu67Mlq8Tj0ryhvrdjaW3Jnt3UztWV9v4RRzfhZmPtc8xI5eQ­PR5c
	|ujrT3bm9rjkq7W4ecfs3lmbmB36b7myfam1RD4uRZdVJksmo/w8QKxDHSNf5­ZQAA
	|AABJRU5ErkJggg==";
	КартинкаВДвоичныхДанных = Base64Значение(КартинкаВСтроке);
	Картинки.Вставить("Бонус1",Новый Картинка(КартинкаВДвоичныхДанных));
Показать
32. yuraos 1003 20.01.13 17:15 Сейчас в теме
Вопрос знатокам:
А как бы исшо для пусчей важности "защитить" модули форм???
Оставьте свое сообщение