Pull to refresh
-5
0.3
Send message
> сделано было на АЛьФовском формексе, и 12 лет назад (в 2007), и работало без проблем и напрягов лет 9.

Я, по-моему, уже несколько раз объяснял, почему меня не устраивает «АЛьФовский формекс». Я рад за вас, но мне это ничего не дает.

> в восьмерках тоже можно сделать без проблем,

Ключевое слово – можно! Да, можно, и я это продемонстрировал в статье.

> только уже не нужно — есть другие инструменты.

Кому не нужно? Вам? Так и не делайте, кто вас заставляет. Мне? Так надо было раньше говорить, а то я этого не знал, а теперь уже поздно, все сделано :).
Ну, я лично не собираюсь подменять профсоюзы и бухгалтерию (они дают деньги на юбилей), отдел кадров (они предоставляют оплачиваемый выходной на день рождения) и девочек, которые на цветном принтере печатают поздравления для всех счастливцев. Коллективно или индивидуально, поздравляют всех, кто как хочет.

В донном случае, речь идет о тех, с кем приходится плотно работать, особенно женщинах. Они уже как бы ожидают к себе подобного отношения тоже. Так что придется им «рисовать» видео также. Просто хороших прототипов на Ютубе очень мало. Главное это видео, ссылки на которое можно сбросить смс-кой на смартфон имениннице. Так как с 1С не все из них работают.

Следовательно, дело отнюдь не в картинках, нашел красивую в Интернете, сделал стандартную надпись (а там много не напишешь) и выложил вместо фона для 1С, для тех кто в нем работает.

Поэтому программу из статьи нужно воспринимать несколько шире, чем она представлена. Поздравления только повод, причина это нестандартная работа с 1С (поскольку стандартная имеет ограничения). Возможно, в следующей статье я приведу более практичный пример.
У нас никто не обиделся, все остались довольны. Причем это уже второй подобный случай. Даже более, ожидают видео для других персон. А я ведь не мультимедийщик. Как выкручиваться? Даже не знаю. Может, подскажите, только не слишком банально, типа позвонить по телефону, подарить букет цветов лично.
Ну и напишите статью про это. Будет интересно почитать!

У нас никакого культа нет. Только личная инициатива. Главбух первая проявила инициативу в отношении меня. Так что для меня это просто ответный жест. Плохо ли, хорошо ли, другой вопрос. «Не стреляйте в пианиста, он играет, как умеет!».
> Плачу, просто плачу. Что люди делают с учетной системой? То ли от непонимания, то ли от безделья.

А по существу сказать нечего?
> Вам говорят, что можно было вывести какую-нибудь форму при запуске системы с картинкой на ней, в 3 строчки кода, без ВК.

Вы полагаете, что эта информация закрывает полностью тему?

Во-первых, это работает не во всех версиях 1С. Во-вторых, отображать картинку на фоне в 1С77 и в «толстых» формах 1С82 это не позволяет. В-третьих, главная цель не в показе изображений (хотя практически все используют обои на рабочем столе Windows и многие не против картинок в клиентской области 1С, другое дело, что в 1С83 это делать не слишком целесообразно, поэтому применяем внешние окна или, если хотите, ваш вариант). Речь идет о расширении возможностей стандартных ВК, а поздравление это просто повод об этом говорить. Возможно, в других статья будут более интересные примеры их использования.

> И сделать это только конкретному пользователю, а не всей конторе.

Это вполне можно реализовать, но как дополнительную фичу. Для меня это пока не актуально, а вы можете сделать это, используя прилагаемые файлы проекта.
Вообще-то подразумевается другая практика работы с компонентой. Вы сами себе создаете картинки и кладете их в каталог «Pics» конфигурации. Выбрана будет первая из доступных: Main.bmp, Main.jpg, Main.gif, Main.png или Main.tif. Если же ничего не найдено, то берется фон из ресурсов ВК. Соответственно, пишите на них любой текст, который вам нравится, любым шрифтом. Указываете на любое видео, которое вас устраивает. Мне то зачем делать графический редактор в 1С? Я бы только с удовольствием посмотрел бы ваши варианты графики и видео.
В «семерке» это делалось уже довольно давно. А в «восьмерке», не делал никто, по крайней мере, я ничего об этом не знаю. А так, если нет желания возиться с компонентой, то проще уже на смартфон, в данном случае главбуха, кинуть ссылку ютубовскую, с видео, для нее. Как я по факту и делал, поскольку главбух была в отпуске на свою «днюху». Картинками в 1С «наслаждались» уже ее коллеги по работе. Но, кому не нравилось, могли перегрузить фон в «семерке» (чего, кстати, тоже не делают никакие ВК). Видео же смотрели самостоятельно только те, кто хотел.
Посмотрите любительские поздравительные видео в Ютубе. Вы найдете, хоть одно приличное? А поздравлять то людей надо. Может быть, предложите какие-то идеи?

