Как исправить контрольную сумму прошивки
Перейти к содержимому

Как исправить контрольную сумму прошивки

  • автор:

Как исправить контрольную сумму прошивки

Пробуем. Машина заводится, хорошо работает, но не гаснет лампа « Check Engine ». Это проявилась ошибка контрольной суммы ПЗУ. С этим можно бороться. Для этого снова открываем исходную прошивку. При открытии исходной прошивки одновременно открывается и файл с редактированной прошивкой. При открытии исходного файла программа просчитывает его контрольную сумму (контрольная сумма – ото сумма значений всех байт в файле) и пишет ее в строке заголовка программы (Рис.12). Что бы изменить контрольную сумму необходимо найти участок в прошивке не занятый ни под программу, ни под калибровки. Практически всегда этот участок содержит значение FF , что соответствует максимальному значению на графике. Другим отличительным признаком свободного участка может являться то, что следующий за ним фрагмент начинается с «круглого» адреса типа XXXX 0, где X — любой шестнадцатеричный символ (Рис. 17).

Рис. 17 Посредине расположен свободный участок прошивки.

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

Рис. 18 Изменение свободного участка прошивки с целью корректировки контрольной суммы.

Все предыдущие изменения прошивки были направлены на увеличение контрольной суммы, поэтому в свободном участке значения надо уменьшать (Рис.18). Выделим фрагмент на свободном участке прошивки и опустим значения. Для того, что бы узнать контрольную сумму редактируемой прошивки надо воспользоваться опцией меню Options=>Indicate CheckSum . В правом верхнем углу редактора появится значение контрольной суммы редактируемой прошивки. При этом следует учитывать, что пересчет контрольной суммы происходит после каждого изменения, а это занимает существенное время. Поэтому грубую подгонку контрольной суммы следует делать при выключенной опции.

После подгонки контрольной суммы проверяем прошивку на машине. Ошибки нет и машина едет ощутимо лучше.

www.chipsoft.com.ua

Все зависит от того, контрольная сумма какой прошивки. Если имеется ввиду прошивка Daewoo Lanos 1,5 , то контрольная сумма хранится в третьем и четвертом байтах прошивки. Насчет TunerPro не знаю, но поправить контрольную сумму прошивки вышеуказанного Ланоса можно программой NexiaFix. Скачать ее можно отсюда: http://www.chipsoft.ru/download/nexiafix.zip

Yurez Сообщения: 9 Зарегистрирован: Пн авг 13, 2007 4:25 pm Откуда: Kiev

Сообщение Yurez » Пн авг 27, 2007 3:01 pm

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

chipsoft CHIPSOFT.RU Сообщения: 8313 Зарегистрирован: Вс дек 18, 2005 1:23 pm Откуда: Украина, Киев

Сообщение chipsoft » Пн авг 27, 2007 3:09 pm

Yurez писал(а): Но вопрос номер 2 та ли это сумма которую можно прощитать в оболочке программатора (или прощитывается сумма какого то отдельного блока).

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

Yurez Сообщения: 9 Зарегистрирован: Пн авг 13, 2007 4:25 pm Откуда: Kiev

Сообщение Yurez » Пн авг 27, 2007 3:17 pm

Но контрольную сумму менять обязательно.
chipsoft CHIPSOFT.RU Сообщения: 8313 Зарегистрирован: Вс дек 18, 2005 1:23 pm Откуда: Украина, Киев

Сообщение chipsoft » Пн авг 27, 2007 3:24 pm

Yurez писал(а): Но контрольную сумму менять обязательно.

Естественно. Я только на Микас-7.6 встречался, что нет контрольной суммы. А так, даже в древних ЭБУ Bosch есть контрольная сумма.

Yurez Сообщения: 9 Зарегистрирован: Пн авг 13, 2007 4:25 pm Откуда: Kiev

Сообщение Yurez » Пн авг 27, 2007 3:37 pm

drx Сообщения: 149 Зарегистрирован: Вс фев 05, 2006 3:41 pm Откуда: Луганск

Сообщение drx » Пн авг 27, 2007 4:37 pm

Многие программы не меняют КС, чтобы не искать байты, где она прописана и откуда докуда считать, а меняют заглушки (00, FF) в нужную сторону для сохранения существующей. Так проще (естественно, при не очень замороченном алгоритме). Т.е. увеличил значение на х, уменьш заглушку на х.

Kolo Сообщения: 136 Зарегистрирован: Пт сен 28, 2007 10:54 am Откуда: Москва

Сообщение Kolo » Пт сен 28, 2007 6:00 pm

В деу можно прописать 0xAA в пятый байт( сразу после CRC) , тогда ошибка CRC будет игнорироваться.
Konstantin_D Сообщения: 166 Зарегистрирован: Вт янв 10, 2006 7:20 pm

Сообщение Konstantin_D » Сб сен 29, 2007 10:03 pm

Не во всех прошивках 0хАА встречаються очеь часто и другие значения чтоб обрубить КС.
но ее проще пересчитать там алгоритм простой.

Aikonss Сообщения: 303 Зарегистрирован: Вс сен 19, 2010 9:16 pm Откуда: Винница reg Контактная информация:

Re: Подскажите по контрольной сумме

Сообщение Aikonss » Ср окт 27, 2010 1:11 am

chipsoft писал(а):

Yurez писал(а): Подскажите после редактирования прошивки, в TunerPro, нужно ли перещитывать контрольную сумму, и где она хранится в самой ПЗУ с картами или в основной прграмме

Все зависит от того, контрольная сумма какой прошивки. Если имеется ввиду прошивка Daewoo Lanos 1,5 , то контрольная сумма хранится в третьем и четвертом байтах прошивки. Насчет TunerPro не знаю, но поправить контрольную сумму прошивки вышеуказанного Ланоса можно программой NexiaFix. Скачать ее можно отсюда: http://www.chipsoft.ru/download/nexiafix.zip

Не работает NexiaFix в ХР почемуто.
Может файл повреждён?
Перезалейте пожалуйста .
chipsoft CHIPSOFT.RU Сообщения: 8313 Зарегистрирован: Вс дек 18, 2005 1:23 pm Откуда: Украина, Киев

Re: Подскажите по контрольной сумме

Сообщение chipsoft » Ср окт 27, 2010 8:27 am

Aikonss писал(а): Не работает NexiaFix в ХР почемуто.
Может файл повреждён?
Перезалейте пожалуйста .

NexiaFix — консольное приложение, запускаемое из командной строки. Естественно никаких окон и прочих украшательств там нет.

CHIPSOFT J2534 Pro: 5 CAN BUS, 1 SWCAN, 8 KLine, 5 — 20V Voltage generator
Онлайн магазин CHIPSOFT: shop.chipsoft.com.ua

12 сообщений • Страница 1 из 1

  • Форумы
  • ↳ Чип-тюнинг
  • ↳ Тюнинговые прошивки
  • ↳ ГБО
  • ↳ Оборудование для чип-тюнинга и диагностики
  • ↳ Автомобильная электроника
  • ↳ Техническая документация
  • ↳ Автомобили группы VAG
  • ↳ Магазин
  • Наши программы
  • ↳ Загрузчик ChipLoader
  • ↳ CHIPSOFT J2534 адаптер
  • ↳ Редактор калибровок ChipExplorer
  • ↳ Загрузчик ECUFlashLoader
  • ↳ Прочие продукты и общие вопросы
  • ↳ Модули калибровок для ChipExplorer сторонних производителей
  • Диагностика
  • ↳ Диагностика авто
  • ↳ Эталонные осциллограммы
  • ↳ Вопросы по диагностике Вашей машины
  • Download раздел
  • ↳ Серийные прошивки ЭБУ Daewoo
  • ↳ Серийные прошивки ЭБУ M798
  • Не автомобильные темы
  • ↳ Купля — Продажа
  • ↳ Курилка
  • ↳ Предложения и замечания о работе форума
  • ↳ Фотогаллерея

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и 11 гостей

  • Список форумов
  • Часовой пояс: UTC+03:00
  • Удалить cookies

Создано на основе phpBB® Forum Software © phpBB Limited | SE Square Left by PhpBB3 BBCodes
Русская поддержка phpBB

Как исправить контрольную сумму прошивки

Подавляющее большинство специалистов-новичков не задаются вопросом — что такое контрольная сумма и зачем она нужна. Но только до поры до времени, пока не столкнутся с каким-нибудь важным вопросом, связанным с контрольной суммой. В сегодняшней статье мы постараемся как можно более простыми словами, с приведением примеров, объяснить смысл данной сущности.

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

Если звучит муторно и сумбурно, то давайте рассмотрим пример функции расчёта КС. Возможно так смысл применения КС станет понятнее.

Для простоты примера возьмем не Flash-память, а память EEPROM от Bosch ME7.5 (VW Golf4), которая содержит 512 байт информации (см. скриншот).

Область EEPROM рассматриваемого автомобиля содержит пин приборной панели, синхронизацию иммобилайзера и прочие данные. Вся область данных занимает 512 байт, которые можно условно разделить на 32 строки по 16 байт. Большинство строк содержат в себе 14 байт «полезной» информации, а 2 последних байта рассматриваемых строк — это КС. Некоторые строки (например, первая) не содержат в себе КС.

Для тех строк, где КС присутствует, в данном конкретном случае, она вычисляется следующим образом:

CS = LittleEndian((0xFFFF – (page_number – 0x01)) – (value(page_number * 0x10 + 0x00) + value(page_number * 0x10 + 0x01) + value(page_number * 0x10 + 0x02) + … + value(page_number * 0x10 + 0x0D))), где

page_number – номер строки от 0x00 до 0x1F;

value(address) – значение по адресу, указанному внутри скобок;

LittleEndian — порядок записи байтов от младшего к старшему (к примеру, если КС равна 0xFB7B, то в порядке Little Endian она записывается как 0x7BFB);

Все значения начинаются префикса 0x, что значит, что они записаны в шестнадцатеричной системе счисления.

Интереса ради, можно открыть стандартный калькулятор Windows в режиме «программист» и пересчитать КС какой-нибудь строки. Скажем, третьей строки (она же 0x02):

CS = LittleEndian((0xFFFF – (0x02 – 0x01)) – (value(0x20) + value(0x21) + value(0x22) + … + value(0x2D))) = LittleEndian((0xFFFF – (0x02 – 0x01)) – (0x05 + 0x01 + 0x02 + 0x00 + 0x02 + 0x2B + 0x01 + 0x00 + 0x03 + 0x00 + 0x69 + 0xC1 + 0x00 + 0xA5)) = LittleEndian((0xFFFE) – (0x0208)) = LittleEndian(0xFDF6) = 0xF6FD

Сходится? Еще бы! (если не верите, то посмотрите на изображение выше и не поленитесь пересчитать самостоятельно)

А что если КС не сошлась бы? В таком случае, машина бы просто не завелась. Ведь на этапе самодиагностики (в процессе включения), ЭБУ бы пересчитал КС каждой строки, увидел бы несхождения (хотя бы одной строке), и принял это за нарушение целостности данных, что бывает при неисправностях элементов памяти ЭБУ.

К слову, каждый ЭБУ использует собственные способы расчета КС. Более того, для разных областей данных могут использоваться разные способы расчета.

Ладно. Оставим теорию и вернемся к практике. На практике нам требуется записывать тюнинговые прошивки (калибровки) в ЭБУ двигателя. И, очевидно, что эти прошивки должны быть с пересчитанной КС. Иначе, если мы запишем прошивку с непересчитанной КС, то при запуске ЭБУ увидит несхождение КС и, как минимум, зафиксирует ошибку. Как максимум, запуск двигателя не состоится.

Впрочем, не стоит сильно переживать по этому поводу. Редакторы калибровок, в которых мы работаем, в большинстве случаев, пересчитывают КС в сохраняемой прошивке. Более того, сами флэшеры перед записью прошивки всегда проверяют и пересчитывают КС (если она некорректна), исключая ну совсем уж уникальные случаи. Единственное место, где следует работать крайне внимательно — инженерные способы записи (BSL, BDM, JTAG). В зависимости от используемого оборудования, автоматического пересчета КС при записи может и не быть.

Подсчет контрольной суммы прошивки

Добрый день.
Имеется прошивка 9C11-12K532-ABH.vbf. Пытаюсь делать в ней изменения. в итоге в блок управления грузится, но сам блок работать отказывается. Вот я и подумал, что кроме тех трех контрольных сумм, которые содержит VBF формат, может присутствовать еще что-то в теле самой прошивки. Есть подозрения на байты 000C0016-17.
Если кто в теме, может подскажите алгоритм подсчета и т.д.?

-Игорь-

Улучшайзинг авто и пр.

Регистрация: 11.06.2009 Сообщений: 6,231 Адрес: Краснодар
#2 ервик, 03.03.2019 16:00

Это от какого блока прошивка? VBF насколько мне известно, никто КС не считает, только в «.bin». Т.е. — форматом VBF, пользуются исключительно для заливки в этом формате, в различные ЭБУ авто, стокового, либо готового файла. При внесении изменений в дамп, естественно кс меняется, и смотря ещё от чего этот дамп, он может содержать в себе и цп.

Для правки например дампов моторного, пересчитать можно и подделать при надобности, в формате «.bin», большинство пользуется так.

Если речь о моторном ЭБУ, и у Вас нет оборудования для работы с «.bin», то хороший совет, заняться чем-либо более полезным в этом мире.

ервик

-Игорь- Местный житель
авторемонт

Регистрация: 22.01.2019 Сообщений: 28 Адрес: Москва
#3 -Игорь-, 03.03.2019 16:32

DCU-204, AC11-12A650-CC.
Нашел способ как заставить IDS заливать в блок правленный VBF файл.
Но там в прошивке в двух местах есть контрольная сумма. Я ее пока не умею считать.
Поэтому если что-то в прошивке изменено, то блок не запускается.
Сама прошивка заливается с адреса 20000 и размер B0000.
Ничего лишнего нету как в BIN файле.

-Игорь-

Улучшайзинг авто и пр.

Регистрация: 11.06.2009 Сообщений: 6,231 Адрес: Краснодар
#4 ервик, 03.03.2019 16:43

