Имя: Пароль:
IT
 
Есть ли методы обфускации кода в общих модулях 1с8?
,
0 Stagor
 
10.04.12
15:28
Интересует способ без привязки к физическим ключам.
т.е. что-бы клиент не копался в модулях сам!?
1 mikecool
 
10.04.12
15:29
убери все переводы строк и лишние пробелы
2 Steel_Wheel
 
10.04.12
15:30
Гм. А разве обфускация -- это не снижение читабельности?
3 Жан Пердежон
 
10.04.12
15:30
зачем?
пусть копается
потом еще денег с него слупишь, чтоб вернуть как было
4 XLife
 
10.04.12
15:30
вк?
5 PR
 
10.04.12
15:31
Нетленка детектед
6 Stagor
 
10.04.12
15:31
(1) так, что бы их местный фикси не вскрыл. Что такое декомпилятор 1С, так что пароль на модуль - дохлый номер!
7 akaBrr
 
10.04.12
15:31
(0) А права отобрать заходить в конфигуратор, не?
8 Волшебник
 
10.04.12
15:31
(1) Тогда комментарий // распространится до конца строки.
9 mikecool
 
10.04.12
15:31
(6) думаю - запарится вскрывать )
10 Stagor
 
10.04.12
15:32
(5) Нет. Ленка.
(7) Нет.
11 le_
 
10.04.12
15:32
12 mikecool
 
10.04.12
15:32
(8) первое что пришло мне в голову )
все переменные типа а, б, х
никаких комментов и прочая )))
13 Stagor
 
10.04.12
15:33
Запутывать переменные и имена функций то же  - не выход, к сожалению!
14 andrewks
 
10.04.12
15:33
(13) это почему?
15 Волшебник
 
10.04.12
15:34
(12) Лично я не вижу никакой ценности в таком коде.
16 H A D G E H O G s
 
10.04.12
15:34
(14) Потому что это шустро правится с помощью ctrl+h
17 PR
 
10.04.12
15:35
(8) А комментарии при обфускации нужно _обязательно_ удалять
18 andrewks
 
10.04.12
15:38
(16) любая обфускация приводится к читабельному виду. вопрос только, сколько усилий и времени на это будет затрачено
19 Feanor
 
10.04.12
15:38
Стыдно за собственный код перед фикси клиента?

З.Ы. погугли wiseadvice
20 Stagor
 
10.04.12
15:38
(14) Все равно логика видна! Имена методов объекта остаются!
21 Stagor
 
10.04.12
15:39
(19) Смотрел, не подходит http://forum.infostart.ru/forum24/topic32439/
22 andrewks
 
10.04.12
15:39
код зашифровывать, кидать в хранилище. потом его извлекать, расшифровывать и выполнять.
23 Адинэснег
 
10.04.12
15:39
(0)кури нативапи и выноси функциональность туда
24 Stagor
 
10.04.12
15:40
(22) Как вариант. :)
25 Волшебник
 
10.04.12
15:40
Берёте стандартный код УПП и получаете пример грамотно обфускации. Самая главная фишка в многочисленных вызовах процедур с неочевидными параметрами и результатами. Если  добавите рекурсию, то будет ещё лучше. Причём рекурсия желательна из 3-4 процедур, вызывающих друг друга по схеме:
A -> Б -> В -> Б -> A
26 Волшебник
 
10.04.12
15:41
(22) Предлагаю выполнять без расшифровки. Тогда результат будет тоже непонятный.
27 Feanor
 
10.04.12
15:42
(21) а чем не подходит? там вроде можно шифровать отдельные модули
28 Дикообразко
 
10.04.12
15:42
(25) он же прост, как три копейки
29 Stagor
 
10.04.12
15:44
(11) классная вещь, спасибо!
30 Волшебник
 
10.04.12
15:44
Я ещё придумал способ. Все ключевые слова нужно перевести на английский. Т.е. использовать английские эквиваленты.
31 andrewks
 
10.04.12
15:46
или  можно ещё круче: завести для хранения зашифрованного кода отдельную базу (1с/mssql/mysql/firebird/etc).
далее, вызов любой функции модуля будет состоять из запроса к базе с кодом, расшифровки, выполнения кода, и возвращения результата
32 pumbaEO
 
10.04.12
15:46
(19) +10050
33 andrewks
 
10.04.12
15:50
(и тут остапа понесло) или закинуть код в облако
34 Aswed
 
10.04.12
15:50
Писать код на китайском
35 Stagor
 
10.04.12
15:52
(19) наивный.
(32) ты то же!
36 H A D G E H O G s
 
10.04.12
15:53
(33) Облако сдохнет.
37 Stagor
 
10.04.12
15:53
(27) привязка к ключам.

Всем спасибо, вопрос решен :)
38 MMF
 