И потом, для программиста, картинки это мишура, главное код и работа с данными с его помощью, а это все можно пытаться делать на базе прилагаемой ВК.
К сожалению, это не моя тема интересов. Больше привлекает использование внешнего загрузчика, но об этом как-нибудь в другой раз.
> Зачем вы сделали продукт, если вы его не продаете и услуги не оказываете? В чем выхлоп?

Я же сказал – «Развитие!». Продавать и оказывать услуги на этом поприще рискованно, можно нарваться на неприятности. А оно мне надо? Кроме того, у меня нет цели, ущемлять интересы авторов продуктов. А вот в плане развития это самое то! Вообще, смысл существования всего Сущего во Вселенной это Развитие. В т.ч. это касается человека. При условии неприемлемости немотивированного ущерба окружающим людям и окружающей среде.

Эта задача просто идеальная в плане соотношения усилий и результатов. Решив ее, вы почувствуете себя на другом уровне развития, что, конечно приносит колоссальное удовлетворение. Естественно, что результаты творчества дают новые возможности. А вот разумное и адекватное их использование определяет уже нравственную сторону развития личности. В общем, как-то так :).

P.S. А так, продукт требует еще общей отладки и оптимизации. Кроме того, всегда появляются новые нюансы, с которыми раньше не сталкивался. «Гонку вооружений» ведь никто не отменял :).
> Т.е. у вас есть инструмент для декомпиляции обфусцированного кода?

Да, есть, заканчиваю уже его третью версию.

> У меня иногда возникает необходимость вскрытия такого кода. Я обращусь к вам в следующий раз.

Я такого рода услуги не предоставляю. Эта как раз та область, которой есть смысл позаниматься самостоятельно (при относительной несложности используемых алгоритмов получается весьма существенный выхлоп). Тем более что самую важную подсказку я дал. Это дает определенный уровень развития. Так что опубликованная информация направленно именно на это. Развивайтесь, и будет вам счастье :).
> создание обфускатора не возможно без создания декомпилятора

Кстати, обфускатор делать труднее, чем декомпилятор. Я думаю над этим, но больше склоняюсь к мысли использовать внешние компоненты, чтобы прятать там наиболее значимый код. Просто второй путь кажется более простым.

> эквивалентный код с неадекватными именами функций и переменных может быть совершенно не понятен. И таким образом, может иметь нулевую ценность, т.к. дорабатывать его не реально

Глупости все это. Все очень даже понятно. Да, вместо случайных имен используются псевдоимена, типа «ЛокальнаяПроцедура001», «ЛокальнаяФункция002», Var_123, Par_321, Label_5555 и т.п. Но это практически нисколько не затемняет исходный код, ведь код 1С перенасыщен русским текстом. Причем, закрывают обычно наиболее значимые модули, исходный текст которых может иметь особую ценность.

> Стековая машина для декомпиляции обфусцированнного кода не очень сложна, но я знаю только одного программиста, который реально ее сделал. Но на сколько мне известно, разработка не была опубликована

И я сделал, ну и что из того? На ее создание у меня ушло менее 10% общего времени, остальное время ушло на понимание концепции алгоритма, которую я вам изложил. Только вот всегда цениться именно та информация, которая получена собственным «потом и кровью». Готовый результат никогда и никем адекватно не воспринимается.
А как вам рассечение выражений условными операторами? Одно длинное выражение может быть рассечено несколько раз. И все это перемешивается с «мусорным» кодом в ветвях, которые никогда не получают управление. А оператор Попытка / Исключение / КонецПопытки? Здесь тоже можно изощрятся так, что мало не покажется. Но и это все лечится при правильном подходе :).

