Имя: Пароль:
1C
 
Запутанный код - как это и чем читать?
↓Ø (Волшебник 23.10.2024 00:00)
0 spiller26
 
14.10.24
16:55
Чем прогнали код, что так получилось?
1 Волшебник
 
14.10.24
16:56
2 Мультук
 
14.10.24
16:56
(0)

google:
Обфускатор кода 1С
3 oleg_km
 
14.10.24
16:57
Можно попробовать отформатировать. А так обфускация вроде это называется
4 spiller26
 
14.10.24
17:00
Как обратно сделать эту обфукцию?
5 Волшебник
 
14.10.24
17:00
(4) Никак.
6 PLUT
 
14.10.24
17:01
(0) нетленка детектед :)

работает? не трожь

и зачем читать запутанный кем-то код?
свой распутанный напишите
7 Гена
 
14.10.24
17:05
Ведь воруют... граждане судьи... много воруют (с) Юрий Деточкин
8 dmt
 
14.10.24
17:05
(4) обратись к автору
9 spiller26
 
14.10.24
17:12
(6) Формирование печатной формы. Внешняя нужна на основе уже имеющейся.
Придется самому вытаскивать данные теперь.
10 spiller26
 
14.10.24
17:07
(8) Я уже обратился. Жесть конечно.
11 oleg_km
 
14.10.24
17:16
(10) А в чем жесть? Исключительные права на код первоначально имеет автор. Остальные его получают только по договоренности (предварительной или последующей) с автором, на индивидуальных или общих условиях. В данном случае автор недвусмысленно дал понять, что не приветствует несанкционированное заимствование кода. Или он вас обманул и у вас была изначальная договоренность, что он передает вам код?
12 PLUT
 
14.10.24
17:20
(10) ну дык свою внешнюю напиши - денег заработаешь и почёт и уважение
13 СвинТуз
 
14.10.24
17:26
(0)
так тяжело распутать клубок?
15 СвинТуз
 
14.10.24
17:27
(0)
Автора кода на здоровье проверили психическое?
16 Мимохожий Однако
 
14.10.24
17:29
(10) Мне удивительно, если ты раньше с этим не сталкивался
17 Гена
 
14.10.24
17:29
(15) Да ладно... Может его уволили без уважения, вот он и зашифровал свои наработки. Скажите спасибо, что не стёр )
18 PLUT
 
14.10.24
17:30
(15) со здоровьем автора кода полный порядок!

а вот кто у него работу заказывал и принимал результат - вот его/их надо проверять :) на здравый смысл (адекватность)
19 СвинТуз
 
14.10.24
17:30
Оно супротив молодежи и нечего вроде как .
А так глянуть в пол глаза, таки ничего особого. Просто время тратить.
Не исключено, что с нуля написанный код и лучше будет.

Что такой неадекват может ценного написать?
Тем более, что шифровал подключение внешней печатной формы.
20 Галахад
 
14.10.24
17:31
(16) Разве такая практика часта?
21 PLUT
 
14.10.24
17:32
(19) да ничего он не шифровал

https://netlenka.org/

у тебя тоже получится шифровать :)
22 PLUT
 
14.10.24
17:33
(20) так вот жы (21)

Наши пользователи защитили уже более 1500000 модулей


много это или мало?

это как волосы в супе или на голове
23 СвинТуз
 
14.10.24
17:34
В большинстве случаев в 1с поделки клепаем.
Нечего скрывать.

Пусть этот умник запрос зашифрует.

Лабиринты через go to любой сможет писать.
Так же как и код на английском.
Все это легко читается.
Точнее приводится.

"То что один человек построил другой завсегда сломать сможет" (С)
24 СвинТуз
 
14.10.24
17:37
(21)
Детский сад. Я это легко верну к исходнику.

Самое ценное запрос. А циклы и условные операторы просто.

+ есть опции рефакторинга. Все это легко.
25 Гена
 
14.10.24
17:37
Может он долго вошкался, подгоняя разрывы страниц или того хлеще - до-печать по готовым бланкам.

Помню, когда трава была зеленее БЛ были бумажные, то очень пригодилась внешняя печаточка, что оборотную сторону заполняла по клеточкам каждого БЛ. Пачку БЛ засунул и вперёд со свистом )
26 PLUT
 
14.10.24
17:38
(23) да легко

