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

Что такое контрольная сумма (КС) прошивки? — ChipTuner Forum

Чип-тюнинг коммерческой техники Кама3, ГАЗ от SMS-Soft



Argutin Motors: VAG Bosch MEDC17   Прошивки Magneti Marelli VAG от Art-Pro   Прошивки Peugeot/Citroen от Art-Pro   Прошивки Renault от А.Юрлова

Что такое контрольная сумма (КС) прошивки?


Закрытая тема.
  1. Аватар для FAQ Bot

    offline

    Регистрация:
    01.04.2001
    Сообщений:
    303

    Что такое контрольная сумма (КС) прошивки?

    Системы управления двигателем осуществляют самодиагностику функционирования датчиков и самого блока управления и его функциональных частей — ОЗУ, ПЗУ, ЕЕPROM. В простейшем случае, для такой проверки целостности «прошивки» внутри ее хранится контрольная сумма, которая получается суммированием байт прошивки. В прошивке контрольная сумма (КС) хранится вместе с собственным «зеркалом», то есть байтами, при сложении с которыми КС равна нулю. Это нужно для того, что бы само значение КС не влияло на результат вычисления КС программой ЭБУ. Программа ЭБУ при включении зажигания рассчитывает значение контрольной суммы и сравнивает это значение со значением, которое хранится в прошивке. Если эти значения не совпадают, то выстаяляется «Ошибка ПЗУ» и зажигается лампа индикации ошибок «Check Engine».

    В более современном ПО применен двойной контроль КС ПЗУ, описанный выше и еще один алгоритм, не связанный с маской ошибок (в маске ошибок убрать ее нельзя), работающий параллельно с основным. Теоретически возможно одновременное применение любого количества проверок как всего содержимого ПЗУ, так и его частей.

    Совсем недавно, прежде чем производить тюнинг какой-либо «прошивки» необходимо было разобраться с алгоритмом подсчета и расположением контрольной суммы в прошивке. Сейчас, при использовании специализированной программы редактирования калибровочных данных прошивок ChipTuning Pro и программатора Combiloader, все изменения КС, её подсчет и корректировка происходит автоматически и незаметно для пользователя. Мало того, эти программы позволяют установить и фиксировать любое произвольное отображение КС прошивки.


Закрытая тема.

Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
Текущее время: 11:17. Часовой пояс GMT +4.

Продолжаем. Начало тут

Наша строка 27 01 d8 7f 12 a1 c9 8f 75 75
Последние два байта это контрольная сумма. И при смене значений её нужно пересчитывать.
В расчет берется всё от 27 … до 8F.
Немного изменим запись чтоб было нагляднее понятно.
27 01 d8 7f 12 a1 89 8f B5 35
B5 — Первая контрольная сумма.
35 — Вторая контрольная сумма.

И так начнём.
Подсчёт первой КС по пунктам
1. Переводим каждое значение из 16-ой системы в 10-ую.
Пример: 27 01 d8 7f 12 a1 89 8f — 39 1 216 127 18 161 137 143

2. Нужно сложить все 8 байт в десятиричной системе.
Пример: 39+1+216+127+18+161+137+143=842

3. Переводим в 16 систему.
Пример: 842-034a

4. От результата нужно оставить только два правых символа
Пример: 034a — 4A

5. Далее переводим в 10-ую систему.
Пример: 4A = 74

6. От 255 нужно отнять результат пункта 5.
Пример: 255-74=181.

7. Переводим обратно в 16-ую систему. Это и будет КС 1
Пример: 181 в шестнадцатиричной системе будет b5

Итог: 1 Контрольная сумма B5.

Подсчёт 2 Контрольной суммы:

1. Берём опять эту строку 27 01 d8 7f 12 a1 89 8f.
2. Переводим каждый байт в двоичную систему.
Пример: 27 01 d8 7f 12 a1 89 8f — 00100111 00000001 11011000 01111111 00010010 10100001 10001001
10001111