P.S. Нумерация строк не нужна от слова «совсем».
> Вы так говорите, как будто байт-код 1С имеет общеизвестный формат, а проблему «запутывания» мешает решать исключительно лень.

Формат не общедоступный, но восстанавливается вполне тривиально. Достаточно две-три недели плотно посидеть на экспериментах. Берете свой код ЯВУ, шифруете его, а потом смотрите, какой ему соответствует байт-код 1С. Это просто рутинная работа, требующая определенного времени и труда. Кое-что что можно найти на форумах. Первые соответствия я нашел именно там. Заметим, что все фирмы, выпускающие коммерческие обфускаторы, получали подобную спецификацию именно таким образом. Да, кое-какие номера команды остаются нерасшифрованными, просто для них еще не было реального соответствия в исходном коде «восьмерки».

> Открою маленький секрет: 80% адинесников даже не знает, что существует способ получения исходного кода запароленного модуля без всякой обфускации; а людей (не считая сотрудников 1С), которые самостоятельно разобрались в формате байт-кода, вообще единицы. Некому об этом говорить!

Многие не знают, как снять пользовательский пароль для входа в 1С. И что теперь? 20% 1С-ников это, на самом деле, очень много. На специализированных форумах по 1С тусуются тысячи людей, сотни из которых – высококлассные специалисты. Некоторые из них даже относят себя к касте, которые знают, как дешифровать необфусцированный байт-код. Таких порядка десяти человек. Вполне достаточно для общения. Хотя, естественно, подробно никто ничего говорить не хочет, хотя раньше на эту тему общались более свободно. Понятно, ибо зачем себе создавать лишние проблемы :).
> Алгоритм декомпиляции прост для не защищенного кода.

Согласен, прост. Для такого кода можно найти обработки 1С8 восстанавливающие исходный текст. Они старые, 2010-2013 годов, судя по датам файлов. Автор у них один, и есть большое подозрение, что он сейчас работает на фирму, которая создает коммерческие обфускаторы. Как говорится в подобных случаях – самые лучшие антихакеры это бывшие хакеры.

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

Форт-машину применять в любом случае придется, но ее алгоритм, кстати, не самый сложный. Это обычная стековая машина, обслуживающая обратную польскую нотацию. Все достаточно прозрачно и тривиально.

Что касается «разрушения сигнатуры кода», то возможно вы имеете в виду, что байт-код 1С8х может отличаться от оригинального? Конечно, может, возможности у него несколько шире, чем у исходного кода «восьмерки». И авторы обфускаторов этим пользуются на полную катушку. Иной раз просто поражаешься изощренности их мышления. Но, тем не менее, байт-код 1С8 это не ассемблер, принципиально иного, чем на исходном ЯВУ (языке высокого уровня) там мало, что можно сделать. Соответственно и возможности восстановить код ЯВУ на уровне функциональной эквивалентности вполне возможно.

Относительно «простоты статических алгоритмов». Концептуально алгоритмы очень простые из области: «разделение – преобразование – объединение». Или другими словами, редукция задачи, сведение двухмерного бинарного циклического связного графа к одномерным последовательностям. Все остальное это просто техническая реализация, местами сложноватая, но не принципиально, все определяется фундаментальным образованием программиста. Программисты, знающие только 1С, эту задачу могут и не решить в полной мере.

Я сказал достаточно много. Если бы у меня была эта информация заранее, то я бы сэкономил себе несколько лишних месяцев программирования.
> под капотом у него один-в-один выложенный мной проект MdInternals.Cil.

Об этом можно было бы сказать в статье. Это, по крайней мере, дает представление о возможностях вашей программы. Однако онлайн-ресурс откровенно слабый, даже не формирует внешние переменные модуля. Про операторы модуля уже не помню, может быть тоже не формирует.

> Я пробовал декомпиляторы .Net и C# над обфусцированным кодом. Не все справлялись с защитой.

А что, есть и такие, что справляются?

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

Это не обвинение, это сожаление.

