Как проверит прошивки автомобиль

Как расшифровать прошивку автомобиля в неизвестном формате

Toyota распространяет свои прошивки в недокументированном формате. Мой заказчик, у которого автомобиль этой марки, показал мне файл прошивки, который начинается так:

CALIBRATIONêXi º
attach.att
ÓÏ[Format]
Version=4

[Vehicle]
Number=0
DateOfIssue=2019-08-26
VehicleType=GUN1**
EngineType=1GD-FTV,2GD-FTV
VehicleName=IMV
ModelYear=15-
ContactType=CAN
KindOfECU=0
NumberOfCalibration=1

[CPU01]
CPUImageName=3F0S7300.xxz
FlashCodeName=
NewCID=3F0S7300
LocationID=0002000100070720
CPUType=87
NumberOfTargets=3
01_TargetCalibration=3F0S7200
01_TargetData=3531464734383B3A
02_TargetCalibration=3F0S7100
02_TargetData=3747354537494A39
03_TargetCalibration=3F0S7000
03_TargetData=3732463737463B4A

3F0S7300forIMV.txt ¸Ni¶m5A56001000820EE13FE2030133E20301
33E2030133C20EF13FE2030133E20301
33E2030133E2030133E2030133E20301
33E2030133C20EF13FE2030133E20301
33E2030133C20EF13FE2030133E20301
33E2030133C20EF13FE2030133E20301
33E2030133E2030133E2030133E20301
33E2030133C20EF13FE2030133E20301
33E2030133E20911381959FAB0EE9000
81C9E03ADE35CEEEEFC5CF8DE9AC0910
38C2E031DE35CEEEEFC8CF87E95C0920
.
Дальше идут строки по 32 шестнадцатеричные цифры.

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

Конкретно для этой прошивки у него имелся дамп содержимого:

Как видно, нет ничего даже близко похожего на строчки шестнадцатеричных цифр в файле прошивки. Встает вопрос: в каком формате распространяется прошивка, и как ее расшифровать? Эту задачу хозяин автомобиля поручил мне.

Повторяющиеся фрагменты

Посмотрим внимательно на те шестнадцатеричные строчки:

5A56001000820EE13FE2030133E20301
33E2030133C20EF13FE2030133E20301
33E2030133E2030133E2030133E20301
33E2030133C20EF13FE2030133E20301
33E2030133C20EF13FE2030133E20301
33E2030133C20EF13FE2030133E20301
33E2030133E2030133E2030133E20301
33E2030133C20EF13FE2030133E20301
33E2030133E20911381959FAB0EE9000
81C9E03ADE35CEEEEFC5CF8DE9AC0910
38C2E031DE35CEEEEFC8CF87E95C0920
.

Видим восемь повторений последовательности из трехкратного E2030133 , которые весьма напоминают восемь первых строчек дампа, заканчивающиеся на 12 нулевых байт. Сразу же можно сделать три вывода:

  1. Пять первых байт 5A56001000 — это некий заголовок, не влияющий на содержимое дампа;
  2. Дальнейшее содержимое зашифровано блоками по 4 байта, причем одинаковым байтам дампа соответствуют одинаковые байты в файле:
    • E2030133 → 00000000
    • 820EE13F → 80078000
    • C20EF13F → 80070000
    • E2091138 → E0076001
    • 1959FAB0 → 2A0600FF
    • EE900081 → 00000A58
    • C9E03ADE → EAFF2000
  3. Видно, что это не XOR-шифрование, а нечто более сложное; но при этом похожим блокам дампа соответствуют похожие блоки в файле — например, изменению одного бита 80078000→80070000 соответствует изменение одного бита 820EE13F→C20EF13F .

Соответствия между блоками

Получим список всех пар (блок файла, блок дампа), и поищем в нем закономерности:

Вот как выглядят первые пары в отсортированном списке:

Действительно, видны закономерности:

  • Изменения в битах 0-3 в дампе меняют биты 0-3 и 16-19 в файле (маска 000F000F )
  • Изменения в битах 24-25 в дампе меняют биты 8-11 и 24-27 в файле (маска 0F000F00 )

Напрашивается гипотеза, что каждые 4 бита в дампе влияют на те же самые 4 бита в каждой 16-битной половине 32-битного блока.

Для проверки — «отрежем» старшие 4 бита в каждом полублоке, и посмотрим, какие пары получатся:

После перестановки подблоков по 4 бита в ключе сортировки, соответствия между парами подблоков становятся еще более явными:

Соответствия между подблоками

В вышеприведенном списке видны такие соответствия:

  • Для маски 0F000F00 :
    • x0xxx0xx в дампе → x2xxx1xx в файле
    • x0xxx4xx в дампе → x2xxx0xx в файле
    • xCxxx0xx в дампе → x0xxx5xx в файле
  • Для маски 00F000F0 :
    • xx0xxx0x в дампе → xx0xxx3x в файле
    • xx0xxx5x в дампе → xx9xxx8x в файле
    • xx0xxx9x в дампе → xxAxxxBx в файле
    • xxFxxx0x в дампе → xxExxxDx в файле
    • xxFxxxFx в дампе → xx8xxxDx в файле
  • Для маски 000F000F :
    • xxx0xxx7 в дампе → xxxFxxxF в файле
    • xxx7xxx0 в дампе → xxxExxxF в файле
    • xxx7xxx1 в дампе → xxx9xxx8 в файле

Можно сделать вывод, что каждый 32-битный блок в дампе разбивается на четыре восьмибитных значения, и эти значения заменяются при помощи неких таблиц подстановки, для каждой маски своей. Содержимое этих четырех таблиц кажется относительно случайным, но попробуем выделить из нашего файла их все:

Когда таблицы соответствия готовы, код расшифровки получается совсем простой:

Заголовок прошивки

В самом начале перед зашифрованными данными был пятибайтный заголовок 5A56001000 . Первые два байта — сигнатура ‘ZV’ — подсказывают, что используется формат LZF; дальше обозначены метод сжатия ( 0x00 — без сжатия) и длина ( 0x1000 байт).

Хозяин автомобиля, передавший мне файлы для анализа, подтвердил, что в прошивках встречаются и сжатые LZF данные. К счастью, реализация LZF открыта и довольно проста, так что вместе с моим анализом ему удалось удовлетворить свое любопытство по поводу содержимого прошивок. Теперь он может вносить изменения в код — например, автозапуск двигателя при падении температуры ниже заданного уровня, чтобы использовать автомобиль в условиях суровой русской зимы.

Источник статьи: http://habr.com/ru/company/ruvds/blog/513036/

Учимся самостоятельно прошивать ЭБУ на примере Ваз 2115I

Перейти в раздел:

Ну вот и сбылась моя мечта-поменять свой «Маскарад» на что-то более новое и современное. Выбор пал на Ваз 2115I 1.5L 8V — хватило денег на 2006 г.в. В комплекте ГБО, музыка, маршрутный компьютер, не очень хорошая сигнализация, колеса на 14, защита арок, защита поддона и потертые чехлы. В скорости определился список первоочередных работ — необходим ремкомплект на газовый редуктор и весь комплекс работ по приведению ГБО в порядок. При работе на бензине машина стала глохнуть при сбросе оборотов (про работу на газе и не говорю). Изношен синхронизатор на 2 передачу, срочная замена масла и тосола, закапал снизу радиатор и обнаружилась трещина расширительного бочка. Так началось изучение матчасти данного авто. Но российского автолюбителя не напугать Вазом после таких моделей как «Запорожец» и «Москвич»!

