Закажите бесплатный расчет стоимости вашей задачи по 1С!
Перезвоним за 10 минут! (в рабочие часы)

Защита модулей паролем и их декомпиляция в 1С 8.3 и 8.2

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

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

В данной статье я хочу разобраться, как установить защиту и снять её, если Вы забыли пароль.

Установка защиты на модуль 1C

Возьмем любой модуль любого объекта. Я взял навскидку первый же документ – «Авансовый отчет». Если поставить курсор на текст кода модуля, в главном меню появится пункт «Текст». В этом пункте есть подпункт «Установить пароль».

Попробуем установить:

установка пароля на модуль

Программа меня тут же предупредила о том, что нельзя защитить модуль, имеющий директивы препроцессора:

вопрос

Напоминаем, директивы препроцессора — это такие конструкции, как #Если, #Тогда,  #Конец и т.п.

Если вы только начинаете программировать в 1С или просто хотите систематизировать свои знания - попробуйте Школу программирования 1С нашего друга Владимира Милькина. Пошаговые и понятные уроки даже для новичка с поддержкой учителя.
Попробуйте бесплатно по ссылке >>

Что же, посмотрим, во что это выльется. Устанавливаем пароль.

После установки пароля при попытке закрыть модуль выходит сообщение об ошибке:

Игнорируем ошибку и сохраняем конфигурацию. Интересно, откроется ли документ. Запускаем программу в режиме «Предприятия».

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

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

Вывод однозначный: не все модули можно защитить. Однако ничего Вам не мешает вынести функции и процедуры с директивами препроцессора в отдельный модуль.

Пробуем защитить общий модуль. Случайным выбором пробую защитить 10 общих модулей. Примерно половина защитились без всяких замечаний. При попытке защитить вторую половину просто вышло сообщение, что модуль нельзя защитить.

Осталось проверить обработки. Возьмем для интереса внешнюю. Защита прошла без проблем.

Проверка надежности защиты с помощью декомилятора модулей 1С

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

Запускаем 1С в режиме предприятия и открываем обработку с декомпилятором через «Файл» – «Открыть». Замечу, что обработка, которую я нашел, написана на обычных формах, и запускать ее нужно под толстым клиентом:

Нажимаем «Декомпилировать» и получаем сообщение, что все прошло успешно:

выполнение обработки

Пробуем открыть модуль в конфигураторе, и он прекрасно открывается.

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

Теперь осталось проверить, как декомпилятор справится с общими модулями. Сохраняем конфигурацию в файл.

Выбираем в обработке:

выбор конфигурации для декомпилирования

После нескольких минут получаем сообщение:

Загружаем конфигурацию из файла и проверяем защиту. Защита полностью снята.

Тестирование проводилось на платформе 8.3.9.1818, конфигурация «Бухгалтерия предприятия 3.0.44.188».

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

Данный материал предоставлен только в ознакомительных целях с целью обзора механизма защиты платформы 1С. Запрещено использовать данный материал для получения доступа к защищенным авторским правом разработкам.

К сожалению, мы физически не можем проконсультировать бесплатно всех желающих, но наша команда будет рада оказать услуги по внедрению и обслуживанию 1С. Более подробно о наших услугах можно узнать на странице Услуги 1С или просто позвоните по телефону +7 (499) 350 29 00. Мы работаем в Москве и области.

Остались вопросы?

СПРОСИТЕ в комментариях!