3. Будем считать биты с лево на право для упрощения понимания.
Нужно сложить все первые биты каждого байта. Потом все вторые, потом третьи и так все 8.
Пример:0+0+1+0+0+1+1+1=4, вторые биты- 0+0+1+1+0+0+0+0=2 и т.д. с каждым битом.
Получим такое — 4,2,3,3,4,3,4,6.

4. Переписываем эту строчку в таком формате. Если число четное то=0, нечетное=1 и получаем байт в двоичной системе.
Пример:4,2,3,3,4,3,4,6.= 00110100

5. Переводим итог пункта 4 в Десятичную систему.
Пример: 00110100 = 52 (в десятичной).

6. Нужно прибавить единицу к результату пункта 5.
Пример: 52+1=53.
7. Переводим в Шестнадцатиричную систему. И получаем КС 2.
Пример: 53 = 35.

Вот и получилась вторая контрольная сумма. 35.

Делитесь своими наработками и давайте делиться уже со всеми бесплатно.
Спасибо God1983 и его другу за неоценимую помощь. Всем Добра!

glukov1


  • #1

доброго здравия коллеги. пытаюсь понять, по какому алгоритму высчитывается контрольная сумма в прошивке блока EDC7UC31. перебрал все мне извесные, но результата пока нету. может кто подсказать, в каком направлении вести поиск?

XxxxxX


  • #2

доброго здравия коллеги. пытаюсь понять, по какому алгоритму высчитывается контрольная сумма в прошивке блока EDC7UC31. перебрал все мне извесные, но результата пока нету. может кто подсказать, в каком направлении вести поиск?

конечно подскажем! рубли, доллары, евро, фунты

Race-Tun


  • #3

Нашли области ?)))
Сколько их ?)))

dielt


  • #4

Еще один способ предложу: Дизассемблировать софт, изучить ассемблер и километр листинга, найти в нем алгоритм, написать формулу, и выложить ее в интернет БЕСПЛАТНО! :giggle:

glukov1


  • #5

Нашли области ?)))
Сколько их ?)))

мне не нужно считать какие то конкретные области. я просто хочу понять сам принцип счёта КС в прошивке. какой там применяется алгоритм, CRC? MD? SHA? или может быть какой то свой.

dielt


  • #6

мне не нужно считать какие то конкретные области. я просто хочу понять сам принцип счёта КС в прошивке. какой там применяется алгоритм, CRC? MD? SHA? или может быть какой то свой.

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

glukov1


  • #7

Еще один способ предложу: Дизассемблировать софт, изучить ассемблер и километр листинга, найти в нем алгоритм, написать формулу, и выложить ее в интернет БЕСПЛАТНО! :giggle:

:) а почему вы решили что мне нужно изучить ассемблер? может я его уже изучил?

glukov1


  • #8

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

вот это я и хотел узнать. благодарствую. осталось узнать алгоритм, каким пересчитываются несколько КС. так вот по крупицам и получаешь знания. благодаря знающим людям, книгам и опыту. спасибо.

dielt


  • #9

:) а почему вы решили что мне нужно изучить ассемблер? может я его уже изучил?

Ключевой смысл поста — найти и выложить бесплатно :) Это заработок отдельных личностей, и делиться просто так они не будут…

glukov1


  • #10

Ключевой смысл поста — найти и выложить бесплатно :) Это заработок отдельных личностей, и делиться просто так они не будут…

:ROFLMAO:можете процитировать где я просил найти и выложить «бесплатно»?

пытаюсь понять, по какому алгоритму высчитывается контрольная сумма в прошивке блока EDC7UC31. перебрал все мне извесные, но результата пока нету. может кто подсказать, в каком направлении вести поиск?

я вроде не просил не посчитать КС, не назвать адреса, где они записаны, не выложить прогу, делающую всё за меня.

glukov1


  • #11

конечно подскажем! рубли, доллары, евро, фунты

:ROFLMAO: это ваша КС? круто. а в цифрах можете назвать вашу КС? ))

Race-Tun


  • #12

Тааак… Началось…

Нашли области ?)))
Сколько их ?)))