Прошел год эксплуатации и к списку выше добавилась замена стартера, покупка нового ДМРВ, регулятора холостого хода, установка новой сигнализации с обратной связью, замена разбитых камнями пары противотуманок. Но сколько не старайся на изделии нашего автопрома все равно остаются баги. Можно бы подумать и о другой машине, но жалко вложенного труда и средств. Правда замена частей производилась только после неоднократных попыток отремонтировать очередной узел самостоятельно. Кое-что удавалось сделать и если будет возможность постараюсь написать статьи на такие темы: ремонт и настройка редуктора ГБО, ремонт стартера, установка сигнализации.

Сейчас остановлюсь на перепрошивке ЭБУ с целью научить ездить ВАЗ. Для начала утверждаю что шить наше отечественное изделие можно и даже нужно.Тем более авто которое с рождения не обслуживалось на сервисе , а таких я думаю наберется процентов 50 от всего парка инжекторных Вазов. Прошивать очень легко и просто — нажал пару иконок на компьютере, пощелкал пару-тройкой тумблеров и в ваш авто как будто влили ракетное топливо! А вот понять как все это делается , соединить разную информацию в одно целое дано не каждому и намного труднее. Здесь мое уважение к настоящим мастерам! Увы готовой информации разложенной по полочкам вы скорее всего нигде не найдете. В интернете можно собрать это по крохам читая и перечитывая многочисленные форумы. У меня до первой перепрошивки ушло где-то полгода с 2-3 «подходами к снаряду». За это время освоил прошивку других электронных приборов, таких как спутниковые ресивера, настройку их работы по шаре, настройку спутникового интернета, эксплуатацию мотоподвесов и настройку всего спутникового хозяйства до конечного результата.

Не думайте что написание данной пространной статьи меня подвигла тяга к писательству, все намного проще: просто во время первой попытки считать прошивку с ЭБУ меня сразу постигла неудача — машина перестала заводиться! Потеряв часть нервов (дело было почти ночью, а утром необходимо ехать на работу) к счастью удалось частично ее оживить — удалось залить стоковую бензиновую прошивку (газовая часть пока молчит). Столкнувшись с такой проблемой хочу чем нибудь помочь интересующемся этим вопросом и чтоб никто не наступил на те же грабли что и я.

Прежде чем самостоятельно приступить к работе необходимо:

• подготовиться теоретически;
• подготовить матчасть (изготовить или приобрести К-лайн адаптер, проверенный компьютер и все остальное что понадобится для • замены ПО;
• найти и скачать необходимый софт для вашего компьютера;
• найти прошивки для ЭБУ.

На истину в последней инстанции не претендую, поэтому прошу сильно не ругать за стиль и возможные неточности, но:

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

2. Подготовку лучше проводить постепенно. Не пытайтесь все охватить сразу. Важно понимать принципы работы с электрикой и электроникой, хорошо владеть компьютером в плане установки программ и драйверов. В остальном поможет поисковик гугл, только нужно более конкретно формулировать запросы. Например: Эсуд ВАЗ; схема подключения контроллера;инструкция по прошивке ЭБУ; схема K-Line адаптера; прошивки; чип-тюнинг ваз и т.д. Нужно определить разновидности Эбу и их маркировку, какому двигателю какая нужна прошивка и их обозначения. Разберитесь с вопросом об иммобилайзере. Когда Вы поймете что все поняли и решили что стали большим спецом не стесняйтесь и съездите к мастеру в сервис и попробуйте обсудить виртуальную тему замены прошивки вашего авто и отключения (деактивации) иммо. «Пытать» мастера долго не советую так как отнимете у человека время и скорее всего у вас быстро возникнут новые вопросы, ответы на которые лучше найти самому или попросить помощи на авто форумах.

3. Если у Вас растут руки из правильного места, то адаптер собрать не очень сложно. Самый простой для железного СОМ-порта на базе МАХ232 и К1533ЛН1 и КТ3102 можете посмотреть на сайте Чип-тюнер.ру. Обойдется около сотни даже если всю комплектацию брать на радио-базаре. Для начала он пойдет. Правда здесь есть капкан — не все системники имеют стандартный СОМ порт, да и те на которых он есть — могут не работать. У меня именно такая материнка — СОМ порт работает, программы типа ПОБЕДИТ(для спутниковых ОПЕНОВ) работают, а вот программы-прошивальщики не идут. Шаманство с драйверами и настройками в БИОСЕ ни к чему не привели. Установка новых операционок — то же без изменений. На чужом компе все заработало. Для такого случая может помочь старый дата-кабель от сотового телефона на базе микросхемы PL 2303 и + одна мс L9637D. Cхема работает 100% (проверено на Январях 7.2), только нужно в реестре драйверов добавить одну строку с параметрами под нестандартные скорости ЭБУ. Получится USB-K-Line адаптер. Если поставить еще 2 транзистора и пару деталей то можно получить еще и L-линию. Чтобы не ехать на базар за одной мс я пожертвовал вежливой подсветкой салона и выпаял 9637 из иммобилайзера АПС-4.

В качестве разъема применил 2 колодочки от компьютерного IDE шлейфа без переделок. Шлейф порезал на 2 куска по 10-15 см.На Январях 7.2 они хорошо входят под верх так и низ гнезда ЭБУ (пустые 2 пина колодок остаются вверху или внизу ножек блока), только при повторных подключениях не спутайте их месторасположение иначе спалите блок. Так же применил 3 микротумблера — общий +12В, зажигание «+» и перевод в режим программирования «+». Перед любой операцией выключаю 2 и 3-й тумблер, а включаю в порядке 3 потом 2. Иногда приходится для получения связи снимать на короткое время общий «+». Питание можно брать с авто, при работе на столе «-» от адаптера на ток около 500 мА.

4. Для перепрошивки нужны такие программы: комбилодер 2.18 и чиплодер 1.6 (1.96 более расширен по блокам). Первая прога есть в комплекте Сtp321-full (лодер бесплатный и запустится в работу при подключенном адаптере). Но иногда он выпадает из работы или не может до конца закончить процесс заливки. Вторая работает без проблем.Первая нужна в основном для того, чтобы снимать защиты с найденых вами прошивок и для установки этой же защиты при заливке ПО в ЭБУ. Считать защищенное ПО из контроллера не получается — происходит его стирание. Поэтому советую подготовиться и иметь как минимум несколько (взятых из разных мест) заводских прошивок. В каталоге Сtp321-full после установки есть набор стандартных и тюнинговых прошивок, может что и подойдет. Еще нужны такие программы как чипэксплоер 1.6 и Стр 4.10 (с хвостом). Эти программы позволят вам просмотреть найденные прошивки, редактировать, сравнивать их между собой и собирать сдвоенные пр-ки. На 2-х ядерных компах (и с функцией гипер-трейдинг) на Стр проге отваливается хвост. Где-то попадалась инфа о патче этой проблемы, на одно ядерных все нормально. Обязательно и внимательно изучите хелпы к этим прогам и поработайте в них с прошивками, что бы усвоить особенности и возможности программ. Так вы скорее всего отсеете битые и вызывающие сомнения прошивки. Еще 2 проги — энигма для раскодирования ПО из стандарта СТР и ICD для проверки адаптера. Весь этот набор лучше взять с депозита (там редко бывают нерабочие). Так же у вас наберутся ссылки и на другие ресурсы при чтении форумов. Рекомендую сохранять на ваш компьютер все полезные страницы, схемы, фотографии и документы найденные при серфинге в интернете. Пригодится не один раз.

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

Пока писал опус нашел газовое ПО, слепил сдвоенную бензин «+» газ, залил и поехал. Сделал I203EL36/RB40, I203Ez36/RB40. Даже на этим ПО почувствовал отличие от родной EL35. Возникшие вопросы и неясности оставил до выяснения.

Источник статьи: http://www.carmod.ru/blog/nebolshoj_faq_ili_chto_nuzhno_dlya_proshivki_ebu

Читайте также:  Как убрать ржавчину с низа дверей автомобиля своими руками
Оцените статью