Как исправить контрольную сумму прошивки
Пробуем. Машина заводится, хорошо работает, но не гаснет лампа « 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, благодарные хози фордов Вам спасибо скажут? Ага, щас.
Вам нужно определиться на чьей Вы стороне. На стороне автовладельцев, которым всё «дорого», хоть копейку скажи — инфаркт сразу. или на стороне работяг, кто пашет руки в мазуте по локоть.
Пусть моё мнение будет неправильным, мне фиолетово. ЛЮБОГО автовладельца, которому «дорого», считаю КРАЙНЕ НЕПОРЯДОЧНЫМ человеком. Особенно на авто от ляма и выше. нищеброды нашлись.
Вот и решайте с порядочными Вы, или с. есть Закон — каждый труд должен оплачиваться. Большая часть хозяев авто — совесть давно потеряли.