|
Что это за формат и как его прочитать? | ☑ | ||
---|---|---|---|---|
0
Euroset1
16.12.18
✎
03:53
|
В этом формате скрытые модули (запароленные). В этом формате старый журнал регистрации. В этом формате какие-то структуры данных, из которых я выдрал кусок ниже. Что это? Сохраненный результат сериализации или что-то еще?
Просто мне нужно нечто подобное прочитать, чтобы потом работать как с объектом. А раз так, то может кто-то знает, как это сделать, не придумывая велосипед? {"#",51e7a0d2-530b-11d4-b98a-008048da3034, {1144, {"#",4238019d-7e49-4fc9-91db-b6b951d5cf8e, {4, { {"S","Номенклатура"}, {"#",4b1b49cb-5430-4f80-9818-a1cef1b3d410,116:80e1b083fee00c3a11e80a59363dac8d} }, { {"S","Организация"}, {"#",a1af1af2-f26f-40c9-a516-a66ff64531ed,124:80ddb083fee00c3a11e7fc5ef3a165cf} }, { {"S","СтруктурнаяЕдиница"}, {"#",2690b154-7e54-4c58-a3d7-fcb8ae5b5bdb,194:80ddb083fee00c3a11e7fc5205921874} }, |
|||
1
youalex
16.12.18
✎
03:55
|
я бы попробовал ЗначениеИзСтрокиВнутр()
|
|||
2
Злопчинский
16.12.18
✎
05:29
|
(1) присоединяюсь
|
|||
3
MSOliver
16.12.18
✎
06:59
|
ЭТО Сериализация
|
|||
4
Euroset1
20.12.18
✎
02:31
|
Ну как я понял, после решетки всегда идет гуид типа, а далее идет непосредственное значение. И внутри значения уже, если это коллекция, идет еще и размер, а за ним элементы.
А если нужно например прочитать байт-код или старый 8.2 журнал регистрации, то вылезает ошибка формата потока. Что, только парсить остается? |
|||
5
Chameleon1980
20.12.18
✎
04:21
|
начнем так:
ты где это взял? может - отнеси назад? :) |
|||
6
Мыш
20.12.18
✎
08:44
|
Структуры, массивы, коллекции данных.
|
|||
7
Euroset1
20.12.18
✎
08:57
|
(5) У себя же и взял. Купленная конфа - закрытый модуль оттуда. Алгоритм декодирования понятен, но парсить влом (быстродействие заведомо ниже). Журналы регистрации 8.2 один в один тот же формат. А кусок приведенного примера - это случайно найденный в закромах файлик, который и натолкнул на мысль типа "а может это можно и не парсить вовсе".
Но увы, пока что убиделся, что ЗначениеВСтрокуВнутр любой даже массив или структуру записывает с указанием типа через решетку. А ноунейм коллекции как в байт-коде или журнале регистрации ЗначениеИзСтрокиВнутр читать не хочет... |
|||
8
Мыш
20.12.18
✎
09:09
|
(7) Только парсить. Специально предусмотренных методов - нет.
|
|||
9
hhhh
20.12.18
✎
09:09
|
(7) если всё официально куплено, зачем тогда декодировать закрытые модули.
К тому же если ты знаешь что делает модуль, проще и дешевле написать свой такой же, а закрытый выбросить. |
|||
10
Chameleon1980
20.12.18
✎
09:15
|
XDTO со ссылками :)
|
|||
11
Serg_1960
модератор
20.12.18
✎
09:17
|
Предупреждение:
4. Не публикуйте алгоритмы взлома и ссылки на такие алгоритмы, а также всевозможные "патчи", "крэки", "эмуляторы", "серийные номера", "коды активации" и т.д. |
|||
13
Базис
naïve
20.12.18
✎
09:23
|
Публикации тут нет. Исследование - есть, это нужно для понимания устройства и написания правильного (быстрого и лёгкого) кода.
В GUID внутри одной базы всегда есть повторяющийся фрагмент, идентификатор базы. У разных элементов одного справочника и фрагмент, обозначающий этот справочник, одинаковый. Здесь же не нашёл глазами ни одного повторяющегося фрагмента. |
|||
14
Мыш
20.12.18
✎
09:25
|
(13) 80ddb083fee00c3a11e7fc
|
|||
15
Serg_1960
20.12.18
✎
09:27
|
(13) Да ради бога, обсуждайте что хотите, но только не тему "Как декодировать закрытый модуль" - это нарушение авторского права.
|
|||
16
novichok79
20.12.18
✎
09:27
|
а чего сообщение то потерли?
так то ясно что если там написано Организация, то это скорее всего ссылка на организацию. берешь, получаешь GUID Организации, можно еще посмотреть как в Ref полях в SQL этот GUID записывается и сравнивать со значениями в полях структуры (мне почему-то кажется, что это - структура) |
|||
17
Мыш
20.12.18
✎
09:28
|
(16) Не, скорее соответствие. Оно же "Map". Ключи не строковые )
|
|||
18
novichok79
20.12.18
✎
09:29
|
и да, повторю еще раз, я не верю, что человек, который работает в 1С 8 лет, ни разу не видел подобных коллекций!
|
|||
19
Serg_1960
20.12.18
✎
09:30
|
(16) Согласно правила "Не переходить на личности."
|
|||
20
ptiz
20.12.18
✎
09:31
|
(4) Непонятно, что у тебя за проблемы.
Текст - чистое ЗначениеВСтрокуВнутр. Конкретно этот пример: массив, содержащий 1144 элементов, а первый из них - структура (дальше не видно). |
|||
21
Мыш
20.12.18
✎
09:31
|
(18) Можешь не верить, но это норма (цы)
|
|||
22
novichok79
20.12.18
✎
09:32
|
(19) не, ну тогда надо половину форума подтереть. тут постоянно переходят на личности.
|
|||
23
novichok79
20.12.18
✎
09:35
|
(21) имхается мне, что это какая-то дичь. на ИС даже был парсер подобных коллекций, мне кажется. там чувак правил настройки СКД кажется.
|
|||
24
Мыш
20.12.18
✎
09:35
|
(22) Ну как маленький. Всех перевешать нереально, а периодический показательный расстрел устроить - полезно. )
|
|||
25
Serg_1960
20.12.18
✎
09:36
|
(18) "Специалист подобен флюсу: полнота его односторонняя"(цы)
(имхо) На форуме постоянно возникают вопросы по РИБ. Как по мне, - так эта тема проще паренной репы :) Но есть много тех, кто с Распределенными Информационными Базами не сталкивался в своей практике и имеет только чисто теоретические представления об этом далёкие от практики реализации в типовых конфигурациях. |
|||
26
novichok79
20.12.18
✎
09:36
|
(24) у меня обычная пессимистичная логика - либо все, либо ничего.
|
|||
27
Мыш
20.12.18
✎
09:37
|
(26) Обычный юношеский максимализм
|
|||
28
novichok79
20.12.18
✎
09:38
|
(27) ко-ко-ко...
|
|||
29
Serg_1960
20.12.18
✎
09:39
|
(26) Намекаю: Вы опасно близко к нарушению правила №8. Вернитесь к теме автора.
|
|||
30
novichok79
20.12.18
✎
09:40
|
(29) ок
|
|||
31
novichok79
20.12.18
✎
09:41
|
накопрокодил вот такое:
Карта = Новый Соответствие; Карта.Вставить("Номенклатура", Объект.Номенклатура); Карта.Вставить("Организация", Объект.Организация); Карта.Вставить("СтруктурнаяЕдиница", Объект.СтруктурнаяЕдиница); КартаТекст = ЗначениеВСтрокуВнутр(Карта); Словарь = Новый Структура; Словарь.Вставить("Номенклатура", Объект.Номенклатура); Словарь.Вставить("Организация", Объект.Организация); Словарь.Вставить("СтруктурнаяЕдиница", Объект.СтруктурнаяЕдиница); СловарьТекст = ЗначениеВСтрокуВнутр(Словарь); |
|||
32
novichok79
20.12.18
✎
09:41
|
КартаТекст =
{"#",3d48feae-a9c6-4c5a-a099-9eb6477630c6, {3, { {"S","Номенклатура"}, {"#",190a7469-3325-4d33-b5ec-28a63ac83b06,215:af150015e9b8c48d11e050911643ef2e} }, { {"S","Организация"}, {"#",55adb97e-a84e-453e-8020-7665bb2abdef,230:8e500050568b35ac11e7fac34c095da9} }, { {"S","СтруктурнаяЕдиница"}, {"#",7632c6fe-8cac-4d68-a50a-5714e18b1fec,42:8e500050568b35ac11e7fc56d018d71c} } } } |
|||
33
novichok79
20.12.18
✎
09:42
|
СловарьТекст =
{"#",4238019d-7e49-4fc9-91db-b6b951d5cf8e, {3, { {"S","Номенклатура"}, {"#",190a7469-3325-4d33-b5ec-28a63ac83b06,215:af150015e9b8c48d11e050911643ef2e} }, { {"S","Организация"}, {"#",55adb97e-a84e-453e-8020-7665bb2abdef,230:8e500050568b35ac11e7fac34c095da9} }, { {"S","СтруктурнаяЕдиница"}, {"#",7632c6fe-8cac-4d68-a50a-5714e18b1fec,42:8e500050568b35ac11e7fc56d018d71c} } } } |
|||
34
novichok79
20.12.18
✎
09:43
|
ха, прикольно. они ничем не отличаются кроме UID типа. 1С, почему вы не напишите уже наконец платформенную функцию СоответствиеВСтруктуру и наоборот?
|
|||
35
Tonik992
20.12.18
✎
09:43
|
(15) Уточнить.
Закрытие кода автоматически присваивает коду статус "авторское право" ? |
|||
36
novichok79
20.12.18
✎
09:47
|
(0) имхается мне, что это у тя массив структур.
Словарь = Новый Структура; Словарь.Вставить("Номенклатура", Объект.Номенклатура); Словарь.Вставить("Организация", Объект.Организация); Словарь.Вставить("СтруктурнаяЕдиница", Объект.СтруктурнаяЕдиница); |
|||
37
Lama12
20.12.18
✎
09:55
|
(35) Авторское право присваивается даже если код не закрыт :-) Даже вот на этот самый текс имеется мое авторское право. ;-) Это по закону ГК 2 часть.
(0) А если там соль? Я бы, если б закрывал модуль, обязательно соль добавил бы. Даже в ущерб быстродействию. |
|||
38
novichok79
20.12.18
✎
09:56
|
вот этот кусок в начале тоже намекает что это какой-то UID типа
{"#",51e7a0d2-530b-11d4-b98a-008048da3034, {1144, |
|||
39
Serg_1960
20.12.18
✎
10:01
|
(35) Уточняю: меню "Сервис" - "О программе"
Поставщик конфигурации имеет право закрыть доступ к изменению части кода. Конкретные права(правила) поставщика можно посмотреть в "Конфигурация" - "Поддержка" - "Настройка поддержки". |
|||
40
Tonik992
20.12.18
✎
10:05
|
(37) Тем более. раз уж так. Тогда и открытый код нельзя обсуждать и использовать его в своих целях, т.к. это нарушение авторского права.
А то, что модуль стал закрытым, не несет никакой дополнительной правовой нагрузки. |
|||
41
novichok79
20.12.18
✎
10:15
|
мля, не увидел (20) мужик, ты - гений десериализации 1С.
|
|||
42
catena
20.12.18
✎
10:15
|
(36)Если прочитать посты автора внимательно, приведенный кусок автору декодировать вовсе и не нужно...
|
|||
43
novichok79
20.12.18
✎
10:21
|
(42) автор просил "нечто подобное прочитать, чтобы потом работать как с объектом."
|
|||
44
Serg_1960
20.12.18
✎
11:38
|
(40) "не несет никакой дополнительной правовой нагрузки."
Закрытие исходного кода - это программная защита. пользовательским соглашением запрещено: - использование "средств, изменяющих алгоритм работы программных или аппаратных средств защиты Продукта"; - "использовать Продукт с устраненными или измененными без разрешения Правообладателя средствами защиты"; - "восстанавливать исходный код, декомпилировать и/или деассемблировать программную часть Продукта, за исключением тех случаев, и лишь в той степени, в какой такая деятельность специально разрешена действующим законодательством РФ.". |
|||
45
hhhh
20.12.18
✎
11:49
|
(44) ну, в (0) код не закрыт. А полностью открыт. Значит ничего не нарушаем. Просто пытаемся понять кусок программы.
|
|||
46
Serg_1960
20.12.18
✎
12:41
|
(45) См.(15)
|
|||
47
catena
20.12.18
✎
13:55
|
(43)Да, а "нечто подобное" у него - модуль. Сомневаюсь, что там прокатит какое-либо ЗначениеВСтрокуВнутр
|
|||
48
novichok79
20.12.18
✎
14:56
|
(47) дык всем (опытному 1серу) известно же о том, как это расшифровать, но говорить об этом я конечно же не буду.
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |