СПРАВОЧНИК // СТАТЬИ И ОБЗОРЫ

«Январь 5.1»/7.2: защита от считывания и методы обхода

Виды защит прошивок «Январь» и способы их обхода.

В контроллерах «Январь 5.1.x», «Январь 7.2», VS5.1 и родственных «Микас-7» применяется защита памяти, построенная на блокировке внутрисхемной процедуры Bootstrap Loader микроконтроллера Siemens C509 (описана в его User's Manual, раздел 10.2.1). Программатор просто не может установить связь с процессором для чтения или записи флэш-памяти. Важно понимать: это защита именно уровня доступа, а не привязка содержимого к конкретному блоку — второй вид защиты реализуется иначе, прошивку тогда можно скопировать, но мотор после записи не заведется.

Как устроена блокировка

В ячейках 6000–6009 (или C000–C009) размещается управляющая область, а собственная программа обмена стартует с ячейки 600A (C00A):

ЯчейкаСодержимое
6000 / C00023h
6001 / C00103h
6002 / C00233h
6003 / C00313h
6004–6005 / C004–C005старший и младший байт стартового адреса программы
6006–6007 / C006–C007длина программы (с учетом ячеек 6000–6009), старший и младший байт
6008–6009 / C008–C009два байта контрольной суммы

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

Обход при чтении и записи

Для работы с защищенным «Январь-5» («Микас-7») или «VS5.1» действуют так:

  1. вскрыть контроллер и подключить его к программатору;
  2. на время установки соединения замкнуть на массу один из адресных контактов микросхемы флэш 28F010 (квадратный 32-контактный корпус, нумерация от метки против часовой стрелки);
  3. сразу после входа в режим программирования убрать перемычку.

Какие контакты трогать:

ЭБУАдресные контакты для замыкания на массу
Январь 5.хх, Микас-72…12, 23, 25…29
Январь 5.1 (по фото платы)3…12, 23
VS5.1, Январь 7.21…8, 18…24 (18…25), 48

Для VS5.1 ЭБУ удобно ставить разъемом вверх: первый контакт — верхний в левом ряду. Любые манипуляции с ножками требуют осторожности: замыкание посторонних точек схемы может вывести блок из строя.

Снятие защиты программно

Если нужно убрать саму защиту, в файле или в памяти блока обнуляют ячейку 6000 (C000). Недостаток метода — во время работы контроллер начнет формировать код неисправности «Ошибка ПЗУ контроллера».

Рекомендации по работе

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

Заблокированный «Январь» читается через кратковременное замыкание адресного контакта флэш на массу, а снятие защиты ячейкой 6000 неизбежно ведет к ошибке ПЗУ — учитывайте это при восстановлении блоков.

Нужна не теория, а результат?

Мы каждый день читаем, прошиваем и диагностируем моторы: подскажем по вашему блоку и сделаем работу с гарантией и хранением стоковой прошивки.

Записаться на диагностику