10.04.12
15:54
(30) таких обфускаторов надо убивать в детстве из рогатки, чтобы не успели размножиться. У меня в одной конфе филиала код наполовину на англ, без форматирования и с идентификаторами в стиле "А", "АА", "ААА". Когда приходится от них что-нить загружать и открывать их конфу, как в бочку с гуаном погружаешься
39 H A D G E H O G s
 
10.04.12
15:54
(33) Это ты счаст Тонкого Клиента рассказал.
40 Волшебник
 
10.04.12
16:36
(38) А зачем ты делал декомпиляцию защищённых модулей? Вот получай теперь
41 Дикообразко
 
10.04.12
16:50
(38)
фигня,
вот так будет лучше
_ = 2;
__ = 3;
___ = _+ __;
42 andrewks
 
10.04.12
17:00
(41)  (_|_)
43 Stagor
 
10.04.12
17:32
(41) Фигня, а не защита.
СтрЗаменить(Текст,"_","Имя"); СтрЗаменить(Текст,"__","Фамилия");
44 Дикообразко
 
10.04.12
17:36
(43) не взлетит :)
45 kuromanlich
 
10.04.12
17:37
(40) древняя неприязнь?..
46 Stagor
 
10.04.12
17:40
(44) сам, так расшифровал модуль, защищенный, как в (11)
муторно, но верно. Потом по логике - назвал переменные более корректно!
47 kuromanlich
 
10.04.12
17:41
(46) зачем расшифровывал? оплачивалос отдельно?
48 Stagor
 
10.04.12
17:42
если конечно модуль в 10 тыщ. строк то - да, можно защитить, как в (11), но обычно логика переменных видна, как её не назови!
49 Stagor
 
10.04.12
17:43
(47) нужно было интегрировать, часть модуля пришлось расобфускировать!
50 Дикообразко
 
10.04.12
17:43
(46) твой код работать не будет, надо наоборот, начинать с самых длинных переменных :)
51 GenV
 
10.04.12
17:46
(43) Это только если во всем коде эта переменная Имя и Фамилия, а если она несколько раз в разных процедурах несколько раз инициализируется и имеет разное значение, то потом еще и в каждой процедуре в каждом блоке по смыслу править
52 Stagor
 
10.04.12
17:47
(50) я часть переменных расшифровал. Этого было достаточно!
Вообще, видел декомпилятор, который сам защищен так, что вообще кода нет :)
53 Stagor
 
10.04.12
17:47
(51) Так и есть!
54 boggonzikov
 
10.04.12
17:50
для обфускации можно использовать http://infostart.ru/public/15907/ работает.
55 Stagor
 
10.04.12
17:52
(54) Она в (11) уже указана.

в (43), что расшифровывал модуль, который таким образом защищен!
56 fisher
 
10.04.12
17:52
Большинство нетленок никакой дополнительной обфускации не требуют. Хватает врожденной.
57 GenV
 
10.04.12
17:53
(55) Только не говори, что не зная алгоритма работы и имен переменных ты сможешь восстановить исходный код как было.
58 Stagor
 
10.04.12
17:54
- замена имен переменных/процедур/функций/параметров на трудночитаемые;
это немного затрудняет расшифровку - не более.


- удаление форматирования текста;
фигня. Есть авто-форматирование :)


- шифрование строковых переменных (может потребоваться capicom.dll).
так же легко расшифровывается в обратную сторону - функция то 3 строчки!
59 Stagor
 
10.04.12
17:54
(57) Как было? Только другое название функций и переменных.
60 Дикообразко
 
10.04.12
17:56
(59) циклы и условные операторы можно заменить на GoTo
61 boggonzikov
 
10.04.12
17:56
при обфускации кода теряется логика работы кода. И не факт что на расшифровку ты потратишь меньше времени, чем написать новый.
62 boggonzikov
 
10.04.12
17:57
для защиты без заморочек вполне достаточно, если этого не хватает, тогда хасп с ключами.
63 GenV
 
10.04.12
17:57
(59) А смысл тогда от расшифровки если все равно будешь все сам анализировать и проверять логику построчно?
ЗЫ Засунь в зашифрованную dll и будет счатье )
64 boggonzikov
 
10.04.12
17:58
а вообще, поддерживаю (5)
Нетленка детектед ))
65 Stagor
 
10.04.12
18:02
Сам автор coder1cv8 про (54)
<
Согласен. Данная обработка написана мной чисто из интереса, без какой-либо практической цели.
Я считаю, что будущее защиты исходного кода для восьмерки за обфускаторами так называемого "байт-кода". Более тего, я тестировал бэта-версию такого обфускатора и могу сказать, что существующие на данный момент декомпиляторы просто вываливаются с ошибкой при попытке декомпеляции защищенного таким образом модуля (только не просите у меня эту обработку, я не автор и распространением не занимаюсь). >
66 Stagor
 
10.04.12
18:02
(64) Нетленка детектед - нафиг!
Здесь можно обсудить любую тему при этом оставаясь на форуме для 1Сников, который нужен для работы. Ymryn