«Январь 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 / C000 | 23h |
| 6001 / C001 | 03h |
| 6002 / C002 | 33h |
| 6003 / C003 | 13h |
| 6004–6005 / C004–C005 | старший и младший байт стартового адреса программы |
| 6006–6007 / C006–C007 | длина программы (с учетом ячеек 6000–6009), старший и младший байт |
| 6008–6009 / C008–C009 | два байта контрольной суммы |
Поскольку эта область сама лежит в флэш, изменение любой ячейки блокирует штатный механизм — но это грубый обход, а не нормальная работа.
Для работы с защищенным «Январь-5» («Микас-7») или «VS5.1» действуют так:
Какие контакты трогать:
| ЭБУ | Адресные контакты для замыкания на массу |
|---|---|
| Январь 5.хх, Микас-7 | 2…12, 23, 25…29 |
| Январь 5.1 (по фото платы) | 3…12, 23 |
| VS5.1, Январь 7.2 | 1…8, 18…24 (18…25), 48 |
Для VS5.1 ЭБУ удобно ставить разъемом вверх: первый контакт — верхний в левом ряду. Любые манипуляции с ножками требуют осторожности: замыкание посторонних точек схемы может вывести блок из строя.
Если нужно убрать саму защиту, в файле или в памяти блока обнуляют ячейку 6000 (C000). Недостаток метода — во время работы контроллер начнет формировать код неисправности «Ошибка ПЗУ контроллера».
Перед любыми операциями сделайте полную копию содержимого памяти — восстановить блок после неудачной попытки проще из резервного образа. Замыкание выполняйте аккуратно: рабочий инструмент должен касаться только одного адресного вывода, оголенные ножки не должны коротить на соседние. Если после всех действий блок отказывается программироваться, стоит проверить саму флэш и цепь сброса процессора, а также убедиться, что контроллер питается стабильным напряжением. Отдельно помните о втором типе защиты — привязке прошивки к паспортным данным блока: он не мешает чтению и записи, но требует, чтобы в память попал образ, предназначенный именно для этого контроллера.
Заблокированный «Январь» читается через кратковременное замыкание адресного контакта флэш на массу, а снятие защиты ячейкой 6000 неизбежно ведет к ошибке ПЗУ — учитывайте это при восстановлении блоков.
Мы каждый день читаем, прошиваем и диагностируем моторы: подскажем по вашему блоку и сделаем работу с гарантией и хранением стоковой прошивки.