Защиты новых ЭБУ: почему привычное оборудование уже не всегда берет свежий блок?
Еще несколько лет назад работа с прошивкой часто выглядела довольно просто: подключились по OBD, считали файл, внесли изменения, пересчитали контрольную сумму и записали обратно.
С новыми ЭБУ всё стало заметно сложнее.
Сегодня один и тот же двигатель на двух внешне одинаковых автомобилях может работать с разными версиями блока, разным софтом и разной защитой.
Один ЭБУ спокойно читается через OBD, второй требует Bench, третий сначала нужно разблокировать, а четвертый вообще не позволяет напрямую считать нужную область памяти.
И вот здесь специалисту уже недостаточно просто знать, где находится кнопка Read.
Контрольная сумма: базовый уровень защиты
Контрольная сумма нужна ЭБУ для проверки целостности данных. Если мы изменили калибровки, изменилось содержимое файла, значит контрольная сумма тоже должна быть пересчитана.
Но важный момент: если WinOLS, загрузчик или другой софт показывает Checksum OK, это еще не означает, что файл автоматически можно безопасно записывать в любой современный ЭБУ.
На новых блоках может быть несколько областей памяти, несколько проверок и дополнительные механизмы защиты.
Поэтому контрольная сумма сегодня часто является только одним из этапов подготовки файла.
Цифровая подпись: совсем другой уровень.
Checksum и цифровая подпись часто смешиваются в одну кучу, хотя это разные вещи.
Контрольная сумма проверяет, не повреждены ли данные. Цифровая подпись позволяет ЭБУ проверить, является ли программный блок допустимым и корректно подписанным.
Именно поэтому на некоторых современных Bosch MD1, MG1 и других новых системах уже не работает старая логика: считали файл, поменяли карты, пересчитали checksum и записали.
Файл может быть абсолютно целым, но ЭБУ всё равно его не примет, потому что не пройдет криптографическая проверка.
Поэтому вопрос сегодня звучит уже не только так:
"Посчитана ли контролька?", а так: поддерживает ли мой загрузчик конкретную версию этого ЭБУ и умеет ли он правильно подготовить файл к записи?
TriCore сам по себе не является защитой.
Здесь тоже много путаницы.
TriCore, а в более новых поколениях AURIX, это семейство микроконтроллеров Infineon.
Они используются в огромном количестве автомобильных блоков управления.
Надписи TC1766, TC1797, TC1793, TC298 и другие говорят нам о процессоре, но не объясняют автоматически, какая именно защита стоит в конкретном ЭБУ.
Защита зависит уже от производителя блока, аппаратной версии, софта, загрузчика и того, как организован доступ к памяти.
Поэтому вопрос "Там TriCore, чем его читать?" слишком общий.
Нужно смотреть конкретно: какой ЭБУ, какой HW, какой SW и какой протокол поддерживает оборудование.
Bench и Boot тоже не одно и то же.
Bench обычно означает работу со снятым блоком через его штатный разъем. Во многих случаях корпус ЭБУ вообще не нужно открывать. Мы просто подаем питание, подключаем CAN и остальные необходимые линии по распиновке.
Boot или BSL уже относится к более низкоуровневому доступу. Здесь часто приходится вскрывать корпус и работать непосредственно с платой, Boot-пином или специальными контактными площадками.
Но использовать Boot просто потому, что он кажется "надежнее", не нужно.
Если блок нормально поддерживается по OBD, работаем по OBD.
Если нужен Bench, используем Bench.
Если конкретный протокол требует Boot, тогда уже идем в Boot.
Правильный метод не самый сложный. Правильный метод тот, который предусмотрен для конкретного ЭБУ.
Почему одинаковые машины могут прошиваться по-разному
Очень типичная ситуация.
Клиент приезжает на автомобиле, который Вы уже неоднократно делали. Мотор тот же, модель та же, блок внешне такой же. Подключаете прибор, а он пишет, что протокол не поддерживается.
И первое ощущение: "Странно, неделю назад точно такой же делал".
Вот только "такой же" он может быть только снаружи.
Внутри может отличаться Hardware, Software, версия загрузчика, структура памяти или сама защита. Автомобиль мог получить дилерское обновление, а производитель оборудования еще не добавил поддержку новой версии.
Поэтому ориентироваться только на марку машины, двигатель или даже название ЭБУ нельзя.
Что такое Virtual Read и почему с ним нужно быть внимательным
Virtual Read тоже часто воспринимают как обычное чтение.
Но это не всегда так.
При виртуальном чтении загрузчик может считать идентификаторы ЭБУ, определить версию ПО и получить соответствующий оригинальный файл со своего сервера.
То есть в некоторых случаях мы получаем не физическое содержимое памяти автомобиля, а подходящий заводской оригинал.
И тут появляется важный нюанс.
Допустим, машину уже прошивал другой специалист. В ЭБУ сейчас лежит Stage 1. Вы делаете Virtual Read, а прибор скачивает заводской оригинальный файл.
Получается, файл на компьютере и файл внутри ЭБУ могут отличаться.
Поэтому всегда нужно понимать, мы реально считали память автомобиля или получили оригинал по идентификаторам.
NOREAD тоже не надо путать с заводской криптографией
NOREAD сам по себе не означает, что перед Вами современная заводская защита типа RSA.
В ряде случаев NOREAD используется уже калибровщиком или программным обеспечением для ограничения чтения или импорта модифицированного файла.
Поэтому если Вы считали блок и увидели признаки NOREAD, это повод насторожиться.
Возможно, машина уже была прошита до Вас.
И если клиент говорит: "Я вообще ничего не знаю, такой купил", это совершенно обычная ситуация.
Не нужно сразу считать считанный файл стоком. Сначала лучше проверить, что внутри вообще находится.
Что я бы обязательно делал перед прошивкой?
До любых манипуляций с ЭБУ я бы сначала сделал диагностику автомобиля и сохранил ошибки.
Это сильно упрощает жизнь после работы. Если потом клиент скажет: "После прошивки загорелась ошибка", у Вас будет диагностика до вмешательства и можно будет спокойно сравнить состояние автомобиля.
После этого проверяем питание, особенно если впереди запись.
На легковом автомобиле желательно нормальное стабильное питание. На грузовиках отдельно учитываем 24-вольтовую систему и используем оборудование, рассчитанное на неё.
Дальше сохраняем идентификаторы ЭБУ: HW, SW, номер блока, Calibration ID, VIN и всё остальное, что показывает прибор.
Скриншоты тоже лишними не будут. Через несколько месяцев они часто оказываются полезнее, чем кажется в момент работы.
Параллельно спрашиваем клиента, прошивалась ли машина раньше, обновляли ли её у дилера, менялся ли ЭБУ и проводились ли какие-то программные работы.
Но даже уверенное "нет" не является гарантией.
Владелец может просто не знать, что происходило с автомобилем несколько лет назад.
Backup лучше сделать заранее
Если оборудование позволяет сохранить полноценный Backup, особенно при Bench или Boot работе, я бы обязательно этим воспользовался.
Original Flash, EEPROM, DFlash, IFlash и другие доступные области памяти могут понадобиться не только для тюнинга, но и для восстановления блока.
А вот хранить файлы в стиле BMW FINAL ORIGINAL 2.bin точно не стоит
Лучше сразу выстроить понятную структуру: VIN, автомобиль, модель ЭБУ, HW, SW, дата, ORIGINAL, MOD, BACKUP.
Это банальная вещь, но когда файлов становится несколько тысяч, порядок очень быстро начинает экономить часы работы.
Похожий файл не значит совместимый.
Одна из самых опасных привычек в чип-тюнинге: "У меня есть прошивка от такого же блока".
Допустим, в базе есть файл для Bosch MD1CP002, и на машине стоит MD1CP002.
Этого недостаточно.
Нужно сверять аппаратную и программную версии, размер и структуру файла, идентификаторы, способ чтения и поддержку загрузчика.
Особенно аккуратно нужно работать со старыми MOD-файлами.
Представим, что автомобиль прошивали полгода назад. Потом клиент съездил к дилеру, где ему обновили программное обеспечение. Сегодня он возвращается к Вам, а Вы берете старый MOD и просто записываете его обратно.
Вот здесь уже вполне можно получить проблему.
Поэтому перед повторной записью старого файла лучше заново считать идентификаторы и проверить, что в блоке ничего не изменилось.
Writing successful еще не означает, что работа закончена
Это тоже частая ошибка.
Загрузчик написал, что запись завершена успешно, и кажется, что можно сразу отдавать автомобиль.
Но после программирования я бы обязательно проверил связь с ЭБУ, сделал диагностику, запустил двигатель и посмотрел основные параметры.
Если выполнялся Stage 1, хорошо бы сделать тестовую поездку и при необходимости снять логи.
Нужно смотреть не только на то, завелась машина или нет. Важно проверить наддув, давление топлива, температуры, коррекции, запрашиваемый и фактический момент, работу коробки и другие параметры, которые относятся к конкретной задаче.
Потому что прошивка может записаться идеально, а сам автомобиль при этом иметь техническую проблему.
Как объяснить всё это клиенту?
Владельцу машины совершенно не нужно рассказывать про RSA, Bootloader, OTP и внутреннюю архитектуру TriCore.
Ему достаточно понятного объяснения.
Например:
"На Вашем автомобиле установлен современный блок управления с дополнительной защитой. Сначала нужно определить точную версию ЭБУ и проверить доступный метод работы. Если блок поддерживает программирование через диагностический разъем, сделаем через OBD. Если нет, потребуется снять ЭБУ и подключиться к нему напрямую.
Для современных автомобилей это обычная процедура."
Так клиент понимает, почему одна машина делается за 30 минут, а другую приходится оставлять на несколько часов.
Еще один момент я бы всегда проговаривал после работы.
Если автомобиль потом поедет к дилеру и получит обновление программного обеспечения, модифицированная прошивка может быть перезаписана. На некоторых блоках после обновления может понадобиться и повторная разблокировка.
Лучше объяснить это сразу, чем потом слышать: "После дилера Stage 1 куда-то пропал".
Современный чип-тюнинг уже давно не сводится к схеме:
"считал BIN → поменял карты → записал обратно".
Сегодня нормальная работа начинается с идентификации блока, проверки способа доступа и сохранения исходных данных. Потом уже идет калибровка, подготовка файла, запись, диагностика и проверка автомобиля.
Чем новее ЭБУ, тем важнее понимать не просто чем его прочитать, а что именно мы сейчас читаем, откуда получили этот файл и что произойдет после записи.
Вот это и отличает нормальную работу с современными ЭБУ от подхода "давайте попробуем этот протокол, вдруг прокатит".
Источник: VK

