Защита модулей паролем и их декомпиляция в 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. Мы работаем в Москве и области.
СПРОСИТЕ в комментариях!
Aлександр:
Ошибка открытия обработки:
{ExternalDataProcessor.Декомпилятор1Сv8.ObjectModule}: Переменная с указанным именем уже определена (bp)
Денис:
Статья для тех кто хочет взломать, а не для забывших пароль. Автор не так ли? Вот из-за подобных хитро*опых личностей приходится допом к паролю проводить обфускацию кода. Если стоит пароль, значит НЕ НАДО ЛЕЗТЬ, но нет же у нас все себя считают самыми умными
РУМЫН:
Мне нужно в купленной обработке допилить функционал, а автор уже стопятьсот лет не отвечает!!! и где тут логика про пароль???
СИТУАЦИИ РАЗНЫЕ БЫВАЮТ!!!
Андрей:
А еще бывает так, что все куплено, деньги за решение уплачены, разработчик нахер посылает. Нет, не в открытую, но придумывая различные предлоги, не буду переходить на личности. Или ставит в длиннющую очередь на техподдержку для исправления плевой ошибки в его решении. Сами разрабы и не приветствуем такие решения, но иногда такой инструмент очень нужен. Спасибо автору статьи.
ulterior:
У меня обработка никак не запускалась. Ругался что «не достаточно прав…….»
Чего только не делал, толстый, тонкий, от имени админа запускал 1с, переключился на админ виндовса…..всё равно не запускался.
Помогло:
1С:Предприятие 8.3 (8.3.8.1747)
Управление торговлей, редакция 11.1 (11.1.10.199)
Толстый клиент
Обычное приложение
dc:
Если Вас останавливает именно это, то от Вас, простите, в первую очередь и ставят защиту.
тина:
платформу которой в примере открывали не открывается выдает ошибку
может кто то подскажет с какой версией платформы и конфигурацией данная обработка открывается
Бух:
Платформа должна быть 32-битной. Под 64 обработка не работает, пишет что недостаточно прав. 1С должна быть запущена под Администратором.
Аноним:
если у этого «декомпилятора» код закрыт, то где гарантия что в этом коде не располагается вирус-шифровальщик или команда на удаление всех файлов с жесткого диска ?
Аноним:
Компонента — обычная дллка, которую можно проверить онлайн.
Результат на вирустотале:
https://www.virustotal.com/ru/file/2f3adb6df988cf42b30bcc62183ab94a7dda0aa7627bef213bd18581322b4ee2/analysis/
Но я категорически рекомендую каждому, кто будет качать, сначала сохранить внешнюю компоненту отдельно, проверить, и только потом пользоваться.
стас:
Вот моя ситуация:
Разраб — ондон, сделал конфу, сделал к ней Переход на свою другую. И при переходе возникают ошибки. Всё плывет нафиг, а в код я залезть не могу, приходится ждать техподдержки и пустые отмазки — типа ререпроведите всё. начинаю перепроводить — еще больше плывет!!! на меня мое начальство смотрит как на идиота.
Как вам такой расклад?
альтруист:
пригорает у любителей наживы, защитивших свой говнокод паролем. 🙂
Владимир:
Есть такая чудесная организация РИЦ Екатеринбург. Взяли у них 2 доработки Медицина Больница, на тот момент в конфиге не было функционала проф. осмотров. Заплатили 500 000 рублей…
И… РИЦ пропал… разборки привели к интересному результату, оказывается мы не оплатили внедрение… Какое внедрение в зад… при разговоре до оплаты десять раз спрашивал — Дополнение устанавливается стандартными средствами? Хрен с ним… ну где то за что заплатили? Высылают cfg накатываю, падает весь конфиг…то есть то что нормально работало не работает, о функционале дополнений молчу…там все печальней, смотрим в код, а там кругом пароли… После 2х месячного бодалова отзванивается чел, который все прикручивает за неделю неспешно. В результате общения с ним, закралось подозрение, что к Великой Интеграционной конторе РИЦ он имеет странное отношение…
Результат: В Государственной организации работает конфигурация, которую без РИЦ невозможно обновить (но я подозреваю что и с РИЦ) обновить будет невозможно. Ценник за обновление опять же таки 500 000 рублей…
Ну и как оно Вам?
Аноним:
Работал я там как-то, давным давно)))
Не могу не согласиться с их непонятным мне подходом, поэтому там больше и не раотаю
Аноним:
У меня просто пустое окно выходит
Александр:
Открывайте в конфигурации, поддерживающей обычные формы. Это не под управляемый интерфейс
alex-ander:
При попытке декомпиляции «Индекс находится за границами массива»
Сергей:
Декомпилятор будет работать на 8.3.13, новее уже вряд ли
Аноним:
на 8.3.16 запускал, норм
Аноним:
лайфхак — можно создать пустую базу для разработки, поставить режим обычного приложения и открыть через нее декомпилятор.
Cthulhu:
не удалось загрузить внешнюю компоненту v8cf (не хватает прав ?)
Аноним:
Толстый клиент запускал от имени администратора?
Shelly:
Тоже была проблема с текстами модулей в прикладном решении разработчика, связь с которым давно потеряна… Обработка декомпиляции открывает исходные тексты модулей. Было несколько ссылок на неопределенный тип значения и неизвестный вид метаданных. Запускала в Обычном приложении, под Толстым клиентом, платформа 8.3.22.1851… Спасибо автору статьи!
ASoft:
Коллеги, поставил ту жен 8.3.9.1818, но обработка декомпилятора не открывается пишет: Ошибка доступа к файлу ‘C:\Users\~~~\AppData\Local\Temp\Cv8cf.dll’. 5(0x00000005): Отказано в доступе. Пробовал давать Полный доступ для ‘Все’ — не помогает, похоже 1С-ка его каждый раз заново создает и держит.
Как можно решить эту проблему. Заплатили 140 тысяч и разрабы слились и телефон не берут. А там косяков изрядно. Очень нужно декомпилировать и доработать. Помогите пожалуйста.
Аноним:
Запуск 1С с правами админа.
Касательно работы самой обработки. На новых версиях платформы не рабоает и выделает