Имя: Пароль:
1C
 
Как защитить нетленку, если она - внешняя обработка?
0 mikecool
 
15.11.19
16:01
Нужна защита от модификации и копирования
не спрашивайте зачем - клиенту надо
1 Ёпрст
 
15.11.19
16:05
самый примитив - обфускация кода, этого вполне хватит
2 Fish
 
15.11.19
16:06
(1) Надо ещё от копирования.
3 d4rkmesa
 
15.11.19
16:06
(0) Эм, такой примитив, как установка пароля на модуль, не подойдет?
4 d4rkmesa
 
15.11.19
16:07
(3) Плюс проверка контрольной суммы файла, каким-то образом.
5 mikecool
 
15.11.19
16:08
(4) к чему привязываться? как генерить, в какой момент?
6 Fish
 
15.11.19
16:08
(3) На модуль формы вроде не поставить.
7 H A D G E H O G s
 
15.11.19
16:16
(5) ИНН и КПП.
Надо чтобы результат твоего поделия зависил от этих параметров, чтобы не подменили в транзакции.
8 unenu
 
15.11.19
16:17
(0) никак - если нетленка гениальна, то ее вскроют
9 Мимохожий Однако
 
15.11.19
16:19
(0) Делай её кривой... Г..код от копирования защищён априори.
10 mikecool
 
15.11.19
16:19
(7) тоже склоняюсь к этому
(8) знаю, но клиенту надо
11 mikecool
 
15.11.19
16:19
(9) уже не умею )
12 Мимохожий Однако
 
15.11.19
16:20
(11) Поговори с Маней. Он-спец в этом.
13 Мимохожий Однако
 
15.11.19
16:21
(12) + хотя... ломал )
14 mikecool
 
15.11.19
16:21
(12) он на своей волне и редко отвечает
15 Фрэнки
 
15.11.19
16:22
(14) он отвечает много и часто, но не поймешь кому и зачем. Своего рода тоже защита от копирования :-)
16 mikecool
 
15.11.19
16:25
(7) смущает только - что мешает скопировать поделие, создать в базе фиктивную организацию с таким же ИНН и КПП
17 d4rkmesa
 
15.11.19
16:26
(5) Смотря какая квалификация возможных "модификаторов" внешней обработки.
18 Фрэнки
 
15.11.19
16:26
А какая цель всех этих усилий? Ну зафиксировать текст модулей и все ее содержимое от модификаций - это еще куда ни шло, а что еще?
19 Fish
 
15.11.19
16:27
(7) А если ИНН/КПП сменится? Понятно, что это редкость, но таки бывает.
20 mikecool
 
15.11.19
16:30
(18) зафиксировать текст - это полбеды, в принципе - пусть модифицируют, имхо
тут суть - чтобы поделие по рукам не пошло
21 mikecool
 
15.11.19
16:31
(19) новая поставка, но бесплатная для клиента
22 Fish
 
15.11.19
16:38
(21) Тогда вариант. А чтобы по рукам не пошло, клиент не должен знать, что все на ИНН/КПП завязано.
23 dmt
 
15.11.19
16:40
(0) можно поднимать флаг в базе (например, в хранилище настроек) и проверять его наличие
24 Мимохожий Однако
 
15.11.19
16:42
Можно зашить в обработку макет со своей библиотекой и привязать к компьютеру клиента.
Ты сделай голосовалку. Кто хоть раз сталкивался с воровством своих нетленок? )) Пятнично
25 Фрэнки
 
15.11.19
16:43
(20) Можно впихнуть двоичный код в макет. И привязять этот код к железяке клиента. Внешнюю обработку сделать с паролем на модуль объекта. В модуле объекта проверять целостность и соответствие двоичного кода.
26 mikecool
 
15.11.19
16:45
(25) модуль уже без исходного кода
макет нельзя изменить программно, надо - передал и забыл
я в этом участвовать не буду, только клиент, который заказал поделку
27 mikecool
 
15.11.19
16:46
(23) вот это как вариант, только засада - хранилище между клиентскими сеансами не передается
28 mikecool
 
15.11.19
16:47
+27 я с этим столкнулся, когда настройки нужно было передавать между людьми. думал - хранилище есть общее для всех, но не нашел такого
29 Фрэнки
 
15.11.19
16:49
В любом случае, если это именно обработка, то публичный предопределенный вызов только один - При открытии формы.
Как ни извращайся, а открытый текст модуля формы позволит все сломать даже без особой фантазии взломщика.
30 mikecool
 
15.11.19
16:50
(29) любой вызов модуля объекта можно пробросить через проверку
31 hhhh
 
15.11.19
16:50
(27) ХранилищеНастроек (SettingsStorage)
Использование:

Только чтение.
Описание:

Тип: ОбъектМетаданных: ХранилищеНастроек.
Объект метаданных ХранилищеНастроек, в котором указывается, какое хранилище использовать для хранения настроек пользователя.

Доступность:

Сервер, толстый клиент, внешнее соединение.


ХранилищеНастроек на клиенте не существует, зачем его передавать?
32 mikecool
 
15.11.19
16:50
+30альфаавто тому примером
33 mikecool
 
15.11.19
16:51
(31) я имел ввиду - между пользовательскими сеансами, если я что то сохраняю под одним пользователем - другому не доступно
34 hhhh
 
15.11.19
16:52
(33) с чего это не доступно? очень даже доступно.
35 mikecool
 
15.11.19
16:53
(34) вот как то у меня не получилось ...
36 mikecool
 
15.11.19
16:54
(34) какое хранилище доступно сразу всем пользователям? я, кажется, все доступные перепробовал, где то обманулся?
37 H A D G E H O G s
 
15.11.19
16:59
ХранилищеСистемныхНастроек
но нужны админ права, а во ВнешнейОбработке их не получишь
38 mikecool
 
15.11.19
16:59
(37) вот да, на это и наткнулся
39 H A D G E H O G s
 
15.11.19
17:00
(38) Я не уверен, но попробуй передать в ИмениПользователя Неопределено
40 hhhh
 
15.11.19
17:11
(37) у текущего пользователя должно быть право АдминистрированиеДанных. У меня получалось.
41 Garykom
 
гуру
15.11.19
18:00
(0) Более менее надежно только вынос кода из обработки наружу в dll или в exe.
Все прочее хрень которая снимается легко.
42 Конструктор1С
 
15.11.19
18:59
(0) а что за поделие такое секретное?
43 Сияющий в темноте
 
15.11.19
19:50
можно в обработке создать MsScriptControl и из него через Wmi получить информацию о системе.
Далее,в макет пишется ключ,который Передается в алгоритм для получения исполняемого кода.

проблема в том,что отладчиком на машине,где она работает,код достается.

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

даже когда часть кода в ключе исполняется,и то считывают и копируют.
44 Garykom
 
гуру
15.11.19
20:07
(43) Не взламываемую защиту сделать невозможно, но можно сделать стоимость взлома дороже стоимости обработки.

В случае если обработка требует периодического обновления то задача по защите сильно упрощается.
45 palsergeich
 
15.11.19
20:34
http://catalog.mista.ru/public/1080907/
В этой статье есть хинт как сделать так что бы та самая обработка по декомпиляция не брала ее.
46 palsergeich
 
15.11.19
20:36
(45) 99.9999% специалистов 1с уже не осилят исходный код получить.
А остальная часть получит как его не закрывай