Как пересчитать контрольную сумму прошивки: Вопрос По Контрольным Суммам. — Чип-тюнинг бензиновых и дизельных автомобилей

Содержание

Вопрос По Контрольным Суммам. — Чип-тюнинг бензиновых и дизельных автомобилей

Постоянно парюсь с контрольными суммами из за дефицита информации
.

Сегодня прошивал OPENBOX(3.1.9….)ом микас 11ET. У него прошивка была 799_32.

по этому нашёл прошивку 799_52 в нескольких вариантах без второго кислородника. (прочитал что прошивки 32 типо глючат, ну раз пишут то пусть так будет)

На оригинальной прошивке контрольная сумма была  FFA3

Когда я залил стороннюю прошивку сумма была уже D84B на другой неорригинальной 5B60.

 

Когда недавно я прошивал уазик с блоком 17.9.7 через obd2(чиплодырь) разными прошивками то там контрольная сумма не изменялась. Вообще никакой разницы небыло визуально в сканере определить что прошивка пере залита и там нет ни иммобилайзера и ни кислородника нельзя было.

 

Возникает миллион вопросов по контрольным суммам:

1. Почему когда я шил уазик сумма была неизменной а на газеле меняется?

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

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

4. я пробовал залить прошивку в микас(через опенбокс) ставя и снимая галочку «пересчитать сумму» разницы вообще нет сумма всёравно меняется.

5.где хранится эталон суммы с которой сравнивает процессор? в прошивке или в какойто своей памяти процессора?

6. Где про это всё можно прочитать потому что в инете как правило описывается либо что такое контрольная сумма и это мл там она по контрольным точкам в прошивке складывается и типо процессор так отслеживает мл  с той ли он прошивкой работает или нет.

7. В каких случаях в диагностике видно изменённую сумму а в каких нет? помнится в 17.9.7 на форуме писали мл если через bsl режим грузить други прошивки от других авто то мл может поменятся или поменяется.

 

Реально парюсь, объясните кто-нибудь?