Комментариев: 23 на “Защита модулей паролем и их декомпиляция в 1С 8.3 и 8.2
  1. Ошибка открытия обработки:
    {ExternalDataProcessor.Декомпилятор1Сv8.ObjectModule}: Переменная с указанным именем уже определена (bp)

    Ответить

  2. Статья для тех кто хочет взломать, а не для забывших пароль. Автор не так ли? Вот из-за подобных хитро*опых личностей приходится допом к паролю проводить обфускацию кода. Если стоит пароль, значит НЕ НАДО ЛЕЗТЬ, но нет же у нас все себя считают самыми умными

    Ответить

    • Мне нужно в купленной обработке допилить функционал, а автор уже стопятьсот лет не отвечает!!! и где тут логика про пароль???
      СИТУАЦИИ РАЗНЫЕ БЫВАЮТ!!!

      Ответить

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

      Ответить

  3. У меня обработка никак не запускалась. Ругался что «не достаточно прав…….»
    Чего только не делал, толстый, тонкий, от имени админа запускал 1с, переключился на админ виндовса…..всё равно не запускался.

    Помогло:
    1С:Предприятие 8.3 (8.3.8.1747)
    Управление торговлей, редакция 11.1 (11.1.10.199)
    Толстый клиент
    Обычное приложение

    Ответить

    • Если Вас останавливает именно это, то от Вас, простите, в первую очередь и ставят защиту.

      Ответить

    • платформу которой в примере открывали не открывается выдает ошибку
      может кто то подскажет с какой версией платформы и конфигурацией данная обработка открывается

      Ответить

      • Платформа должна быть 32-битной. Под 64 обработка не работает, пишет что недостаточно прав. 1С должна быть запущена под Администратором.

        Ответить

  4. если у этого «декомпилятора» код закрыт, то где гарантия что в этом коде не располагается вирус-шифровальщик или команда на удаление всех файлов с жесткого диска ?

    Ответить

  5. Вот моя ситуация:
    Разраб — ондон, сделал конфу, сделал к ней Переход на свою другую. И при переходе возникают ошибки. Всё плывет нафиг, а в код я залезть не могу, приходится ждать техподдержки и пустые отмазки — типа ререпроведите всё. начинаю перепроводить — еще больше плывет!!! на меня мое начальство смотрит как на идиота.
    Как вам такой расклад?

    Ответить

  6. пригорает у любителей наживы, защитивших свой говнокод паролем. 🙂

    Ответить

  7. Есть такая чудесная организация РИЦ Екатеринбург. Взяли у них 2 доработки Медицина Больница, на тот момент в конфиге не было функционала проф. осмотров. Заплатили 500 000 рублей…
    И… РИЦ пропал… разборки привели к интересному результату, оказывается мы не оплатили внедрение… Какое внедрение в зад… при разговоре до оплаты десять раз спрашивал — Дополнение устанавливается стандартными средствами? Хрен с ним… ну где то за что заплатили? Высылают cfg накатываю, падает весь конфиг…то есть то что нормально работало не работает, о функционале дополнений молчу…там все печальней, смотрим в код, а там кругом пароли… После 2х месячного бодалова отзванивается чел, который все прикручивает за неделю неспешно. В результате общения с ним, закралось подозрение, что к Великой Интеграционной конторе РИЦ он имеет странное отношение…

    Результат: В Государственной организации работает конфигурация, которую без РИЦ невозможно обновить (но я подозреваю что и с РИЦ) обновить будет невозможно. Ценник за обновление опять же таки 500 000 рублей…

    Ну и как оно Вам?

    Ответить

    • Работал я там как-то, давным давно)))
      Не могу не согласиться с их непонятным мне подходом, поэтому там больше и не раотаю

      Ответить

  8. У меня просто пустое окно выходит

    Ответить

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

      Ответить

  9. При попытке декомпиляции «Индекс находится за границами массива»

    Ответить

  10. Декомпилятор будет работать на 8.3.13, новее уже вряд ли

    Ответить

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

    Ответить

  12. не удалось загрузить внешнюю компоненту v8cf (не хватает прав ?)

    Ответить

    • Толстый клиент запускал от имени администратора?

      Ответить

  13. Тоже была проблема с текстами модулей в прикладном решении разработчика, связь с которым давно потеряна… Обработка декомпиляции открывает исходные тексты модулей. Было несколько ссылок на неопределенный тип значения и неизвестный вид метаданных. Запускала в Обычном приложении, под Толстым клиентом, платформа 8.3.22.1851… Спасибо автору статьи!

    Ответить

Добавить комментарий:

Ваш адрес email не будет опубликован.