P.S. Пару слов насчет обфускации байт кода 1С8х. Последние версии коммерческих обфускаторов используют много новых приемов защиты. Однако нужно понимать, что для специалиста это все не слишком серьезно. Общая идея обфускации простая, используется функционально эквивалентный байт-код, который усложняет процесс его восстановления на уровне ЯВУ (языка высокого уровня). Это может осуществляться как за счет добавления избыточной топологии к исходному бинарному циклическому графу, так и за счет якобы шифрования строковых констант и т.п., вроде использования специфики конкретных команд байт-кода. Шифрование не слишком серьезно потому, что в том же модуле всегда присутствует (обфусцированная) функция дешифрования. А с избыточной топологией, в том числе и «мусорным» кодом, можно легко бороться известными аналитическими методами. Главное здесь то, что, согласно математической теореме: «Любые эквивалентные преобразования обратимы», а это означает принципиальную декомпиляцию обфусцированного байт-кода на уровне ЯВУ.

А вот, скажем, на уровне синтаксиса, обфускация является синтаксически неэквивалентной, поэтому в этом смысле она необратима. И, действительно, невозможно восстановить удаленные комментарии и необратимо измененные пользовательские имена переменных, процедур и функций. Однако функционально эквивалентный код уровня ЯВУ всегда можно получить без особых проблем. Алгоритмы там настолько просты, что просто удивительно, что про них никто не знает или не говорит вслух. Я тоже промолчу. А вам достаточно подсказки насчет самой обратимости и существования простого алгоритма этой обратимости.
К сожалению, новизны здесь никакой нет. Даже «Классы MdInternals.Cil» которые «восстанавливают исходный код из последовательности байт-кода OpCode 1С» своей задачи явно не решают.

Выгрузка штатными средствами конфигурации в файл и широко известные утилиты по декомпиляции (необфусцированного) байт-кода 1С плюс бывший в наличии (сейчас не проверял) онлайн-ресурс по декомпиляции байт-кода 1С полностью перекрывают все возможности данной программы.

А «алгоритмы»? Кому они нужны, если они даже не демонстрируют простейших практических возможностей, хотя бы в той же «декомпиялции».

Вот попробуйте хотя бы для себя декомпилировать любой защищенный модуль коммерческой конфигурации и тогда расскажите нам, что у вас получилось :).
> Декомпиляция нарушает лицензионное соглашение 1С.

А обфускация байт-кода 1С не нарушает «лицензионное соглашение 1С»? А ведь некоторые фирмы распространяют подобные инструменты за деньги. А суть та же, что обфускация изменяет родной байт-код 1С, что деобфускация, или в данном случае простая декомпиляция кода защищенного стандартными средствами 1С? Аналогично архиваторы изменяют бинарный код и не только они, а ведь многие программы под лицензией «изменять бинарный код – ни-ни».

А ведь достаточно очевидно, чтобы создать коммерческий продукт по обфускации байт-кода 1С, фирма должна научиться сначала его деобфусцировать / декомпилировать, ведь спецификации подобного формата нигде нет. Кроме того, авторы, которые покупают обфускатры и защищают свой код, пишут там такое! Например, тупо отслеживают действия пользователя и скрытно собирают его информацию (а это законно?) и даже открыто сообщают ему об этом, типа: «Я вижу, что ты пытаешься декомпилировать программу, лучше напиши мне – продам ее за полцены!».
по каким формальным признакам вы утверждаете, что сочинения — не литературные тексты

Сочинения это как бы публицистика, там не риал-тайма, экшена, динамики, диалогов, культа красивых слов и фраз и т.п. Вон Стефан Цвейг хорошо пишет в жанре исторический литературный очерк, но диалогов героев у него почти нет. Я имею в виду романы типа «Мария Антуанетта». Хороший литературный стиль у него есть, да, этого не отнимешь, но сама его литература какая-то неполноценная.

Человек начинает писать (если быть точным, придумывать) «хоть какую-нибудь музыку» раньше, чем любые тексты, потому что музыка вообще предшествует тексту (и вообще слову).

Ну, слышать музыку в голове это одно, а отразить ее на бумаге – другое. Мне, например, когда-то приснился мотив, которого я нигде не слышал, но я не музыкант, записать его не смог от слова совсем.

Information

Rating
2,079-th
Registered
Activity