исходный текст обормотки:
Запрос = Новый Запрос("ВЫБРАТЬ
|    ПрофилиГруппДоступаРоли.Ссылка КАК Ссылка,
|    ПрофилиГруппДоступаРоли.Роль КАК Роль
|ИЗ
|    Справочник.ПрофилиГруппДоступа.Роли КАК ПрофилиГруппДоступаРоли
|ГДЕ
|    ПрофилиГруппДоступаРоли.Роль = &Роль");

Запрос.УстановитьПараметр("Роль", Роль);


обнетленненный код
var a_; _0=""; a__=_0; для a___=1 по 200 цикл a__=a__+символ(число(сред("10481071104410631046105810730012001610621091109110951080109010851046109410911089109410441092109010961092109210751060108710841083004910631092110510861090107300391050104010580040105710971103108410901077004900140017106010931092109910811083108410471089109710931093105210881095109510911089107510601088108410860046106210861090110600351053104810550038106010921084110600181049105400150012106410901090107410751091110110901087108400471063109310891099108510831081104410951091109410931044108610931094109610951073004610611093109110830035105710441058003410631095109110981084108910871046109010911094108710501093109110901096108810741061108610831085001510441049104600160009105810951091109310871090108110441088109610891093104510881096109310911094108010611088108910850047105810881091110100400065003900421057108910911102",(a___-1)*4+1,4))-число(символ(кодсимвола("64376052773530753602706161534113363638170088084185548556710441666826502342160607633856461681753732215657218537501170760044581057833748287564673207067205125005515160375177110526127307852651228184741382",a___))));конеццикла;
~0:; _0=1; a_=_0; ~1:; _0=0; a_=_0; _0=1; _0=-_0; _1=0; _0=_0<=_1; if _0=false then goto ~IL_0 endif; goto ~9; ~IL_0:; goto ~4; _0=a_; _1=0; _0=_0=_1; if _0=false then goto ~IL_1 endif; goto ~2; ~IL_1:; goto ~7; ~2:; ~3:; _0=new запрос(a__); a=_0; goto ~10; ~4:; _0=0; _1=0; _0=_0<_1; if _0=false then goto ~IL_2 endif; goto ~6; ~IL_2:; goto ~5; ~5:; goto ~3; ~6:; goto ~3; ~7:; ~8:; _0=new запрос(a__); a=_0; goto ~10; ~9:; _0=1; a_=_0; goto ~3; ~10:; _0=""; _a=_0; для __a=1 по 4 цикл _a=_a+символ(число(сред("1058109310901100",(__a-1)*4+1,4))-число(символ(кодсимвола("2770",__a))));конеццикла;
~11:; _0=1; _0=-_0; _1=1; _1=-_1; _0=_0=_1; if _0=false then goto ~IL_3 endif; goto ~30; ~IL_3:; goto ~33; ~12:; _0=1; a_=_0; _0=a_; _1=1; _0=_0=_1; if _0=false then goto ~IL_4 endif; goto ~16; ~IL_4:; goto ~18; ~13:; _0=0; a_=_0; ~14:; _0=1; _0=-_0; a_=_0; ~15:; _0=1; _0=-_0; a_=_0; _0=a_; _1=0; _0=_0=_1; if _0=false then goto ~IL_5 endif; goto ~21; ~IL_5:; goto ~29; ~16:; _0=a_; _1=1; _1=-_1; _0=_0=_1; if _0=false then goto ~IL_6 endif; goto ~17; ~IL_6:; goto ~24; ~17:; ~18:; _0=0; a_=_0; ~19:; goto ~22; ~20:; _0=0; a_=_0; _0=a_; _1=0; _0=_0=_1; if _0=false then goto ~IL_7 endif;
goto ~19; ~IL_7:; goto ~26; ~21:; ~22:; a.установитьпараметр(_a,роль); goto ~36; ~23:; _0=a_; _1=0; _0=_0=_1; if _0=false then goto ~IL_8 endif; goto ~32; ~IL_8:; goto ~31; ~24:; ~25:; a.роль(_a,роль); goto ~36; ~26:; ~27:; goto ~22; ~28:; goto ~22; ~29:; ~30:; _0=1; _0=-_0; _1=1; _0=_0>=_1; if _0=false then goto ~IL_9 endif; goto ~15; ~IL_9:; goto ~20; _0=a_; _1=1; _0=_0=_1; if _0=false then goto ~IL_10 endif; goto ~23; ~IL_10:; goto ~14; _0=0; _1=1; _0=_0<=_1; if _0=false then goto ~IL_11 endif; goto ~28; ~IL_11:; goto ~27; ~31:;
goto ~36; ~32:; ~33:; _0=1; _0=-_0; a_=_0; ~34:; _0=0; a_=_0; ~35:; _0=0; a_=_0; ~36:;
27 PLUT
 
14.10.24
17:39
(24)
легко фарш провернуть назад?

(26)
28 PLUT
 
14.10.24
17:41
(24) самое ценное - это время

как говорится: время - деньги, которых у нас нет :)

и дети - это цветы на наших могилках :)))
29 Гена
 
14.10.24
17:42
Думаю в ФСБ есть программы-дешифровщики. Они легко высчитают исходный код.
30 PLUT
 
14.10.24
17:44
(24) в условиях ветвления и в переходах потеряешься?
31 PLUT
 
14.10.24
17:45
готов в легкую восстановить какую-нибудь обормотку для зупа (ну там запрос на пару страниц и еще какие-нибудь вызовы общих модулей)?


ну или что попроще из пары десятков строк?
32 LinuxOrg
 
14.10.24
17:46
Э.. Еще раз по буквам:

Этот код очень легко деобфусцируется ChatGPT.
33 PLUT
 
14.10.24
17:47
(32) скорми этот код чату гопоты ради интереса, сможет фарш провернуть назад?
34 Галахад
 
14.10.24
17:48
Ну, кстати, запрос-то особо не прячут:
_0="";
a__=_0;
для a___=1 по 200 цикл a__=a__+символ(число(сред("10481071104410631046105810730012001610621091109110951080109010851046109410911089109410441092109010961092109210751060108710841083004910631092110510861090107300391050104010580040105710971103108410901077004900140017106010931092109910811083108410471089109710931093105210881095109510911089107510601088108410860046106210861090110600351053104810550038106010921084110600181049105400150012106410901090107410751091110110901087108400471063109310891099108510831081104410951091109410931044108610931094109610951073004610611093109110830035105710441058003410631095109110981084108910871046109010911094108710501093109110901096108810741061108610831085001510441049104600160009105810951091109310871090108110441088109610891093104510881096109310911094108010611088108910850047105810881091110100400065003900421057108910911102",(a___-1)*4+1,4))-число(символ(кодсимвола("64376052773530753602706161534113363638170088084185548556710441666826502342160607633856461681753732215657218537501170760044581057833748287564673207067205125005515160375177110526127307852651228184741382",a___))))
конеццикла;
35 PLUT
 
14.10.24
18:16
(32) так то и прошивку для микроконтроллеров можно через дизасемблер прогнать и получить условно (0)

но без исходников на сях никому не интересно чужое
36 LinuxOrg
 
14.10.24
17:49
Та самая программа на поцкалле с лурка оказалась фрагментом очередного Volkov Commander под ДОС.

ИИ не только восстановил код, но и сказал, что это такое
37 PLUT
 
14.10.24
17:50
(36) ну т.е. инфа с лурка. мопед не твой
38 СвинТуз
 
14.10.24
17:50
(26)
Понятно что на данный конкретный пример нет смысла тратить время.
Но это код испорченный по правилам.
+ фокусы.
Все это решаемо.
39 PLUT
 
14.10.24
17:51
(38) анекдот про миллион долларов и переспать с негром?
40 СвинТуз
 
14.10.24
17:52
_0=new запрос(a__); Все просматривается.
41 СвинТуз
 
14.10.24
17:53
Когда уберутся лишние прыжки останутся только фокусы

для __a=1 по 4 цикл
    _a=_a+символ(число(сред("1058109310901100",(__a-1)*4+1,4))-число(символ(кодсимвола("2770",__a))));
конеццикла;
42 СвинТуз
 
14.10.24
17:54
Тоже в машину загнать пусть она с "символ(число(" бодается.
43 mishaPH
 
14.10.24
17:54
(0) просто методично по логике где ; сделать перевод строки, посмотреть подумать и выровнять.

объяснить заказчику/начальству, что это займет 2-3 дня. может меньше.
44 Lama12
 
14.10.24
17:54
(26) Это как раз легко вычислить. 1С сама все сделает. Надо только ей правильно задание дать. 😎
45 PLUT
 
14.10.24
17:55
я вот как-то написал шифрование простое - мне тоже сказали г@вно вопрос расшифровать

но не смогли в итоге

алгоритъм: вводится строка-пароль
например: без лоха жизнь плоха

дальше побайтно функция XOR в цикле с этой строкой-паролем

расшифровать обратно не получится, даже если алгоритм известен :)

гопота наверн тоже бессильна будет, если строку-пароль не знать
46 craxx
 
14.10.24
17:55
(4) Фарш невозможно провернуть назад...
47 LinuxOrg
 
14.10.24
17:59
(37) лолшта? Я самостоятельно выполнял деобфускацию.

Статья на лурке была написана во времена, когда нейронок не было и в помине
48 PLUT
 
14.10.24
18:02
(47) а про (35) что скажешь?
49 Asmody
 
14.10.24
21:26
50 Конструктор1С
 
15.10.24
05:37
(11) лютое заблуждение. Код, написанный по заказу, принадлежит заказчику
51 Конструктор1С
 
15.10.24
05:41
Обфускаяция - излюбленный прием нечистоплотных говнокодеров. Она позволяет превратить их уродливый код в абсолютно нечитаемый
52 Web00001
 
15.10.24
06:02
(23)Я пробовал разобрать пару раз такой код. Тоже так думал: фи ну вот же переменная - пкм рефакторинг - переименовать во что-то нормальное. Заменить шрифт где исключены приколы с подменой О на 0 и пр. Проследить путь функций, собрать логику в одно место, выкинуть мусор. Еще раз переименовать переменные смысл которых стал понятен. Выкинуть ненужные переменные, которые не используются. Повторить. Ща быстренько за день сделаю. НИ-ФИ-ГА. Много слишком запутывающих функций. В какой-то момент перестало запускаться, потому, что в переменной не то, что ожидалось, а что там должно быть, еще непонятно, а в какой момент отвалилось уже непонятно, пару часов работы на свалку, откатились... Прошло пару дней, состояние готовности.... 5%. Бросил страдать херней и за день написал заново.
53 Конструктор1С
 
15.10.24
06:19
(21) руки надо ломать авторам сего творения. "Защищают" они код от возможности любых доработок
54 dmt
 
15.10.24
07:37
(26)  в отладчике останавливаемся на строке
a.установитьпараметр

смотрим а.Текст

задача решена
55 dmt
 
15.10.24
07:38
(53) хуже то, что это небезопасно - хз что оно делает, может базу стирает, может отправляет ее себе на сервер, а может шифровальщик запускает
56 Asmody
 
15.10.24
07:39
(53) а создателей компиляторов вообще расстреливать на месте?
57 Asmody
 
15.10.24
07:41
(55) гентушники штоль? Код каждой программки читаете глазами перед запуском? А то кабы не дай бог чё
58 dmt
 
15.10.24
07:55
(57) 🤦‍♂️
59 Конструктор1С
 
15.10.24
11:22
(56) причем тут создатели компиляторов? Они вредительством не занимаются
60 Конструктор1С
 
15.10.24
11:24
(57) код пишется для людей, чтобы люди могли прочитать и изменить код
61 lEvGl
 
15.10.24
11:30
(59) Это ж смотря кому вредительство. Кому то эта тема - полезничество. Весь готовый софт продается скомпилированным и без исходников.
62 Garykom
 
15.10.24
11:25
(50) При наличии договора в котором описаны имущественные права
Авторские остаются за разработчиком
63 lEvGl
 
15.10.24
11:30
(50) заказчик становится владельцем прогр. функционала, а не кода. По умолчанию. Если только допом что то обозначено
64 Asmody
 
15.10.24
11:29
(58) (59) Знаете, сколько всего винда про вас в Микрософт отправляет? Да и хром в Гугель постоянно "стучит" и выполняет не пойми что. А исходников у вас нет, чтобы посмотреть что они там делают. Непорядок!
65 dmt
 
15.10.24
12:13
(64) - Лучше мыть руки перед едой
- Гыгы, микробы и в воздухе есть, не дышите терь, если боитесь гыгы
67 Winnie Buh
 
15.10.24
16:32
(62)(63) Исключительное право на программу для ЭВМ, базу данных или иное произведение, созданные по договору, предметом которого было создание такого произведения (по заказу), принадлежит заказчику, если договором между подрядчиком (исполнителем) и заказчиком не предусмотрено иное (п. 1 ст. 1296 ГК РФ).
68 Web00001
 
15.10.24
16:54
(51) в случае с (52) автор решил, что раз уж никто кроме него не может исправить или посмотреть, что было сделано, значит можно и ценник за любую работу выставлять космический. Когда стали разбираться, то его работу которую он делал или месяц или два(не помню сейчас точно) переписали за пару дней. Очень сильно раздражают эти носители тайного знания и чувства собственного достоинства.
69 Брат по разуму
 
15.10.24
17:22
Никого не жалко никого, ни тебя ни его. Ни дибилов-жлобов заказчиков, ни инвалида умственного труда автора говнокода, ни разгребающего говно ТС.
70 Брат по разуму
 
15.10.24
17:24
Я вот никогда даже "гениальные" Рарусовские отраслевые решения, имеющие защиту не ставлю и никому не советую, всегда найдется адекватный вариант без всех этих заморочек.
71 Dedal
 
15.10.24
18:02
(70) К сожалению иногда нет этих адекватных вариантов и нужно иметь дело с этим "очень качественным кодом"....
72 Волшебник
 
15.10.24
20:00
Этот конкретный кейс я закрою.
Если нужно обсудить более общую тему, создайте другую ветку.
Основная теорема систематики: Новые системы плодят новые проблемы.