Как пересчитать контрольную сумму при чип тюнинге ЭБУ? Что такое контрольная сумма? / Чип тюнинг и доработки двигателя / OpenECU

  • info

    Porsche Piwis 3 40.000 1
  • info

    2 апреля 2021, 22:04

    Cummins Insite 8.6 Pro level + Fleet calibration + Zapit Password 1
  • info

    Xentry OpenShell 03.2021 1
  • info

    Cummins Calterm 3.12 + Metafles 1
  • info

    IVECO EASY 14.1 1
  • info

    Diagbox 9.96 для PSA Peugeot, Citroen, Opel 1
  • info

    15 марта 2021, 12:11

    BMW E-Sys 3.27 Launcher Pro 2.8 1
  • info

    Porsche Piwis 38.250 + 38.900 for VAS6154 clone 1
  • info

    Как адаптировать коробку DSG 7 0CW с помощью ODIS Service 1
  • info

    Porsche Piwis 38.200 38.400 39.500 39.700 39.800 Зачем нужны, отличия, какие рекомендуем 1
  • info

    Porsche Piwis 39.700 + VAS 6154 clone. Acronis image 1
  • info

    BMW Acronis 08.2020 образ с набором программ для автосервиса BMW 1
  • info

    Как обновить прошивку firmware update BMW ICOM / ICOM Next 1
  • info

    Mercedes Acronis образ 09.2020 Medium (для HDD / SSD 240 Gb) 1
  • info

    Mercedes Acronis image 09.2020 Full (для 480 Gb SSD). Новая сборка для автосервиса Мерседес 1
  • info

    Mercedes Xentry 09.2020 Acronis image Lite version (for 120 Gb HDD). For online coding 1
  • info

    Обновить Mercedes WIS 2020. Исправить EPC «Отсутствуют права на чтение карты данных» 1
  • info

    Инструкция — Как удалить старую версию VAG ODIS Service, Engineering 1
  • info

    20 августа 2020, 14:08

    VAG Acronis образ в автосервис — Что в комплекте: ELSAWin ETKA ODIS-S ODIS-E DatFlash / FlashDaten 1
  • info

    Как установить программу BMW ETK (каталог запчастей BMW, Mini, Rolls Royce) 1
  • Что такое контрольная сумма прошивки

    Как известно наш ЭБУ ME_7.5 славится своей надежностью и живучестью ) и сегодня я это дело подтверждал как мог ) не без помощи товарища fknbrkn , за что ему огромный респект и безлимитный полный бак ! )

    Итак, как известно после прикручивания турбины K04 дела пошли не так гладко как хотелось бы, турба жутко передувала и как следствие нужно было срочно править прошивку ЭБУ и снижать наддув, чем я и занимался в попытке найти того кто это сможет сделать на моей чип прошивке, но как оказалось все это не так просто, за дело взялись серьезные ребята из AGP motorsport и уже через пару дней прислали мне тестовую прошивку где зарубили наддув путем снижения тактирования 75го клапана, на логах стало ясно куда и что копать, но как ни странно мой финансовый баланс не позволил в полной мере сойтись в цене на данную работу и проект пришлось заморозить .

    Таким образом изучая материалы на известных забугорных сайтах и при поддержке камрадов с данного ресурса дело пошло на освоение таких вещей как Win ols и Tuner pro, на уровне чайника конечно, но о том как с ними работать и искать карты делать чек сумм и пробовать заливать в машину напишу чуть позже, как сам получше со всем разберусь .

    Суть в том что после первых криворуких попыток что то изменить в прошивке и залить ее в блок я получил такую картину p 0601-35-00 -ошибка контрольной суммы ЭБУ, причем как интересно это было, свою тестовую прошивку я залил вечером, покатался на ней снял логи и со спокойной душой поставив машину пошел домой изучать их, а с утра машина уже полностью отказалась заводится . Вот такой прикол с контрольной суммой … первый раз она заведется и с кривой )

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

    Сливать его оказалось достаточно просто для этого подсмотрев тут www.drive2.ru/l/3030227/ скачал все необходимое и понеслось :

    Качаем программу и ложим ее в папку «me7» на диск «C»

    далее открываем командную строку, подключаем ноут к машине и пишем команды

    cd c:/me7/ (переход в директорию программы)

    me7_95040.exe (запуск программы)

    me7_95040 –OBD -r -p 2 95040.bin (чтение eeprom)

    me7_95040 –bootmode -w -p 2 95040.bin (Запись правленного eeprom)

    Где «2» перед «29040.bin» наш ком порт адаптера

    Мануал по работе с еепром для любого Xeh редактора:

    Можно отключить иммо совсем, вычислить логин приборки, и пересчитать чек суммы .

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

    А о том как искать карты и строить из себя чип тюнера в следующей серии )))

    Определимся сразу, что под термином «прошивка» в данной статье будет подразумеваться программное обеспечение электронного блока управления (ЭБУ) системы управления двигателем автомобиля. Что же содержится внутри прошивки? Условно области данных прошивки можно разбить на две области. Первая область – это сам программный код, который осуществляет управление работой автомобильного двигателя. Вторая область – это непосредственно калибр овочные данные (таблицы, графики, параметры) для работы программного кода.

    При изготовлении тюнинговой прошивки в подавляющем большинстве случаев осуществляется изменение только калибровочных данных, а сам программный код никакому изменению не подвергается. Прежде всего это объясняется большой сложностью в изменении программного кода, а также тем, что в подавляющем большинстве случаев для изготовления тюнинговой прошивки достаточно изменения лишь калибровочных данных. Однако, случаи, когда необходимо вмешиваться в программный код прошивки все же встречаются, поэтому приведу один из примеров, когда без вмешательства в программный код для изготовления тюнинговой прошивки не обойтись. Например, при замене в системе управления двигателем датчика массового расхода воздуха (ДМРВ) на датчик абсолютного давления (ДАД) потребуется заново переписать алгоритм расчета количества воздуха, который попадает в цилиндры двигателя. Это объясняется тем, что алгоритмы для расчета количества воздуха при использовании ДМРВ и ДАД различны, и одним изменением калибровочных данных этот вопрос решить нельзя.

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

    Программа ЭБУ в ходе своей работы рассчитывает значение контрольной суммы и сравнивает это значение со значением, которое хранится в прошивке (т.е. было заложено еще на заводе-изготовителе). Если эти значения не совпадают, то это считается ошибкой. У читателя в связи с эти может возникнуть вопрос: «Что же произойдет при изменении кем-либо, к примеру, калибровочных данных прошивки?». Ничего хорошего при этом не произойдет. В лучшем случае загорится лампа «Check Engine» в комбинации приборов, в худшем, автомобиль вообще не заведется. Естественно, контрольная сумма применяется не только для проверки исправности энергонезависимой памяти, а и для того, чтобы защитить саму прошивку (т.е. поставить преграду чип-тюнерам), от несанкционированного ее изменения.

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

    Чтобы подытожить все вышесказанное, определим следующие положения:

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

    • Мне сказали 728 раз
    • Я сказал 44 раз

    Для просмотра нужна авторизация!

    Для просмотра Вам необходимо авторизироваться.
    Если Вы еще не зарегистрированы, перейдите по ссылке: Регистрация.

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

    Авто
    Toyota Land Cruiser 200 4.5 дизель 89663-60642_TUN_EGRoff.bin (992 KB, Скачиваний: 28)

    ЧИП ТЮНИНГ

    &nbsp

    ЧИП-ТЮНИГ
    автомобилей
    &nbsp

    Часть 8. Настройка контрольной суммы

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

     

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

     

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

     

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

     

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

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

    Не удается найти страницу | Autodesk Knowledge Network

    (* {{l10n_strings.REQUIRED_FIELD}})

    {{l10n_strings.CREATE_NEW_COLLECTION}}*

    {{l10n_strings.ADD_COLLECTION_DESCRIPTION}}

    {{l10n_strings.COLLECTION_DESCRIPTION}} {{addToCollection.description.length}}/500 {{l10n_strings.TAGS}} {{$item}} {{l10n_strings.PRODUCTS}} {{l10n_strings.DRAG_TEXT}}  

    {{l10n_strings.DRAG_TEXT_HELP}}

    {{l10n_strings.LANGUAGE}} {{$select.selected.display}}

    {{article.content_lang.display}}

    {{l10n_strings.AUTHOR}}  

    {{l10n_strings.AUTHOR_TOOLTIP_TEXT}}

    {{$select.selected.display}} {{l10n_strings.CREATE_AND_ADD_TO_COLLECTION_MODAL_BUTTON}} {{l10n_strings.CREATE_A_COLLECTION_ERROR}}

    CRC — прога для вычисления контрольной суммы — Программы

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

     

    Например, вот строчка:

    S31500020120 6C0160C2042F86F22F8601034CF2A920 CD

    ..где CD — это та самая контрольная сумма…..

    Для начала запустите программу Калькулятор, которая есть в любой версии Windows, в расширенном режиме, чтобы удобно было переключаться из десятичной системы в шестнадцатеричную и вооружитесь обычным текстовым редактором, подойдет к примеру встроенный в FAR редактор. Затем действуйте следующим образом: сложите в шестнадцатеричной системе поля адреса, данных и после этого прибавьте к этому значению шестнадцатеричную длину этих полей в байтах — 15. Вот пример подсчета контрольной суммы для приведенной выше строчки:

     

     

    15+00+02+01+20

     

    +

     

    6C+01+60+C2+04+2F+86+F2+2F+86+01+03+4C+F2+A9+20

     

    =

     

    632 в шестнадцатеричной системе

     

     

    Теперь о том, что нужно делать с полученным результатом. Если посмотреть на поле контрольной суммы, то можно увидеть, что под нее отведен один байт, а значение одного байта не может превышать 255, или FF в шестнадцатеричной системе. Так вот, чтобы просчитать значение контрольной суммы для нашей строки, следует в шестнадцатеричной системе отнять полученное нами значение при сложении от FF. Но если перевести 632 в десятичную систему, то получится число 1586, разумеется при вычитании у нас выйдет отрицательное значение, а это недопустимо. Поэтому в этом случае следует отбросить одну цифру слева, чтобы получилось значение меньше FF — 255 в десятичной системе. Отбросили — получилось число 32. Значит теперь в шестнадцатеричной системе производим вычитание: FF — 32 = CD. Вот CD и будет искомой контрольной суммой для нашей строки.

    Сами видите, что геммороя много…а когда этого надо сделать много, то хоть вешайся вообще…заранее спасибо!!!

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

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

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

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

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

    Однако здесь я хотел бы предложить еще один вариант тоесть. установить прошивка на маршрутизаторе.

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

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

    Большинство злоумышленников будут искать уязвимости, которые существуют в стандартных маршрутизаторов. Маршрутизаторы с открытым исходным кодом прошивки будет меньше уязвимостей, менее популярные и менее уязвимы для атак.

    ДД-WRT и открытым исходным кодом маршрутизатор прошивка: https://dd-wrt.com/

    Алгоритм

    — как изменить файл, сохранив его контрольную сумму CRC-32?

    Как говорит @ MrSmith52, если вам не нужно поддерживать постоянную длину файла, можно легко вычислить «коллизию» (имя, присвоенное двум входным сообщениям, которые приводят к одному и тому же хешу).

    Это неудобно, с большим количеством болтовни, но очень быстро.

    Предположим, что исходный файл в шестнадцатеричном формате:

      1122334455667788
      

    Тогда его контрольная сумма CRC-32 будет 0x9118E1C2 с использованием стандартного полинома CRC32.Если используемый алгоритм нестандартный, его можно заменить. Я буду придерживаться стандарта в демонстрационных целях.

    Сначала внесите необходимые изменения в файл. Например, я меняю байт посередине:

      11223344FF667788
      

    Первым шагом восстановления CRC является заполнение файла 4 нулевыми байтами:

      11223344FF66778800000000
      

    Контрольная сумма CRC теперь 0x6BBE83C9 .

    Шаг второй, XOR двух контрольных сумм:

      0x9118E1C2 XOR 0x6BBE83C9 = 0xFAA6620B
      

    Шаг третий, бит обратный результат:

      Битовый реверс 0xFAA6620B = 0xD046655F
      

    Шаг четвертый, и это немного странно, поэтому см. Ниже, выполните вычисление обратного CRC32:

      0xD046655F * инверсный (x32) мод crc_poly = 0xe4c7d232
      

    Шаг пятый, результат обратный, на этот раз побайтно:

      0xe4c7d232 бит, обратный побайтно = 0x27E34B4C
      

    Шаг шестой, замените заполненные байты результатом

      11223344FF66778827E34B4C
      

    Вуаля, контрольная сумма CRC32 вернулась к 0x9118E1C2.

    Самый простой способ сделать обратный расчет CRC — использовать пакет BitVector в Python:

      >>> импортировать BitVector как bv
    >>> poly = bv.BitVector (intVal = 0x104C11DB7) # "стандартный" полином CRC32
    >>> inv = bv.BitVector (intVal = 0x100000000) .gf_MI (poly, 32)
    >>> k = 0xD046655F
    >>> p = bv.BitVector (intVal = k) .gf_multiply_modular (inv, poly, 32)
    >>> печать (p.getHexStringFromBitVector ())
    e4c7d232
      

    Этот алгоритм опубликован в этой ветке Redditor / u / supersaw7.Я не встречал лучшего, несмотря на то, что более простая версия дразняще возможна.

    Tech Talk: контрольные суммы и CRC

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

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

    В этом Tech Talk эксперт по встроенному программному обеспечению Майкл Барр обсуждает важность контрольных сумм и CRC и то, как вы можете интегрировать их в свой код.

    Загрузить CRC Code-C Barr Group (бесплатно)

    Статьи по теме

    Серия CRC, Часть 1: Аддитивные контрольные суммы

    Серия CRC, часть 2: Математика и теория CRC

    Серия CRC, часть 3: Код реализации CRC на C / C ++

    Выписка

    Майкл Барр: Сегодня утром мы говорим о контрольных суммах и CRC. CRC, сокращенно от Cyclic Redundancy Code, является мощным типом контрольной суммы. Контрольная сумма — это любая математическая операция, которую вы можете выполнить с данными, чтобы убедиться, что биты не перевернуты случайно, когда они хранятся в памяти или передаются по сети.CRC — это особенно эффективный тип контрольной суммы, в основном потому, что CRC очень сложно обмануть. Итак, CRC широко используются. Одно из их преимуществ заключается не только в том, что их сложно обмануть, но и в том, что они относительно компактны, большинство из них имеют 16- или 32-битное пространство, поэтому занимают всего два или четыре байта дополнительной памяти.

    Итак, у вас может быть большой пакет, который будет отправлен в сеть, например, сетевой пакет для Интернет-протокола может иметь длину 1500 байтов. Но вам нужно всего четыре дополнительных байта для хранения 32-битной CRC, чтобы гарантировать, что данные не были повреждены.Он не всегда идеален, но математически обмануть его очень сложно. Их много — CRC — это просто общее понятие. Их много — это математический процесс, но есть разные конкретные алгоритмы или формулы, которые вы можете применять на основе так называемого полинома генератора. Итак, один из широко используемых стандартов — это так называемый CRC-32, написанный таким образом, и это стандарт CRC-32, означающий 32 бита, который широко используется в Интернете для обеспечения точности данных.Но есть и другие, включая 16-битные CRC и множество различных полиномов генератора и другие специфические методы.

    Одна из проблем, с которыми инженеры сталкиваются при реализации CRC, заключается в том, что если вы используете универсальный процессор или даже ручку и бумагу, вычисление CRC является сложным математически, потому что оно работает с чем-то, что называется сложением по модулю 2, которое является разновидностью двоичной арифметики. И вы можете создать специальное специальное оборудование, чтобы сделать это быстро, и иногда вы это видите.Но если вам нужно написать его в своей программе на C или в программе на C ++ для встраиваемых систем, это может быть сложно, и вам не следует тратить время на это, потому что для этого есть существующие решения.

    На нашем веб-сайте barrgroup.com вы найдете три очень популярных статьи о CRC, объясняющих, что это такое, как они работают и какова защита собственности. Кроме того, как реализовать их на C и как реализовать их в статье C — это ресурсный код, который я написал около 15 лет назад и использовался тысячами разработчиков встроенного программного обеспечения, и, вероятно, он уже развернут в миллионах систем.И снова и снова было доказано, что можно использовать CRC для определенных многочленов. Вы можете выбрать многочлен или изменить его по своему вкусу. Этим легко пользоваться, и это хороший многоразовый код, который можно бесплатно загрузить на нашем веб-сайте.

    Смотреть другие технические переговоры

    [OpenWrt Wiki] Проверка двоичного кода прошивки OpenWrt

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

    Это для OpenWrt требует понимания организации веб-сервера, который поставляет двоичные файлы, которые вы устанавливаете. Если взять версию 19.07.7 для [NETGEAR R6230 | Netgear R6230] в качестве примера, структура выглядит так:

    Ключ подписи 19.07.7 проверяет подпись в файле sha256sums.asc . Подпись в файле sha256sums.asc проверяет целостность файла sha256sums .Хэш SHA256 в файле sha256sums проверяет целостность отдельных файлов в каталоге mt27621 . То же самое касается всех других поддерживаемых архитектур. Обратите внимание, что все приведенные выше URL-адреса — это https: , а не http: — некоторые из соответствующих ссылок на https://openwrt.org: http: , но если вы найдете его, вам следует изменить его на https: перед используя URL . Соединения http: уязвимы для перехвата и искажения.

    Для полной проверки файла прошивки необходимо скачать:

    Тогда шаги следующие:

    Если вы, , предполагаете, что вы не являетесь жертвой атаки цепочки поставок, что никто не скомпрометировал downloads.openwrt.org или ваше соединение с ним, можно выполнить частичную проверку, пропустив проверку подписи. Это , не рекомендуется .

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

    Linux

    См. Также: Открытые ключи и отпечатки пальцев OpenWrt GPG

     # Скачать файлы
    curl --progress-bar -o openwrt-19.07.7-ramips-mt7621-netgear_r6350-squashfs-factory.img \
        https://downloads.openwrt.org/releases/19.07.7/targets/ramips/mt7621/openwrt-19.07.7-ramips-mt7621-netgear_r6350-squashfs-factory.img
    curl --progress-bar -o sha256sums \
        https: // загрузки.openwrt.org/releases/19.07.7/targets/ramips/mt7621/sha256sums
    curl --progress-bar -o sha256sums.asc \
        https://downloads.openwrt.org/releases/19.07.7/targets/ramips/mt7621/sha256sums.asc
    
    # Импортировать открытый ключ GPG
    gpg --receive-keys 28A39BC32074BE7A
    
    # Проверить отпечаток открытого ключа GPG
    gpg - отпечаток пальца 28A39BC32074BE7A
    
    # Проверить подпись GPG
    gpg --status-fd 1 --with-fingerprint --verify sha256sums.asc sha256sums
    
    # Проверить контрольные суммы SHA256
    sha256sum --ignore-missing -c sha256sums 

    Для систем Linux есть скрипт под названием download.sh, автоматизирующий процесс. Обязательно укажите URL с использованием HTTPS . Вот отредактированная запись сеанса с использованием сценария после добавления открытого ключа подписи в связку ключей:

     # download.sh https://downloads.openwrt.org/releases/19.07.7/targets/ramips/mt7621/openwrt-19.07.7-ramips-mt7621-netgear_r6350-squashfs-factory.img
    
    1) Скачивание файла образа
    =========================
    [индикатор]
    2) Скачивание файла контрольной суммы
    ============================
    [индикатор]
    3) Скачивание подписи GPG
    ================================
    [индикатор]
    4) Проверка подписи GPG
    ==========================
    gpg: Подпись сделана среда, 17 февраля 2021 г., 07:10:01 по тихоокеанскому стандартному времени
    gpg: с использованием ключа RSA D9C6901F45C9B86858687DFF28A39BC32074BE7A
    gpg: Хорошая подпись от OpenWrt Build System (ключ PGP для 19.07 релизных сборок)  "[ultimate]
    Отпечаток первичного ключа: D9C6 901F 45C9 B868 5868 7DFF 28A3 9BC3 2074 BE7A
    
    5) Проверка контрольной суммы SHA256
    ============================
    openwrt-19.07.7-ramips-mt7621-netgear_r6350-squashfs-factory.img: ОК
    
    Проверка сделана!
    ==================
    Образ прошивки помещен в '~ / Downloads / OpenWrt / R6230 / openwrt-19.07.7-ramips-mt7621-netgear_r6350-squashfs-factory.img'.
    
    Убираться. 

    Если сценарий возвращает код ошибки, проверьте его исходный код для объяснения причины ошибки.

    Окна

    См. Также: Проверка подписи GPG

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

    1. Найдите загруженный файл. Строка в столбце sha256sum — это контрольная сумма, например 4686a0254fbd44b3d0e8ffd66ac7aba5836fe7f0847bdf7c1bf82281f95f08fb

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

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

    1. Щелкните значок Windows, введите «cmd» и нажмите Enter.

    2. Выполнить (при условии, что вы загрузили файл в папку загрузок):
       certutil -hashfile "% USERPROFILE% \ Downloads \ openwrt-file-name-here" sha256 
    3. Это напечатает контрольную сумму, подобную этой (имя файла, за которым следует строка с буквами и цифрами),
       SHA256-Хеш файла C: \ Users \ USERNAME \ Downloads \ openwrt-18.06.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. Удалите пробелы из этой выходной контрольной суммы, e.г. используя функцию замены в блокноте:
       79f94efad32c148ff1953f096d98c741c0ff8f7eb4688c9d5bf9fb01c090fbab 
    5. Убедитесь, что строка контрольной суммы без пробелов соответствует той, которую вы можете найти в поле sha256sums на странице загрузки, которую вы получили, следуя приведенным выше инструкциям.

    macOS

    См. Также: Проверка подписи GPG

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

    1. Найдите загруженный файл. Строка в столбце sha256sum — это контрольная сумма, например 4686a0254fbd44b3d0e8ffd66ac7aba5836fe7f0847bdf7c1bf82281f95f08fb

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

    1. Щелкните значок Finder в Dock.

    2. Щелкните Приложения в списке избранного.

    3. Найдите папку «Утилиты» и щелкните, чтобы открыть ее.

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

    5. Откройте окно терминала и выполните (при условии, что вы загрузили файл на рабочий стол):
       shasum -a 256 ./Desktop/file-name-here 
    6. он напечатает что-то вроде этого (строка с буквами и цифрами, за которой следует имя файла),
       1a7c8bba93584fc44045629888e6b147851917cd0c83fcc91a7e6dbe90bdce76
      openwrt-18.06.1 -...- sysupgrade.bin 
    7. Убедитесь, что строка контрольной суммы соответствует той, которую вы можете найти в поле sha256sums на странице загрузки, которую вы получили, следуя приведенным выше инструкциям.

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

    Сохранение целостности данных с помощью криптографических контрольных сумм ᐅ Westermo

    Сохранение целостности данных с помощью криптографических контрольных сумм


    Что такое криптографические контрольные суммы? Почему они важны для безопасности сети и данных? Как вы можете использовать их, чтобы убедиться, что на ваших сетевых устройствах установлена ​​правильная прошивка? Прочтите и найдите ответы на эти и другие вопросы.

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

    Сравнивая хэши, вы можете подтвердить, является ли образ прошивки для WeOS официально опубликованной версией от Westermo. Для этого вам просто нужно вычислить хэш SHA-256 образа прошивки, а затем сравнить его с официальным хешем для прошивки, доступным на веб-сайте Westermo. Чтобы упростить эту задачу, процедура будет поддерживаться WeConfig 1.9. Точный процесс показан на видео ниже.

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

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


    Никлас Мёрт
    Менеджер по продуктам кибербезопасности

    ОБЩЕЕ: формат файла Intel HEX

    Главная / Техническая поддержка

    Информация в этой статье относится к:

    • Keil MDK Все версии
    • C166 Все версии
    • C251 Все версии
    • C51 Все версии

    ВОПРОС

    Что такое формат файлов Intel HEX?

    ОТВЕТ

    Файл Intel HEX — это текстовый файл ASCII со строками текста, следуйте файловому формату Intel HEX.Каждая строка в файле Intel HEX содержит одну HEX-запись. Эти записи состоят из шестнадцатеричного числа, представляющие машинный код и / или постоянные данные. Файлы Intel HEX часто используются для передачи программы и данных, которые будет храниться в ПЗУ или СППЗУ. Большинство программистов EPROM или эмуляторы могут использовать файлы Intel HEX.

    Формат записи

    Файл Intel HEX состоит из любого количества записей HEX. Каждый запись состоит из пяти полей, которые расположены следующим образом формат:

     : llaaaatt [дд...] cc 
     

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

    • : — это двоеточие, с которого начинается каждый Intel HEX записывать.
    • ll это поле длины записи, которое представляет количество байтов данных ( dd ) в записи.
    • аааа это адрес поле, представляющее начальный адрес для последующих данных в запись.
    • тт это поле, представляющее тип записи HEX, который может быть одним из следующего:
      00 — запись данных
      01 — запись конца файла
      02 — запись адреса расширенного сегмента
      04 — запись расширенного линейного адреса
      05 — запись начального линейного адреса ( МДК-АРМ Только)
    • дд это поле данных, представляющее один байт данных.Запись может иметь несколько байтов данных. Количество байтов данных в записи должно соответствует номеру, указанному в поле ll .
    • cc поле контрольной суммы, представляющее контрольную сумму записи. Контрольная сумма вычисляется путем суммирования значений всех шестнадцатеричных пары цифр в записи по модулю 256 и взяв двойку дополнение.
    Записи данных

    Файл Intel HEX состоит из любого количества записей данных, которые завершаются возвратом каретки и переводом строки.Записи данных выглядят следующим образом:

     : 10246200464C5549442050524F46494C4500464C33 
     

    Эта запись расшифровывается следующим образом:

     : 10246200464C5549442050524F46494C4500464C33
    ||||||||||| CC-> Контрольная сумма
    ||||||||| DD-> Данные
    ||||||| TT-> Тип записи
    ||| AAAA-> Адрес
    | LL-> Длина записи
    : -> Двоеточие 
     

    где:

    • 10 — количество байтов данных в записывать.
    • 2462 — это адрес, по которому должны быть данные находится в памяти.
    • 00 — это тип записи 00 (запись данных).
    • 464C … 464C — это данные.
    • 33 — контрольная сумма записи.
    Расширенная линейная Адресные записи (HEX386)

    Записи расширенного линейного адреса также известны как 32-битный адрес. записи и записи HEX386.Эти записи содержат старшие 16 бит (биты 16-31) адреса данных. Расширенная линейная адресная запись всегда имеет два байта данных и выглядит следующим образом:

     : 02000004FFFFFC 
     

    где:

    • 02 — количество байтов данных в записывать.
    • 0000 — это адресное поле. Для расширенного запись линейного адреса, это поле всегда 0000.
    • 04 — тип записи 04 (расширенный линейный адресная запись).
    • FFFF — это старшие 16 бит адреса.
    • FC — это контрольная сумма записи, рассчитано как
      01h + NOT (02h + 00h + 00h + 04h + FFh + FFh).

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

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

      Адрес из адресного поля записи данных 2462
    Поле данных расширенной записи линейного адреса FFFF
                                                  --------
    Адрес абсолютной памяти FFFF2462 
     
    Расширенный сегмент Адресные записи (HEX86)

    Записи расширенного сегмента, также известные как HEX86 записи — содержат биты 4-19 сегмента адреса данных.Расширенный запись адреса сегмента всегда имеет два байта данных и отображается как следует:

     : 020000021200EA 
     

    где:

    • 02 — количество байтов данных в записывать.
    • 0000 — это адресное поле. Для расширенного запись адреса сегмента, это поле всегда 0000.
    • 02 — тип записи 02 (расширенный сегмент адресная запись).
    • 1200 — сегмент адреса.
    • EA — это контрольная сумма записи, рассчитано как
      01ч + НЕ (02ч + 00ч + 00ч + 02ч + 12ч + 00ч).

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

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

      Адрес из адресного поля записи данных 2462
    Поле данных 1200 записи адреса расширенного сегмента
                                                 --------
    Абсолютный адрес памяти 00014462 
     
    Начало линейного Адресные записи (только MDK-ARM)

    Записи начального линейного адреса определяют начальный адрес применение.Эти записи содержат полный линейный 32-битный адрес. Запись начального линейного адреса всегда имеет четыре байта данных и выглядит следующим образом:

     : 04000005000000CD2A 
     

    где:

    • 04 — количество байтов данных в записывать.
    • 0000 — это адресное поле. Для начала запись линейного адреса, это поле всегда 0000.
    • 05 — тип записи 05 (начальный линейный адресная запись).
    • 000000CD — 4-байтовый линейный начальный адрес приложение.
    • 2A — контрольная сумма записи, рассчитано как
      01ч + НЕ (04ч + 00ч + 00ч + 05ч + 00ч + 00ч + 00ч + CDh).

    Начальный линейный адрес указывает адрес __main (pre-main), но не адрес кода запуска, который обычно вызывает __main после вызова SystemInit ().Странное линейное начало адрес указывает, что __main скомпилирован для инструкции Thumb задавать.

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

    Записи о конце файла (EOF)

    Файл Intel HEX должен заканчиваться записью конца файла (EOF). Этот запись должна иметь значение 01 в поле типа записи.Запись EOF всегда выглядит следующим образом:

     : 00000001FF 
     

    где:

    • 00 — количество байтов данных в записывать.
    • 0000 — это адрес, по которому данные должны быть находится в памяти. Адрес в записях конца файла: бессмысленно и игнорируется. Типичный адрес 0000h.
    • 01 — тип записи 01 (конец файла записывать).
    • FF — это контрольная сумма записи, рассчитано как
      01ч + НЕ (00ч + 00ч + 00ч + 01ч).
    Пример файла Intel HEX

    Ниже приведен пример полного файла Intel HEX:

    .
     : 10001300AC12AD13AE10AF1112002F8E0E8F0F2244
    : 10000300E50B250DF509E50A350CF5081200132259
    : 03000000020023D8
    : 0C002300787FE4F6D8FD7581130200031D
    : 10002F00EFF88DF0A4FFEDC5F0CEA42EFEEC88F016
    : 04003F00A42EFE22CB
    : 00000001FF 
     

    СМОТРИ ТАКЖЕ

    СМОТРИ ТАКЖЕ 8051


    Последняя редакция: 25 февраля 2021 г., четверг


    Вычислить контрольную сумму Fireware

    Контрольная сумма используется для проверки целостности данных при их передаче и хранении.Вы можете использовать эту проверку, чтобы убедиться, что ваша ОС Firebox не была повреждена или изменена с момента ее создания WatchGuard до момента ее установки на свое устройство. Контрольная сумма предоставляется для всего пакета Fireware, а не для каждого файла в пакете.

    Вы можете использовать Firebox System Manager (FSM) для расчета контрольной суммы для версии Fireware OS, установленной на вашем Firebox.

    Чтобы использовать эту функцию для члена FireCluster, вы должны быть подключены непосредственно к члену кластера.Для получения дополнительной информации см. Подключение к члену кластера.

    1. Запустите диспетчер системы Firebox.
    2. Выберите Инструменты > Контрольная сумма ОС .
      Откроется диалоговое окно Контрольная сумма ОС, и FSM автоматически начнет вычислять контрольную сумму. Этот расчет может занять некоторое время.

    1. Чтобы снова вычислить контрольную сумму, нажмите Рассчитать .
    См. Также

    Запустите диспетчер системы Firebox

    Контролируйте свою Firebox с помощью Firebox System Manager (FSM)

    Какое программное обеспечение Windows может создавать резервные копии файлов с проверкой контрольной суммы CRC?

    Ray-Ham написал:

    Я должен был указать только программное обеспечение Windows и хранилище NTSF, так что это явно и просто копирование файла с одного диска NTFS на другой диск NTFS под операционной системой Windows, такой как win 7 или win 10.

    Я не заинтересован в написании скриптов или программного обеспечения. Ищу файловую утилиту с определенными функциями. Возможно, мне не следовало публиковать вопрос в группе резервного копирования, но я не уверен, какие группы, кроме программного обеспечения Windows и резервного копирования, задают этот вопрос. Я предполагал, что группа резервного копирования знакома с программным обеспечением, которое может копировать файл с одного диска на другой? Слово «резервное копирование» для меня предполагает копирование большого количества файлов из одного места в другое, при этом я предполагаю некоторую степень проверки того, что копирование было успешным?

    Может показаться настолько очевидным, что использование простого кода CRC для проверки целостности файла и какое-то связывание этого кода CRC с указанным файлом было бы сделано раньше как проект.А с файловой системой NTFS, предлагающей возможность постоянного и простого сохранения этой ассоциации как части главной файловой таблицы — мне кажется, это не проблема. Это также позволит очень быстро искать повторяющиеся файлы — полезная функция при резервном копировании больших объемов файлов, избегая необходимости копировать файлы, которые уже существуют на целевом диске.

    У нас все еще нет того, чего вы хотите достичь … Вы не хотите использовать отвертку для работы с ленточной пилой?

    Вы хотите дедуплицировать данные на уровне файловой системы или на уровне пользователя / приложения?

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

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

    Если мы говорим об уровне пользователя / приложения, то это не следует путать с уровнем операционной системы и / или системы резервного копирования, и это можно сделать в рамках вашего приложения.Если у вас есть веб-портал для обмена файлами, вы можете вычислить хеши / CRC / что угодно, когда файл будет загружен и сохранен, тогда у вас будет база данных с указателями для доступа к именам вашего приложения, которые указывают на один файл в вашем репозиторий. Затем вы можете делать что угодно со своим репозиторием, вы можете перенести его в другой и т.д., но это ваше приложение, ваша функциональность. Имейте в виду, что кто-то может загрузить документ document1.doc, затем другой изменит только один символ в документе, и ваша дедупликация больше не будет его ловить, и вы снова будете использовать свое пространство для хранения.Для этого вам все равно придется использовать уровень дедупликации файловой системы или иметь действительно действительно хороший алгоритм, который фактически разделяет файлы на блоки, а затем вычисляет магию и сохраняет их <- это будет означать, что вы изобретаете горячую воду, поскольку он уже реализован и готов к использованию на системном уровне.

    Как было сказано выше, я не думаю, что вы понимаете, для чего используется CRC — взгляните на wiki: Cyclic redundancy check. CRC — или любое другое вычисление, которое они используют — уже рассчитывается на уровне файловой системы и используется для обеспечения целостности файла, что означает, что файл не был поврежден.Если вы изменяете файл, система автоматически вычисляет новый CRC, но это еще не все, поскольку он также изменяет метанные, которые могут быть прочитаны на уровне пользователя (или любого другого). Вы хотите найти все файлы, которые изменились за последние 3 дня? Вот PS:

    Powershell

     (Get-ChildItem -Path C: \ TMP \ *.
    Leave a Reply

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

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