Доступно

Антидекомпилятор [Infostart]

Тема в разделе "Бухгалтерия и финансы", создана пользователем Топикстартер, 23 июн 2020.

Цена: 500р.-83%
Взнос: 82р.
100%

Основной список: 33 участников

Статус обсуждения:
Комментирование ограничено.
  1. 23 июн 2020
    #1
    Топикстартер
    Топикстартер ЧКЧлен клуба

    Складчина: Антидекомпилятор [Infostart]

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

    Предыстория.

    Любой разработчик 1с рано или поздно сталкивается с необходимостью защиты своих разработок. Фирма 1с предоставляет встроенные возможности защиты разработок:
    1. Установка пароля на модуль.
    2. Поставка конфигурации без исходных модулей.
    При этом большинству программистов 1с известно, что такая защита снимается без особого труда известной обработкой, которая широко распространена в интернете и доступна для свободного скачивания. Когда то давно, лет 8 назад, и мне потребовалась необходимость закрыть код своей разработки до момента оплаты заказчиком выполненной работы, подстраховаться, так сказать. Для такой простой задачи, как оказалось, совершенно не было средств защиты. Все встроенные и бесплатные механизмы защиты снимались без особого труда, а коммерческие средства защиты стоят немалых денег, да и в данном случае были просто неуместны. Как оказалось, информации в свободном доступе по этому вопросу практически нет, пришлось в течении полугода по крупицам собирать информацию на разных форумах, просто выпрашивать у сведущих людей хоть что-то, что могло пролить свет на этот вопрос. И вот спустя полгода поисков и экспериментов я имел на руках некий рабочий инструмент, собранный из обрывков информации, набросков полурабочих обработок, каких-то несвязанных кусков кода, который позволял быстро и бесплатно защитить свою разработку от простого декомпилирования. Признаться, воспользовался я обработкой всего пару раз, забросил в дальний ящик и успешно забыл про нее. Никаких планов публиковать ее не было, т.к. механизмы, используемые в этой обработке, официально не документированы и как будут обстоять дела в этой области, с развитием платформы, было совершенно непонятно. На днях один мой знакомый, обратился ко мне с похожей проблемой, я раскопал свою обработку из далекого ящика и, о чудо, она до сих пор работает, внутренние механизмы платформы за все это время нисколько не изменились. Эта информация вдохновила меня вернуться к этому проекту вновь. Первым делом обработка была переведена на управляемые формы. Как оказалось, за прошедшее время появилось несколько интересных публикаций, которые в значительной степени раскрывают суть работы виртуальной машины 1с, предоставляют неплохо документированные инструкции байт-кода 1с (вот бы эти публикации лет 8 назад, сколько бы времени можно было сэкономить J). Сама 1с добавила возможность выгружать конфигурации и обработки в файлы, что немедленно породило в моей голове идею использовать этот механизм в своих целях. Дело в том, что ранее для работы моей обработки требовалась внешняя утилита v8unpack, которая распаковывает контейнеры 1с. Благо и здесь имеются публикации приоткрывающие завесу тайны формата контейнера, да и сама утилита имеет открытые исходники, благодаря которым, преимущественно, мне и удалось реализовать свою задумку. При этом желание сэкономить время, зачастую приводит к обратному эффекту, времени тратится на решение значительно больше, чем, если бы этих попыток, сэкономить время, не было. Этот случай не стал исключением (xd). Мне очень не хотелось разворачивать среду работы с С++, вникать в тонкости и детали окружения, в связи с чем в исходниках разбирался исключительно с помощью блокнота, что в значительной степени взорвало мой мозг, подорвало душевное и физическое здоровье. Но не буду утомлять читателя подробностями, главное результат.

    В обработке сохранена возможность работы с файлами распакованными утилитой v8unpack и файлами выгруженными средствами 1с:[​IMG]

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

    [​IMG]

    Инструкцию о том, как пользоваться утилитой v8unpack, приводить не буду, думаю, любознательный читатель в состоянии сам разобраться с этим, тем более ссылки на статьи источники приведены выше по тексту. А вот процесс выгрузки и загрузки обработки в/из файлов в формате 1с покажу, т.к. при загрузке из файлов сам столкнулся с трудностями. Итак, для сохранения обработки в файлы, необходимо в меню «Действия» выбрать пункт «Выгрузить в файлы»:

    [​IMG]

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

    [​IMG]

    Выбираем объекты, которые необходимо защитить от декомпиляции и переходим к следующему шагу. Собственно при переходе к следующему шагу выполняется вся работа по защите байт-кода. Если никаких ошибок в процессе не возникло, появляется окно с соответствующей информацией:

    [​IMG]

    На этом работу с обработкой можно считать завершенной. Теперь требуется загрузить обработку из файла в обработку 1с. Вот тут я столкнулся с трудностями, я так и не смог этого сделать из меню самой обработки:

    [​IMG]

    По моему представлению обработка, из которой была вызвана команда, должна была замениться на ту, которая загружается из файлов. Однако, после того, как платформа запрашивает пароль на закрытый модуль, обработка просто закрывается и все. Поэтому загружать нужно из главного меню «Файл» -> «Открыть», выбираем формат «Обработка или отчет в формате XML (корневой файл)», натравливаем диалог открытия на наш каталог и открываем.

    [​IMG]

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

    [​IMG]

    Все тестирования проводились на платформе с номером релиза 8.3.15.1656.

    В качестве заключения.

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

    P.S.

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

    берем: Антидекомпилятор (закрытый исходный код)
    продажник
     
  2. Последние события

    1. skladchik.com
      Складчина доступна.
      27 июн 2020
    2. skladchik.com
      Взнос составляет 41р.
      27 июн 2020
    3. skladchik.com
      Складчина активна.
      27 июн 2020
    4. znatock2016
      znatock2016 участвует.
      27 июн 2020

    Последние важные события

    1. skladchik.com
      Складчина доступна.
      27 июн 2020
    2. skladchik.com
      Взнос составляет 41р.
      27 июн 2020
    3. skladchik.com
      Складчина активна.
      27 июн 2020
    4. skladchik.com
      Сбор взносов начинается 27.06.2020.
      25 июн 2020
  3. Обсуждение
  4. 25 июн 2020
    #2
    Hattori Hanzo
    Hattori Hanzo ОргОрганизатор
    А откуда цена в 500 руб., если обработка 1sm стоит?
     
  5. 25 июн 2020
    #3
    Организатор
    Организатор ОргОрганизатор
    рыночная стоимость 1sm
     
Статус обсуждения:
Комментирование ограничено.