Как снять или обойти пароль на файл конфигурации (*.md) в 1С 7.7?

Программист 1С v7.7 IT и автоматизация бизнеса
← На главную

Рассмотрим ситуацию, с которой периодически сталкиваются специалисты при поддержке старых баз на платформе 1С:Предприятие 7.7: пароль на вход в конфигуратор (от файла 1cv7.md) утерян, а бывший программист не оставил данных для доступа. Популярные программы для подбора паролей, такие как утилита BForceMD, могут выдавать ошибку чтения хэша пароля. Проанализируем возможные пути решения этой задачи и разберем по шагам рабочие методы восстановления доступа к конфигурации.

Разграничим пароли пользователя и пароль на метаданные

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

  1. Пароль пользователя — запрашивается при входе в информационную базу (как в режиме Предприятия, так и в Конфигураторе). Если забыт пароль администратора, обойти его очень просто. Зайдем в папку с базой данных, найдем каталог UsrDef, в котором хранится файл users.usr со списком пользователей. Временно переименуем или переместим эту папку в другое место. После этого платформа пустит нас в конфигуратор без авторизации, где мы сможем создать нового пользователя с правами администратора, затем вернуть папку на место и сменить старый пароль.
  2. Пароль на файл конфигурации — запрашивается непосредственно при попытке открыть метаданные для редактирования. Он зашит внутри самого файла 1cv7.md. Разберем подробнее, как снять именно этот пароль.

Метод 1: Модификация библиотеки seven.dll

Посмотрим на классический технический способ обхода защиты, который упоминался участниками обсуждения. За проверку вводимого пароля при открытии конфигуратора отвечает системная библиотека seven.dll, которая находится в каталоге установки платформы (в папке BIN).

Суть метода заключается в редактировании этого файла с помощью любого HEX-редактора. Разберем механику: в коде библиотеки есть инструкция условного перехода, проверяющая результат сравнения хэшей введенного и сохраненного паролей. Если изменить всего один байт — поменять команду JNZ (Jump if Not Zero) на JZ (Jump if Zero), платформа начнет работать "наоборот".

После такого патча конфигуратор перестанет блокировать доступ и будет принимать абсолютно любой введенный пароль (или даже пустую строку) как верный. Исторически для автоматизации этого процесса применялись готовые патчи, например, файл Seven75.sp, который вносил нужные изменения в библиотеку в один клик. После снятия пароля в конфигураторе рекомендуется вернуть оригинальный файл seven.dll на место.

Метод 2: Прямое редактирование OLE-структуры файла .md

Если сторонние утилиты для брутфорса (перебора) выдают ошибку чтения хэша, мы можем удалить пароль напрямую из файла конфигурации. Проанализируем структуру файла 1cv7.md. Этот файл представляет собой OLE-контейнер (Compound Document), структура которого схожа с форматом архивов или старых документов Microsoft Office.

Внутри контейнера данные распределены по отдельным независимым потокам (streams). Хэш пароля хранится в одном из таких потоков. Выполним следующие шаги для очистки:

  1. Установим файловый менеджер с поддержкой просмотра OLE-контейнеров. Отлично подойдет FAR Manager со специальным плагином DocFile Browser или Total Commander с плагинами для просмотра OLE-структур.
  2. Сделаем резервную копию файла 1cv7.md перед любыми вмешательствами.
  3. Откроем файл 1cv7.md через файловый менеджер как архив.
  4. Найдем внутри структуры блок данных, отвечающий за хранение пароля конфигурации.
  5. Удалим или "занулим" этот поток.

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

Метод 3: Использование старых релизов платформы

Рассмотрим еще один малоизвестный, но эффективный способ обхода, основанный на особенностях ранних версий 1С 7.7. В очень старых релизах платформы (до 5-го или 9-го релиза) механизм проверки пароля на конфигурацию был реализован иначе, и в некоторых случаях ядро программы просто игнорировало установленную защиту.

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

Подводя итог: восстановление доступа к конфигурации 1С 7.7 — решаемая задача. Применяйте описанные методы осторожно, всегда создавайте резервные копии баз данных перед внесением изменений в файлы платформы или метаданных.

← На главную