Какова цель всего? Посмею предположить. Извиняюсь если ошибаюсь. Некий нищеброд-халявщик, желает не вкладывая ни копейки в оборудование, получать результаты, как у людей вложивших сотни тысяч? Удачи.

Всё просто — нужен результат? Обращаемся с специалистам. Нет денег? Покупаем велик.

ервик

-Игорь- Местный житель
авторемонт

Регистрация: 22.01.2019 Сообщений: 28 Адрес: Москва
#5 -Игорь-, 03.03.2019 16:53

Вашу позицию я понял. Надо вложить сотни тысяч, а потом рубить бабло.
Я сюда не за этим пришел. И рубить бабло не собираюсь. Просто мне интересно изучить механизмы работы загрузчика и самой прошивки. Готов поделиться опытом. Если Вам нечего ответить по существу, может кто-то другой знает как это делается.

-Игорь-

Регистрация: 23.01.2006 Сообщений: 8,699 Адрес: Саратов
#6 Spy, 03.03.2019 17:09
Сообщение от -Игорь-: ^
Готов поделиться опытом.
Нажмите, чтобы раскрыть.
Поделитесь опытом, потом просите помощи.

Spy

Улучшайзинг авто и пр.

Регистрация: 11.06.2009 Сообщений: 6,231 Адрес: Краснодар
#7 ервик, 03.03.2019 17:12
Сообщение от -Игорь-: ^
Вашу позицию я понял. Надо вложить сотни тысяч, а потом рубить бабло.
Нажмите, чтобы раскрыть.

Вашу тоже не трудно понять. Насчёт «рубить бабло». Создайте собственный проект, загрузчик в формате VBF, и редактор к нему, и подарите таким же как вы искателям халявы.

ервик

-Игорь- Местный житель
авторемонт

Регистрация: 22.01.2019 Сообщений: 28 Адрес: Москва
#8 -Игорь-, 03.03.2019 17:26

Я уже сделал редактор. Контрольные суммы блоков данных считает. Контрольную сумму по файлу считает. Прошивка грузится обычной программой IDS.
После корректировки прошивки редактор генерирует значения неиспользуемых 5 байтов последнего блока данных пока контрольная сумма файла не совпадет с оригинальной, которая указана в заголовке и которую менять нельзя.
В итоге удается под видом оригинальной прошивки впихнуть даже другую версию. Но там внутри самой прошивки есть своя КС. Если я подкину в прошивку блок данных он другой заводской прошивки, то все будет работать. А если сам руками что-то подправлю, то прошивку грузит, но блок управления не запускается. Где расположена КС нашел. Теперь надо понять как считать. Нужен алгоритм.
https://www.drive2.ru/l/524923894604235275/
К сожалению до всего приходится доходить самому.

-Игорь-

Улучшайзинг авто и пр.

Регистрация: 11.06.2009 Сообщений: 6,231 Адрес: Краснодар
#9 ервик, 03.03.2019 20:48

Время на разработку редактора и загрузчика, я не тратил. Потому что мозгов не хватает, а если бы хватало — это был бы коммерческий проект. Просто купил готовое. Этот загрузчик, шьющий блоки в формате «.bin», позволяет менять софт, как моей душе угодно, и считает КС «на лету», а так же умеет подделывать и цп, в случае если она в дампе имеется. Чистый «.bin» — это дамп, в котором байты расположены именно в таком порядке, в котором они расположены в ячейках памяти в ЭБУ, в открытом коде. Халява форда в случае с перезаписью блоков, заключается в том, что самому загрузчику вообще фиолетово, куда он его пихает в авто, но только в случае с vbf. Поэтому кажется так просто. Была бы колодка обд в коляске. а вот в случае, когда блок откажется выходить на связь, после экспериментов — вот тут «сопли» и потекут.

Вы вот что поймите. Если вы занимаетесь разработкой ПО — то либо доучивайтесь, чтоб не задавать таких вопросов, либо бросайте, это дело. Если авторемонтом, не рубите сук, на котором сами и сидите. Думаете получив возможность «крутить прошивки», и лить их халявным ПО в формате vbf, благодарные хози фордов Вам спасибо скажут? Ага, щас.

Вам нужно определиться на чьей Вы стороне. На стороне автовладельцев, которым всё «дорого», хоть копейку скажи — инфаркт сразу. или на стороне работяг, кто пашет руки в мазуте по локоть.

Пусть моё мнение будет неправильным, мне фиолетово. ЛЮБОГО автовладельца, которому «дорого», считаю КРАЙНЕ НЕПОРЯДОЧНЫМ человеком. Особенно на авто от ляма и выше. нищеброды нашлись.

Вот и решайте с порядочными Вы, или с. есть Закон — каждый труд должен оплачиваться. Большая часть хозяев авто — совесть давно потеряли.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *