Имя: Пароль:
1C
Спам
Баян - Защита обработок
🠗 (Amra 29.08.2012 18:19)
, ,
0 Hussein
 
29.08.12
17:13
protect1c.ru
Пробуем, хвалим, ругаем
1 Wobland
 
29.08.12
17:16
можно я с последнего начну?
2 Hussein
 
29.08.12
17:19
(1) можно
3 Sereja
 
29.08.12
17:21
(0) Еще и регистрироваться надо. Отличный ход
4 Wobland
 
29.08.12
17:23
(2) грязный спамер
5 Hussein
 
29.08.12
17:25
(3) а вдруг вы троян захотите загрузить ))
6 Web00001
 
29.08.12
17:32
не открываетсо, миста эффект?
7 Web00001
 
29.08.12
17:33
ааа сайт просто тупит очень жестко, сразу не понял
8 АЛьФ
 
29.08.12
17:36
Тю! Шифрование... в сад... Уж лучше штатную поставку без исходников использовать. Надежней будет.
9 Hussein
 
29.08.12
17:38
(8) Штатная поставка без исходников оставляет в темпе следы со всеми вытекающими ... Кто мешает зашифровать без исходников - еще надежней будет
10 АЛьФ
 
29.08.12
17:39
2(9) Ага. А шифрование это создает файл с открытыми исходниками. Красота!
11 Hussein
 
29.08.12
17:46
(10) Шифрование не создает файл, а шифрует то, что ему скормили, в т.ч. и файл без исходников и закрытый паролем
12 MMF
 
29.08.12
17:53
фигня какая-то
13 Hussein
 
29.08.12
17:54
(12) аргументы
14 quest
 
29.08.12
17:56
(13) да просто - фигня. без аргументов. что такого наваять на 1С можно чего бы не повторить за разумное время?
15 Stim
 
29.08.12
18:00
Вывод простой — защищать разработки 1С нужно с помощью сложных программно-аппаратных решений(ключи, специальные продукты для защиты конфигураций), и соответственно, на защиту надо тратить немалые средства и время. А если стоимость разработки находится в переделах 3-5 тысяч рублей, тогда затраты на защиту превышают стоимость самой разработки.

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

Технология защиты проста. Достаточно вынести программный код в модуль объекта ЗМ, организовать вызовы процедур из него, затем зашифровать ЗМ и загрузить в макет. Загрузка ЗМ может выглядеть следующим образом:

http://protect1c.ru/sites/default/files/protect_1c_pic1.png
Загрузка ВК (Addin.dll) и пример работы с защищенным модулем на странице http://protect1c.ru/modules-for-1c
Шифрование кода в ЗМ на странице http://protect1c.ru/upload4code (необходима регистрация на сайте protect1c.ru)
Данная технология работает только для традиционного толстого клиента 1С (обычного приложения )
Несколько замечаний по уязвимости, предваряя флейм на тему «это не защита».
Недостатком этого способа, как неоднократно отмечалось, является необходимость наличия расшифрованной обработки в виде файла на диске. Однако, на самом деле, недостаток этот не так велик, как кажется. Во-первых, время жизни этого файла сведено к минимуму, во-вторых, в модуле объекта ЗМ есть смысл написать следующую строчку:
http://protect1c.ru/sites/default/files/protect_1c_pic2.png
Такая строка не приводит к неработоспособности обработки, но затрудняет отладку. Не следует пренебрегать и стандартными способами защиты: установка пароля на код модуля объекта, поставка без исходных текстов, обфускация кода (http://nashe1c.ru/materials-view.jsp?id=121). При выполнении этих условий вскрытие кода становится достаточно непростой задачей.
Много говорилось о наличии в каталоге %TEMP% файлов с байт-кодом загруженного модуля. Нами было проведено несколько экспериментов на эту тему. В результате выяснилось, что по крайней мере платформа версии 8.2.16.352 не создает файл с кодом МОДУЛЯ ОБЪЕКТА(!). В %TEMP% только модуль формы. Если у кого-то есть другая обоснованная информация – welcome в комментарии.
В ходе экспериментов выяснилось, что оператор Выполнить(СтрокаКоманды) (естественно!) не приводит к компиляции выражения, переданного как СтрокаКоманды, то есть байт-код для этих команд отсутствует. Этот факт предоставляет широкое поле для экспериментов на тему защиты кода. В скобках замечу, что нам так и не удалось заставить выполняться команду выполнить внутри ВК, (злополучный method not supported by automation object () ). Если у кого-то получится – welcome в комментарии.
Достоинством данного подхода является отсутствие необходимости перекомпилировать код ВК, а также то ,что весь код может быть написан только на 1С. Единственной операцией вне рамок 1С программирования является шифрование ЗМ.
16 quest
 
29.08.12
18:00
(13) лучше бы уж обфусикацию доделал. развернул все циклы в метки и условия, все функции - в одну и опять же переход по меткам, а вот на что переходить - динамически бы формировал по выполнить.... Средний одинесник когда видит слово перейти уже считает что такое нельзя читать и обработка - вселенское зло... а представь у тебя их штук 500 в обработке? и куда перейти становиться ясно только на этапе выполения. И менять имена меток нельзя - не туда перейдет
17 Nexux
 
29.08.12
18:00
"сервис".подумалось, что грузишь на сервак открытую epf, а она отдает шифрованную
18 Hussein
 
29.08.12
18:10
(17) она и отдает зашифрованную epf, которую ложишь в макет как двоичные данные
19 mehfk
 
29.08.12
18:13
(15) Если файл был записан на диск, то он восстанавливается на раз-два.

(8) Аналог КЗК2 для снеговика будет?
20 Hussein
 
29.08.12
18:15
Модератор, удалите, плиз пост №15
21 Amra
 
модератор
29.08.12
18:18
(20) Можно мы сами решим что делать?
22 Hussein
 
29.08.12
18:19
(21) на сколько я понимаю из-за этого поста тема помечена как спам
23 Amra
 
29.08.12
18:21
(22) Скажи спасибо что вообще не закрыли. Обсуждение действий модераторов на этом останавливаю, во избежание п. 8
24 mehfk
 
29.08.12
18:22
" В результате выяснилось, что по крайней мере платформа версии 8.2.16.352 не создает файл с кодом МОДУЛЯ ОБЪЕКТА(!). В %TEMP% только модуль формы"

Код покажете?
25 Mafoni
 
29.08.12
19:01
(0) - Реклама детектед !!!!
26 Hussein
 
29.08.12
19:04
(25) Какая реклама? Вынесли на суд общественности свою нетленку
27 Mafoni
 
29.08.12
19:21
(26) - А эт разве не реклама ?
28 Steelvan
 
29.08.12
21:35
(0) К сожалению это факт.

Выкладываешь на мисте, будь готов что из 100 постов 90 будут тебя обс.рать.
29 Steelvan
 
29.08.12
21:36
(0) Цель написания нетленки ?
30 Steelvan
 
29.08.12
21:36
Просто в свободное время ?
31 Hussein
 
29.08.12
22:11
(29) Цель - сохранение таинства других собственных нетленок ))) Помоему каждый из разработчиков не раз или на кидалово попадал. Изначально это был вариант с привязкой к любым данным из БД (в том числе и из системных таблиц), построенный на использовании двух ключей ... Но автоматизировать тот вариант пока не предствляется возможным.
32 Hussein
 
29.08.12
23:22
(12) ...  не читал, но осуждаю
33 Steelvan
 
30.08.12
16:21
А шифровать общие модули ?
34 Hussein
 
30.08.12
17:31
(33) Зашифровать общий модуль естественно нельзя. Но никто не мешает выдернуть код из общего модуля, оформить его ввиде внешней(их) обработки(ок), зашифровать, положить в макет(ы) стартовой обработки или в общие макеты, сделать загрузку внешней компоненты в общем модуле ...
35 Hussein
 
02.09.12
14:07
(12) ну вобщем да, фигня полная, хорошо что статью на инфостарте не повесил - вскрывается на раз-два-три
36 Hussein
 
20.09.12
08:19
Кстати, проверка показала, что обфускация байт-кода тоже вскрывается на раз-два-три. И защита от декомпиляции - такая же мистика. Кому интересно - изложу методику так называемой защиты и ее вскрытия. Проверялось на общеизвестной обработке....
37 Hussein
 
20.09.12
08:20
Так что для защиты программ - только ВК.
Компьютер — устройство, разработанное для ускорения и автоматизации человеческих ошибок.