Я задал 2 конкретных вопроса.
Если не понимаете их, тогда купите модуль по пересчету.

glukov1


  • #13

Тааак… Началось…

Я задал 2 конкретных вопроса.
Если не понимаете их, тогда купите модуль по пересчету.

:)тааак… началось
вы либо не поняли моего вопроса, либо не желаете ответить. что же, это ваше право. я не собираюсь заниматься правкой прошивок. мне не нужно искать отдельные области. меня интересует почему разные hex редакторы считают КС одного и того же файла по разному. вот я и хочу понять по какому алгоритму высчитывается КС в прошивке.

Race-Tun


  • #14

:)тааак… началось
вы либо не поняли моего вопроса, либо не желаете ответить. что же, это ваше право. я не собираюсь заниматься правкой прошивок. мне не нужно искать отдельные области. меня интересует почему разные hex редакторы считают КС одного и того же файла по разному. вот я и хочу понять по какому алгоритму высчитывается КС в прошивке.

Походу, кто-то «не торопится»… )))
Специально написал так, что Вы поняли, что в файле НЕСКОЛЬКО областей ,защищенных контрольной суммой.
И, Ваши редакторы, «не зная» об этом, рисуют Вам контрольку с учетом контрольки других областей.
У системной области и у области калибров, РАЗНЫЕ алго подсчета.

glukov1


  • #15

Походу, кто-то «не торопится»… )))
Специально написал так, что Вы поняли, что в файле НЕСКОЛЬКО областей ,защищенных контрольной суммой.
И, Ваши редакторы, «не зная» об этом, рисуют Вам контрольку с учетом контрольки других областей.
У системной области и у области калибров, РАЗНЫЕ алго подсчета.

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

Race-Tun


Рекомендуемые сообщения

Deniska_auto

Новичок

    • Поделиться

Доброго времени всем , помогите пожалуйста пересчитать контрольную сумму  прошивки  для  ПЗУ m27c1024  в корпусе dip40 , это ПЗУ с ЭБУ старого мерседеса , вычитал прошивку программатором  , с помощью программы редактора прошивок Win OLS  , изменил в файле то что требовалось ,  но эта  программа , для этого файла  не пересчитывает автоматически контрольку , если для кого — то это не  займёт особого труда , помогите пожалуйста пересчитать 

Архив ZIP — WinRAR.zip

  • Цитата

Ссылка на комментарий
Поделиться на другие сайты

otest

Знаток

    • Поделиться

Какая то белеберда.
После считывания сверил с оригиналом ?
Какое расширение hex,bin, ?

  • Цитата

Ссылка на комментарий
Поделиться на другие сайты

Deniska_auto

Новичок

  • Автор
    • Поделиться

Только что, otest сказал:

Какая то белеберда.
После считывания сверил с оригиналом ?
Какое расширение hex,bin, ?

с каким оригиналом ? , я оригинал и считал , потом изменил его с помощью винолс , винолс во время того как что — то меняешь автоматически правит кс , но только для тех файлов к тоторым у него есть dll , для это в нём нет dll , поэтому кс непересчитана , файл расширением bin

  • Цитата

Ссылка на комментарий
Поделиться на другие сайты

ИБП MEAN WELL серии DRC-180 на DIN-рейку – новое решение для пожарно-охранных систем

Компания MEAN WELL расширила семейство DRC-40/60/100 – недорогих ИБП (UPS) 2-в-1 (ИП и контроллер заряда/разряда АКБ в одном корпусе) с креплением на DIN-рейку. Теперь доступны модели мощностью 180 Вт новой серии DRC-180.

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

o_l_e_g

Ветеран

    • Поделиться

Какая контрольная сумма, вернее алгоритм ее вычисления?

  • Цитата

Errare humanum est. Коли людЯм позволено, что же о нас то говорить!
 

Ссылка на комментарий
Поделиться на другие сайты

otest

Знаток

    • Поделиться

где в bin хранится КС ?

  • Цитата

Ссылка на комментарий
Поделиться на другие сайты

hasl

Специалист

    • Поделиться

