Что такое контрольная сумма (КС) прошивки? — ChipTuner Forum
Чип-тюнинг коммерческой техники Кама3, ГАЗ от SMS-Soft
Argutin Motors: VAG Bosch MEDC17 | Прошивки Magneti Marelli VAG от Art-Pro | Прошивки Peugeot/Citroen от Art-Pro | Прошивки Renault от А.Юрлова |
Что такое контрольная сумма (КС) прошивки?
-
Закрытая тема.
-
offline
- Регистрация:
- 01.04.2001
- Сообщений:
- 303
Что такое контрольная сумма (КС) прошивки?
Системы управления двигателем осуществляют самодиагностику функционирования датчиков и самого блока управления и его функциональных частей — ОЗУ, ПЗУ, ЕЕPROM. В простейшем случае, для такой проверки целостности «прошивки» внутри ее хранится контрольная сумма, которая получается суммированием байт прошивки. В прошивке контрольная сумма (КС) хранится вместе с собственным «зеркалом», то есть байтами, при сложении с которыми КС равна нулю. Это нужно для того, что бы само значение КС не влияло на результат вычисления КС программой ЭБУ. Программа ЭБУ при включении зажигания рассчитывает значение контрольной суммы и сравнивает это значение со значением, которое хранится в прошивке. Если эти значения не совпадают, то выстаяляется «Ошибка ПЗУ» и зажигается лампа индикации ошибок «Check Engine».
В более современном ПО применен двойной контроль КС ПЗУ, описанный выше и еще один алгоритм, не связанный с маской ошибок (в маске ошибок убрать ее нельзя), работающий параллельно с основным. Теоретически возможно одновременное применение любого количества проверок как всего содержимого ПЗУ, так и его частей.
Совсем недавно, прежде чем производить тюнинг какой-либо «прошивки» необходимо было разобраться с алгоритмом подсчета и расположением контрольной суммы в прошивке. Сейчас, при использовании специализированной программы редактирования калибровочных данных прошивок ChipTuning Pro и программатора Combiloader, все изменения КС, её подсчет и корректировка происходит автоматически и незаметно для пользователя. Мало того, эти программы позволяют установить и фиксировать любое произвольное отображение КС прошивки.
-
Закрытая тема.
Продолжаем. Начало тут
Наша строка 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 и его другу за неоценимую помощь. Всем Добра!
-
#1
доброго здравия коллеги. пытаюсь понять, по какому алгоритму высчитывается контрольная сумма в прошивке блока EDC7UC31. перебрал все мне извесные, но результата пока нету. может кто подсказать, в каком направлении вести поиск?
-
#2
доброго здравия коллеги. пытаюсь понять, по какому алгоритму высчитывается контрольная сумма в прошивке блока EDC7UC31. перебрал все мне извесные, но результата пока нету. может кто подсказать, в каком направлении вести поиск?
конечно подскажем! рубли, доллары, евро, фунты
-
#3
Нашли области ?)))
Сколько их ?)))
-
#4
Еще один способ предложу: Дизассемблировать софт, изучить ассемблер и километр листинга, найти в нем алгоритм, написать формулу, и выложить ее в интернет БЕСПЛАТНО!
-
#5
Нашли области ?)))
Сколько их ?)))
мне не нужно считать какие то конкретные области. я просто хочу понять сам принцип счёта КС в прошивке. какой там применяется алгоритм, CRC? MD? SHA? или может быть какой то свой.
-
#6
мне не нужно считать какие то конкретные области. я просто хочу понять сам принцип счёта КС в прошивке. какой там применяется алгоритм, CRC? MD? SHA? или может быть какой то свой.
Вам же намекнули, что КС считается не со всего файла скопом, а по отдельным областям. И КС в прошивке зачастую не одна, а несколько.
-
#7
Еще один способ предложу: Дизассемблировать софт, изучить ассемблер и километр листинга, найти в нем алгоритм, написать формулу, и выложить ее в интернет БЕСПЛАТНО!
![]()
а почему вы решили что мне нужно изучить ассемблер? может я его уже изучил?
-
#8
Вам же намекнули, что КС считается не со всего файла скопом, а по отдельным областям. И КС в прошивке зачастую не одна, а несколько.
вот это я и хотел узнать. благодарствую. осталось узнать алгоритм, каким пересчитываются несколько КС. так вот по крупицам и получаешь знания. благодаря знающим людям, книгам и опыту. спасибо.
-
#9
а почему вы решили что мне нужно изучить ассемблер? может я его уже изучил?
Ключевой смысл поста — найти и выложить бесплатно Это заработок отдельных личностей, и делиться просто так они не будут…
-
#10
Ключевой смысл поста — найти и выложить бесплатно
Это заработок отдельных личностей, и делиться просто так они не будут…
можете процитировать где я просил найти и выложить «бесплатно»?
пытаюсь понять, по какому алгоритму высчитывается контрольная сумма в прошивке блока EDC7UC31. перебрал все мне извесные, но результата пока нету. может кто подсказать, в каком направлении вести поиск?
я вроде не просил не посчитать КС, не назвать адреса, где они записаны, не выложить прогу, делающую всё за меня.
-
#11
конечно подскажем! рубли, доллары, евро, фунты
это ваша КС? круто. а в цифрах можете назвать вашу КС? ))
-
#12
Тааак… Началось…
Нашли области ?)))
Сколько их ?)))
Я задал 2 конкретных вопроса.
Если не понимаете их, тогда купите модуль по пересчету.
-
#13
Тааак… Началось…
Я задал 2 конкретных вопроса.
Если не понимаете их, тогда купите модуль по пересчету.
тааак… началось
вы либо не поняли моего вопроса, либо не желаете ответить. что же, это ваше право. я не собираюсь заниматься правкой прошивок. мне не нужно искать отдельные области. меня интересует почему разные hex редакторы считают КС одного и того же файла по разному. вот я и хочу понять по какому алгоритму высчитывается КС в прошивке.
-
#14
тааак… началось
вы либо не поняли моего вопроса, либо не желаете ответить. что же, это ваше право. я не собираюсь заниматься правкой прошивок. мне не нужно искать отдельные области. меня интересует почему разные hex редакторы считают КС одного и того же файла по разному. вот я и хочу понять по какому алгоритму высчитывается КС в прошивке.
Походу, кто-то «не торопится»… )))
Специально написал так, что Вы поняли, что в файле НЕСКОЛЬКО областей ,защищенных контрольной суммой.
И, Ваши редакторы, «не зная» об этом, рисуют Вам контрольку с учетом контрольки других областей.
У системной области и у области калибров, РАЗНЫЕ алго подсчета.
-
#15
Походу, кто-то «не торопится»… )))
Специально написал так, что Вы поняли, что в файле НЕСКОЛЬКО областей ,защищенных контрольной суммой.
И, Ваши редакторы, «не зная» об этом, рисуют Вам контрольку с учетом контрольки других областей.
У системной области и у области калибров, РАЗНЫЕ алго подсчета.
)) а ларчик то просто открывался. ) зачем было грубить. вы занимаетесь калибровкой а я ремонтом электроники. я могу поменять проц в эбу, прошить его, что бы машина поехала. но я должен быть уверен, что я косяка не сделаю, поэтому пытаюсь глубже вникнуть в работу софта. но не понимаю, почему все стараются увидеть суслика, там где его нету. )) спасибо за ответы. здоровья вам и вашей семье.
Рекомендуемые сообщения
-
- Поделиться
Доброго времени всем , помогите пожалуйста пересчитать контрольную сумму прошивки для ПЗУ m27c1024 в корпусе dip40 , это ПЗУ с ЭБУ старого мерседеса , вычитал прошивку программатором , с помощью программы редактора прошивок Win OLS , изменил в файле то что требовалось , но эта программа , для этого файла не пересчитывает автоматически контрольку , если для кого — то это не займёт особого труда , помогите пожалуйста пересчитать
Архив ZIP — WinRAR.zip
- Цитата
Ссылка на комментарий
Поделиться на другие сайты
-
- Поделиться
Какая то белеберда.
После считывания сверил с оригиналом ?
Какое расширение hex,bin, ?
- Цитата
Ссылка на комментарий
Поделиться на другие сайты
- Автор
-
- Поделиться
Только что, 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 предназначен для создания систем бесперебойного питания с внешней АКБ и может использоваться в охранно-пожарных системах, системах аварийной сигнализации, контроля доступа и в других приложениях, где требуется простая, недорогая и в то же время качественная система бесперебойного питания соответствующей мощности. Подробнее>>
-
- Поделиться
Какая контрольная сумма, вернее алгоритм ее вычисления?
- Цитата
Errare humanum est. Коли людЯм позволено, что же о нас то говорить!
Ссылка на комментарий
Поделиться на другие сайты
-
- Поделиться
где в bin хранится КС ?
- Цитата
Ссылка на комментарий
Поделиться на другие сайты
-
- Поделиться
в bin нет КС.
в НЕХ есть, но ее расчет делается для каждой строки и при создании файла.
Если КС содержится в самой прошивке, то вы знаете алгоритм ее расчета и что за КС или к примеру по какому полиному идет расчет?
Ищите в профильных форумах
- Цитата
Ссылка на комментарий
Поделиться на другие сайты
-
- Поделиться
Дениска, твой запрос напоминает анекдот про двух Шариков, которые бегут по пустыне.
«Обоссусь прямо здесь, если куста не будет».
Очко для ультры на камушке есть, или нет? И как ты это всё делал? Какими программаторами?
1 час назад, Deniska_auto сказал:
потом изменил его с помощью винолс , винолс во время того как что — то меняешь автоматически правит кс , но только для тех файлов к тоторым у него есть dll , для это в нём нет dll
Теперя объясни лЮдям. Кто такой вин олс, и нахера он нужен? И причем тут всякие dll?
- Цитата
Ссылка на комментарий
Поделиться на другие сайты
-
- Поделиться
12 минуты назад, hasl сказал:
в bin нет КС
Да ну. Запросто. Отводится оговоренное место, и записывается.
В прошке ЭБУ, это как правило четыре последних байта.
9 часов назад, Deniska_auto сказал:
не займёт особого труда
Поиск расположения и алгоритма подсчета контрольной суммы в некоторых случаях представляют собой нетривиальную задачу.
А так, да всё просто, достаточно знать место и алгоритм подсчета КС.
- Цитата
Errare humanum est. Коли людЯм позволено, что же о нас то говорить!
Ссылка на комментарий
Поделиться на другие сайты
-
- Поделиться
Олег, подтверди фактом. (Только не на си поганом). Однако от первовопроса отъехали, нехорошо как-то.
Изменено 13 октября, 2017 пользователем koms45
- Цитата
Ссылка на комментарий
Поделиться на другие сайты
-
- Поделиться
только ASM — только «хардкор»
ах хах
- Цитата
Ссылка на комментарий
Поделиться на другие сайты
-
- Поделиться
3 минуты назад, koms45 сказал:
подтверди фактом
Что конкретно? Наличие КС в прошке?
- Цитата
Errare humanum est. Коли людЯм позволено, что же о нас то говорить!
Ссылка на комментарий
Поделиться на другие сайты
-
- Поделиться
53 минуты назад, o_l_e_g сказал:
В прошке ЭБУ, это как правило четыре последних байта.
Остается только найти эти самые 4 байта
и так до самого конца, дальше нули
10 часов назад, Deniska_auto сказал:
если для кого — то это не займёт особого труда , помогите пожалуйста пересчитать
Давай алгоритм вычисления, или хотя бы название суммы, и местоположение в файле прошивки. Тогда посчитаем.
Изменено 13 октября, 2017 пользователем BARS_
- Цитата
Ссылка на комментарий
Поделиться на другие сайты
-
- Поделиться
@BARS_ , ну а я о чем?
57 минут назад, o_l_e_g сказал:
как правило
и
57 минут назад, o_l_e_g сказал:
Поиск расположения и алгоритма подсчета контрольной суммы в некоторых случаях представляют собой нетривиальную задачу.
- Цитата
Errare humanum est. Коли людЯм позволено, что же о нас то говорить!
Ссылка на комментарий
Поделиться на другие сайты
- 5 лет спустя…
-
- Поделиться
Тут многие пишут о КС которую надо запомнить на будущее , вот скрин прочитанного нового PIC12F576 и где эта КС
- Цитата
Я не раздаю ни удочек ни рыбу ,я продаю наживку у кого есть удочки.
Ссылка на комментарий
Поделиться на другие сайты
Присоединяйтесь к обсуждению
Вы можете написать сейчас и зарегистрироваться позже.
Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.
Примечание: Ваш пост будет проверен модератором, прежде чем станет видимым.
Этот шаг заключается в проверке загруженного двоичного файла встроенного программного обеспечения против контрольной суммы ссылки, чтобы избежать ошибок загрузки.
Получение контрольной контрольной суммы со страницы загрузки в настоящее время немного неудобно, так как контрольные контрольные суммы двоичных файлов прошивки в настоящее время не указаны на страницах технических данных устройства 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:
-
Нажмите на значок Windows, введите “cmd” и нажмите “Enter”
-
Выполнить (при условии, что вы загрузили файл в папку “Загрузки”):
certutil -hashfile "%USERPROFILE%/Downloads/LEDE-file-name-here" sha256
-
Это напечатает такую контрольную сумму (имя файла, за которым следует строка с буквами и цифрами),
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
-
Удалите пробелы с этой контрольной суммы (например, используя функцию замены в блокноте):
79f94efad32c148ff1953f096d98c741c0ff8f7eb4688c9d5bf9fb01c090fbab
-
Убедитесь, что строка контрольной суммы без пробелов соответствует той, которую вы можете найти в поле sha256sums на странице загрузки.
У Mac есть интегрированный инструмент для проверки sha256sums, но он не имеет графического интерфейса пользователя, поэтому нам придется использовать терминал для взаимодействия с ним.
-
Нажмите значок Finder в Dock.
-
Нажмите “Приложения” в списке “Избранное”.
-
Найдите папку “Утилиты” и нажмите, чтобы открыть ее.
-
Найдите терминал и дважды щелкните значок, чтобы открыть программу.
-
Откройте окно терминала и выполните (при условии, что вы загрузили файл на рабочий стол):
shasum -a 256 ./Desktop/file-name-here
-
он напечатает что-то вроде этого (строка с буквами и цифрами, за которой следует имя файла),
1a7c8bba93584fc44045629888e6b147851917cd0c83fcc91a7e6dbe90bdce76 lede-17.01.0-...-sysupgrade.bin
-
Убедитесь, что строка контрольной суммы соответствует той, которую вы можете найти в поле sha256sums на странице загрузки.
У Linux есть интегрированный инструмент, доступный из командной строки, аналогичный Mac.
Проверка командной строки:
-
В окне терминала выполните
sha256sum ./Desktop/file-name-here
-
Это напечатает что-то вроде этого:
1a7c8bba93584fc44045629888e6b147851917cd0c83fcc91a7e6dbe90bdce76 lede-17.01.0-...-sysupgrade.bin
-
Убедитесь, что строка контрольной суммы совпадает с той, которую вы можете найти в поле sha256sums на странице загрузки.