в bin нет КС.

в НЕХ есть, но ее расчет делается для каждой строки и при создании файла.

Если КС содержится в самой прошивке, то вы знаете алгоритм ее расчета и что за КС  или к примеру по какому полиному идет расчет?

Ищите в профильных форумах

  • Цитата

Ссылка на комментарий
Поделиться на другие сайты

koms45

Знаток

    • Поделиться

Дениска, твой запрос напоминает анекдот про двух Шариков, которые бегут по пустыне. 

«Обоссусь прямо здесь, если куста не будет».

Очко для ультры на камушке есть, или нет? И как ты это всё делал? Какими программаторами? 

1 час назад, Deniska_auto сказал:

потом изменил его с помощью винолс , винолс во время того как что — то меняешь автоматически правит кс , но только для тех файлов к тоторым у него есть dll , для это в нём нет dll

Теперя объясни лЮдям. Кто такой вин олс, и нахера он нужен? И причем тут всякие dll?

  • Цитата

Ссылка на комментарий
Поделиться на другие сайты

o_l_e_g

Ветеран

    • Поделиться

12 минуты назад, hasl сказал:

в bin нет КС

Да ну. Запросто. Отводится оговоренное место, и записывается. 

В прошке ЭБУ, это как правило четыре последних байта.

9 часов назад, Deniska_auto сказал:

не  займёт особого труда

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

А так, да всё просто, достаточно знать место и алгоритм подсчета КС.

  • Цитата

Errare humanum est. Коли людЯм позволено, что же о нас то говорить!
 

Ссылка на комментарий
Поделиться на другие сайты

koms45

Знаток

    • Поделиться

Олег, подтверди фактом.  (Только не на си поганом). Однако от первовопроса отъехали, нехорошо как-то.


Изменено 13 октября, 2017 пользователем koms45

  • Цитата

Ссылка на комментарий
Поделиться на другие сайты

hasl

Специалист

    • Поделиться

только ASM — только «хардкор»

ах хах

  • Цитата

Ссылка на комментарий
Поделиться на другие сайты

o_l_e_g

Ветеран

    • Поделиться

3 минуты назад, koms45 сказал:

подтверди фактом

Что конкретно? Наличие КС в прошке?

  • Цитата

Errare humanum est. Коли людЯм позволено, что же о нас то говорить!
 

Ссылка на комментарий
Поделиться на другие сайты

koms45

Знаток

BARS_

Мастер

    • Поделиться

53 минуты назад, o_l_e_g сказал:

В прошке ЭБУ, это как правило четыре последних байта.

Остается только найти эти самые 4 байта

Q6cj4yZKSS683ErKc7q5zg.png

и так до самого конца, дальше нули:crazy:

10 часов назад, Deniska_auto сказал:

если для кого — то это не  займёт особого труда , помогите пожалуйста пересчитать 

Давай алгоритм вычисления, или хотя бы название суммы, и местоположение в файле прошивки. Тогда посчитаем.


Изменено 13 октября, 2017 пользователем BARS_

  • Цитата

Ссылка на комментарий
Поделиться на другие сайты

o_l_e_g

Ветеран

    • Поделиться

@BARS_ , ну а я о чем?

57 минут назад, o_l_e_g сказал:

как правило

и

57 минут назад, o_l_e_g сказал:

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

  • Цитата

Errare humanum est. Коли людЯм позволено, что же о нас то говорить!
 

Ссылка на комментарий
Поделиться на другие сайты

  • 5 лет спустя…

БАРЕТТЕР

Завсегдатай

    • Поделиться

Тут многие пишут о КС которую надо запомнить на будущее , вот скрин прочитанного нового PIC12F576  и где эта КС 

2023-05-09_112025.jpg

  • Цитата

Я не раздаю ни удочек ни рыбу ,я продаю наживку у кого есть удочки. 

Ссылка на комментарий
Поделиться на другие сайты

Присоединяйтесь к обсуждению

Вы можете написать сейчас и зарегистрироваться позже.

Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.

Примечание: Ваш пост будет проверен модератором, прежде чем станет видимым.

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

Получение контрольной контрольной суммы со страницы загрузки в настоящее время немного неудобно, так как контрольные контрольные суммы двоичных файлов прошивки в настоящее время не указаны на страницах технических данных устройства LEDE.

Чтобы получить контрольную контрольную сумму, вспомните URL-адрес бинарного файла прошивки, который вы только что загрузили, например, если ваш URL-адрес загрузки прошивки был
https://downloads.lede-project.org/releases/version/targets/chipset/modell/lede-something-something-something-something-something.bin

Затем откройте веб-страницу https://downloads.lede-project.org/releases/version/targets/chipset/modell/

Там вы найдете список прошивок, один из которых — это файл, который вы только что загрузили. Теперь обратите внимание на дополнительную строку контрольной суммы в правой части ссылки для загрузки (в столбце таблицы “sha256sum”).

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

Чтобы использовать встроенный “certutil:

  1. Нажмите на значок Windows, введите “cmd” и нажмите “Enter”

  2. Выполнить (при условии, что вы загрузили файл в папку “Загрузки”):

    certutil -hashfile "%USERPROFILE%/Downloads/LEDE-file-name-here" sha256
  3. Это напечатает такую ​​контрольную сумму (имя файла, за которым следует строка с буквами и цифрами),

    SHA256-Hash of file C:UsersUSERNAMEDownloadslede-17.01.1-...-factory.bin:
    79 f9 4e fa d3 2c 14 8f f1 95 3f 09 6d 98 c7 41 c0 ff 8f 7e b4 68 8c 9d 5b f9 fb 01 c0 90 fb ab
  4. Удалите пробелы с этой контрольной суммы (например, используя функцию замены в блокноте):

    79f94efad32c148ff1953f096d98c741c0ff8f7eb4688c9d5bf9fb01c090fbab
  5. Убедитесь, что строка контрольной суммы без пробелов соответствует той, которую вы можете найти в поле sha256sums на странице загрузки.

У Mac есть интегрированный инструмент для проверки sha256sums, но он не имеет графического интерфейса пользователя, поэтому нам придется использовать терминал для взаимодействия с ним.

  1. Нажмите значок Finder в Dock.

  2. Нажмите “Приложения” в списке “Избранное”.

  3. Найдите папку “Утилиты” и нажмите, чтобы открыть ее.

  4. Найдите терминал и дважды щелкните значок, чтобы открыть программу.

  5. Откройте окно терминала и выполните (при условии, что вы загрузили файл на рабочий стол):

    shasum -a 256 ./Desktop/file-name-here
  6. он напечатает что-то вроде этого (строка с буквами и цифрами, за которой следует имя файла),

    1a7c8bba93584fc44045629888e6b147851917cd0c83fcc91a7e6dbe90bdce76 
    lede-17.01.0-...-sysupgrade.bin
  7. Убедитесь, что строка контрольной суммы соответствует той, которую вы можете найти в поле sha256sums на странице загрузки.

У Linux есть интегрированный инструмент, доступный из командной строки, аналогичный Mac.

Проверка командной строки:

  1. В окне терминала выполните

    sha256sum ./Desktop/file-name-here
  2. Это напечатает что-то вроде этого:

    1a7c8bba93584fc44045629888e6b147851917cd0c83fcc91a7e6dbe90bdce76
    lede-17.01.0-...-sysupgrade.bin
  3. Убедитесь, что строка контрольной суммы совпадает с той, которую вы можете найти в поле sha256sums на странице загрузки.

Понравилась статья? Поделить с друзьями:

Не пропустите также:

  • Как найти икс процентов в пропорции
  • Как составить схему общества
  • Как составить пользовательскую историю
  • Как найти работу бетонщика
  • Гниет днище автомобиля как исправить

  • 0 0 голоса
    Рейтинг статьи
    Подписаться
    Уведомить о
    guest

    0 комментариев
    Старые
    Новые Популярные
    Межтекстовые Отзывы
    Посмотреть все комментарии