Andrei2018 0 26 сентября, 2022 Опубликовано 26 сентября, 2022 · Жалоба Всем привет ... Уже несколько дней борюсь с crc в прошивке есть области crc где нашел обычный стандарт crc 32 ... но есть одна область где никак не могу получить нужные значения. привожу пример с crc где она без проблем посчиталась .... a5 3c 96 00 14 ad 00 28 8a 38 49 71 a0 c6 07 00 00 00 ed ff 00 00 26 00 00 00 00 00 37 4a 52 31 ------- с байта (07 - .......03 00 00 00 ) - данные , 62 b1 da 38 - CRC32 30 32 46 4b 37 4d 47 30 39 31 30 34 37 00 03 00 00 00 62 b1 da 38 15 15 bb bb bb bb bb bb bb bb Ну а вот теперь с тем чем не могу разобраться a5 3c 96 00 18 2c 00 1c bf b7 60 14 cd c4 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ------ 60 14 cd c4 это контрольная сумма в пакете данные скорее сразу после crc и без 4 байт нулевых до 15 15 00 00 00 00 00 00 00 00 00 00 15 15 00 00 00 00 так же привожу пример пакета не нулевого a5 3c 96 00 18 2c 00 1c bf b7 7d 68 09 4b 07 01 01 02 03 02 02 02 01 01 02 03 01 02 02 01 03 01 01 02 02 ff ff 1f 00 00 00 00 15 15 00 00 00 00 a5 3c 96 00 18 2c 00 1c bf b7 c6 0c be 00 07 01 01 02 03 02 03 04 01 01 01 01 02 02 02 01 03 04 01 01 02 02 02 ff ff 7f 00 00 15 15 00 00 00 00 a5 3c 96 00 18 2c 00 1c bf b7 c1 d0 41 bf 07 01 01 02 03 02 02 02 01 01 02 03 01 02 02 01 03 01 01 01 02 02 ff ff 3f 00 00 00 15 15 00 00 00 00 Вот три пакета где точно знаем что перед байтом 07 - crc 4 байта !! каким образом посчитать так и не удалось !!Помогиле можно не бесплатно !!! Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
k155la3 27 26 сентября, 2022 Опубликовано 26 сентября, 2022 · Жалоба 1. На этом сайте сколько-то (десять) лет назад обсуждался подобный вопрос с вариантами решения. 2. В сети есть сайты делающие расчет CRC для разных полиномов (калькуляторы). Начните с wiki, какие есть "стандартные" полиномы для различных протоколов, а также в каждом из них - режим-параметры расчета 3. Если нет 100-процентной уверенности, какой блок (последовательность байт) соотв-ет конкретной CRC в "образцах", то перспективы подбора-нахождения туманные. 4. Можете сами написать универсальную утилиту подсчета CRC с различными полиномами и исходными параметрами подсчета. Самый простой из них - стартовое значение регистра CRC, может быть как 0x0000, так и 0xFFFF. А может и любое из промежуточных значений. и т д Чтобы Вам помогли собственно "посчитать" - выкладывайте данные в виде массивов исходника С, и бинарник с указанием адресов/длин блоков и адресов CRC Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Andrei2018 0 26 сентября, 2022 Опубликовано 26 сентября, 2022 (изменено) · Жалоба @k155la3 Цитата 1. На этом сайте сколько-то (десять) лет назад обсуждался подобный вопрос с вариантами решения. 2. В сети есть сайты делающие расчет CRC для разных полиномов (калькуляторы). Начните с wiki, какие есть "стандартные" полиномы для различных протоколов, а также в каждом из них - режим-параметры расчета 3. Если нет 100-процентной уверенности, какой блок (последовательность байт) соотв-ет конкретной CRC в "образцах", то перспективы подбора-нахождения туманные. 4. Можете сами написать универсальную утилиту подсчета CRC с различными полиномами и исходными параметрами подсчета. Самый простой из них - стартовое значение регистра CRC, может быть как 0x0000, так и 0xFFFF. А может и любое из промежуточных значений. и т д Чтобы Вам помогли собственно "посчитать" - выкладывайте данные в виде массивов исходника С, и бинарник с указанием адресов/длин блоков и адресов CRC 1. Пробовал различные варианты расчета через калькуляторы CRC. Данные способы не эффективны. Собственно отсюда и назрел вопрос правильного определения и подбора расчёта контрольной суммы. 2. Как собрать правильно подбор и пересчёт с другим полиномом и подбором стартовых адресов - тут сложнее. 3. Во вложении 2 файла: "WHAT is CRC.bin" и READ ME.jpg 4. В *.bin собраны примеры областей. На картинке *.jpg есть пометки где и что находится. (Область - серый цвет, контрольная сумма - желтый, данные - синий. 5. Все примеры областей в bin и на картинке имеют одинаковое начало "A5 3C 96 00 18 2C 00 1C BF B7", после идёт контрольная сумма с неизвестным порядком расчёта (который и требуется узнать), далее идут данные для расчета, и конец области "15 15 .. .. до конца оболасти". Изложил повторно как мог. Прошу помочь. WHAT IS CRC_forum.bin Изменено 26 сентября, 2022 пользователем Andrei2018 Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
k155la3 27 26 сентября, 2022 Опубликовано 26 сентября, 2022 · Жалоба CRC32 такое ? CRC-32-IEEE 802.3 x^32 + x^26 + x^23 + x^22 + x^16 + x^12 + x^11 + x^10 + x^8 + x^7 + x^5 + * x^4 + x^2 + x + 1 или дайте ссылку на калькулятор в сети, которым считали "обычный стандарт crc 32". Насколько понял, CRC считается правильно в этом пакете привожу пример с crc где она без проблем посчиталась .... ------- с байта (07 - .......03 00 00 00 ) - данные , 62 b1 da 38 - CRC32 ------ HEADER -------- a5 3c 96 00 14 ad 00 28 8a 38 49 71 a0 c6 ------ DATA ------ 07 00 00 00 ed ff 00 00 26 00 00 00 00 00 37 4a 52 31 30 32 46 4b 37 4d 47 30 39 31 30 34 37 00 03 00 00 00 ----- CRC -------- 62 b1 da 38 ------ etc ------- 15 15 bb bb bb bb bb bb bb bb Возможно Вам быстрее ответят, если разместите вопрос в разделе "Предлагаю работу". Если одна структура данных/пакет просчитались какой-либо CRC, то маловероятно что в этой системе будет использоваться другой алгоритм-полином. Чем делали "съем" данных. Если это неотлаженный софт итд велика вероятность получения ошибок, что и покажет ошибку CRC. Вам надо исключить эту ситуацию чтобы самому не тратить время и другим тоже. В бинарном файле нарушений структуры не заметил Спойлер BB BB BB BB BB BB BB BB BB BB BB BB BB BB BB BB A5 3C 96 00 18 2C 00 1C BF B7 59 58 B7 05 CRC 0A 01 01 02 02 02 02 02 01 01 02 02 01 02 02 01 03 03 01 01 03 02 FF FF 3F 00 00 00 15 15 00 00 00 00 BB BB BB BB BB BB BB BB BB BB BB BB BB BB BB BB A5 3C 96 00 18 2C 00 1C BF B7 DC 6D C3 34 0A 01 01 02 02 02 02 02 01 01 02 02 01 02 02 01 03 03 01 01 03 FF FF 1F 00 00 00 00 15 15 00 00 00 00 BB BB BB BB BB BB BB BB BB BB BB BB BB BB BB BB A5 3C 96 00 18 2C 00 1C BF B7 1D E3 1C F4 0A 01 01 02 02 02 02 02 01 01 02 02 01 02 02 01 03 02 01 01 03 FF FF 1F 00 00 00 00 15 15 00 00 00 00 BB BB BB BB BB BB BB BB BB BB BB BB BB BB BB BB A5 3C 96 00 18 2C 00 1C BF B7 B3 69 77 83 0A 01 01 02 02 02 02 02 01 01 02 02 01 02 02 01 03 03 01 01 02 03 02 FF FF 7F 00 00 15 15 00 00 00 00 BB BB BB BB BB BB BB BB BB BB BB BB BB BB BB BB A5 3C 96 00 18 2C 00 1C BF B7 5B 0B 4B 57 0A 01 01 02 02 02 04 01 01 01 02 01 02 01 02 02 03 01 01 01 03 FF FF 1F 00 00 00 00 15 15 00 00 00 00 BB BB BB BB BB BB BB BB BB BB BB BB BB BB BB BB A5 3C 96 00 18 2C 00 1C BF B7 AC 58 64 FC 0B 01 01 02 02 02 04 01 01 01 02 01 02 01 02 02 03 02 01 01 02 03 02 FF FF 7F 00 00 15 15 00 00 00 00 BB BB BB BB BB BB BB BB BB BB BB BB BB BB BB BB A5 3C 96 00 18 2C 00 1C BF B7 02 D2 0F 8B 0B 01 01 02 02 02 04 01 01 01 02 01 02 01 02 02 03 03 01 01 03 FF FF 1F 00 00 00 00 15 15 00 01 40 08 BB BB BB BB BB BB BB BB BB BB BB BB BB BB BB BB A5 3C 96 00 18 2C 00 1C BF B7 24 6C DB E7 0B 01 03 02 09 02 04 01 01 01 02 01 02 01 02 02 03 01 01 01 01 03 02 FF FF 7F 00 00 15 15 00 00 00 00 BB BB BB BB BB BB BB BB BB BB BB BB BB BB BB BB A5 3C 96 00 18 2C 00 1C BF B7 5D 51 44 56 0D 01 01 02 02 02 02 02 01 01 02 02 01 02 02 01 03 03 01 01 03 02 FF FF 3F 00 00 00 15 15 00 00 00 00 BB BB BB BB BB BB BB BB BB BB BB BB BB BB BB BB A5 3C 96 00 18 2C 00 1C BF B7 BA 6D 9B DB 07 01 01 02 03 02 03 04 01 01 01 01 02 02 01 01 03 04 01 01 02 02 02 FF FF 7F 00 00 15 15 00 00 00 00 BB BB BB BB BB BB BB BB BB BB BB BB BB BB BB BB A5 3C 96 00 18 2C 00 1C BF B7 5B A3 80 DA 07 02 03 02 0A 02 03 04 01 01 01 01 02 02 02 01 03 02 HDR =================== ======================= ========================== ======================== =================== A5 3C 96 00 18 2C 00 1C BF B7 A5 3C 96 00 18 2C 00 1C BF B7 A5 3C 96 00 18 2C 00 1C BF B7 A5 3C 96 00 18 2C 00 1C BF B7 A5 3C 96 00 18 2C 00 1C BF B7 A5 3C 96 00 18 2C 00 1C BF B7 A5 3C 96 00 18 2C 00 1C BF B7 A5 3C 96 00 18 2C 00 1C BF B7 A5 3C 96 00 18 2C 00 1C BF B7 A5 3C 96 00 18 2C 00 1C BF B7 A5 3C 96 00 18 2C 00 1C BF B7 DATA ============ ============ ================ ============= =============== = 0A 01 01 02 02 02 02 02 01 01 02 02 01 02 02 01 03 03 01 01 03 02 FF FF 3F 00 00 00 15 15 00 00 00 00 0A 01 01 02 02 02 02 02 01 01 02 02 01 02 02 01 03 03 01 01 03 FF FF 1F 00 00 00 00 15 15 00 00 00 00 0A 01 01 02 02 02 02 02 01 01 02 02 01 02 02 01 03 02 01 01 03 FF FF 1F 00 00 00 00 15 15 00 00 00 00 0A 01 01 02 02 02 02 02 01 01 02 02 01 02 02 01 03 03 01 01 02 03 02 FF FF 7F 00 00 15 15 00 00 00 00 0A 01 01 02 02 02 04 01 01 01 02 01 02 01 02 02 03 01 01 01 03 FF FF 1F 00 00 00 00 15 15 00 00 00 00 0B 01 01 02 02 02 04 01 01 01 02 01 02 01 02 02 03 02 01 01 02 03 02 FF FF 7F 00 00 15 15 00 00 00 00 0B 01 01 02 02 02 04 01 01 01 02 01 02 01 02 02 03 03 01 01 03 FF FF 1F 00 00 00 00 15 15 00 01 40 08 0B 01 03 02 09 02 04 01 01 01 02 01 02 01 02 02 03 01 01 01 01 03 02 FF FF 7F 00 00 15 15 00 00 00 00 0D 01 01 02 02 02 02 02 01 01 02 02 01 02 02 01 03 03 01 01 03 02 FF FF 3F 00 00 00 15 15 00 00 00 00 07 01 01 02 03 02 03 04 01 01 01 01 02 02 01 01 03 04 01 01 02 02 02 FF FF 7F 00 00 15 15 00 00 00 00 07 02 03 02 0A 02 03 04 01 01 01 01 02 02 02 01 03 02 Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Arlleex 180 27 сентября, 2022 Опубликовано 27 сентября, 2022 · Жалоба 8 часов назад, k155la3 сказал: Если одна структура данных/пакет просчитались какой-либо CRC, то маловероятно что в этой системе будет использоваться другой алгоритм-полином. Ну как сказать... У меня бывало и несколько разных алгоритмов и полиномов, и несколько способов запихивания байтов в этот алгоритм. А все это либо от сопровождения или стыковки с техникой печального наследия, либо для того, чтоб ломать было тяжело В данном случае, если учесть, что струкутра пакета (в отличие от первого, где CRC посчиталась правильно) другая, делать выводы о маловероятности использования другого алгоритма, ИМХО, не имеет оснований. 1 Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Andrei2018 0 27 сентября, 2022 Опубликовано 27 сентября, 2022 (изменено) · Жалоба @Arlleex 30 минут назад, Arlleex сказал: Я вычислил за 0.00005с. Жду еще набор данных для подтверждения. поработаем? как получить решение моей проблемы? Вот еще набор (в прикрепленном файле). Могут быть дубли областей. Но на расчёт я думаю это никак не повлияет. bin.bin Изменено 27 сентября, 2022 пользователем Andrei2018 Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Arlleex 180 27 сентября, 2022 Опубликовано 27 сентября, 2022 · Жалоба Нет, я сначала подумал что правильно посчиталось, потом увидел косяк. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
looser 8 27 сентября, 2022 Опубликовано 27 сентября, 2022 · Жалоба Полином-то какой? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Andrei2018 0 27 сентября, 2022 Опубликовано 27 сентября, 2022 · Жалоба было бы все так просто то не написали бы сюда !! стандартные полиномы не подошли походу !! Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
looser 8 27 сентября, 2022 Опубликовано 27 сентября, 2022 · Жалоба Ну там,где сошлось? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Andrei2018 0 27 сентября, 2022 Опубликовано 27 сентября, 2022 · Жалоба Только что, looser сказал: Ну там,где сошлось? 0x04C11DB7 Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
k155la3 27 27 сентября, 2022 Опубликовано 27 сентября, 2022 · Жалоба 1 час назад, Andrei2018 сказал: было бы все так просто то . . . . Вот именно, что все "не просто", и даже очень не просто. При минимальном желании разработчика усложнить жизнь "какеру", достаточно при "стандартном", и даже известном "какеру" полиноме изменить стартовые значения для расчета CRC. Это не повлечет доп.затрат времени в алгоритме расчета, и можно использовать при работе с аппаратным "рассчетчиком" в микроконтроллере. При чуть-большем желании "закрыть" данные или код, в качестве стартовых значений можно взять первые 2-4 байта данных, CRC которыех подсчитывается. При еще большем желании - из произвольного места данных изымаются произвольное кол-во байт, которые не будут участвовать в расчете CRC. Но "какер" об этом не знает и продолжает терять время своей жизни на закат солнца вручную подбор. И... Т.... Д .... Даже если это простейшая псевдо-защита, которую я привел первой то вручную это отловить нельзя (для CRC16 надо просчитать 65536 раз CRC пакета, а для CRC32 - сколько-то миллиардов раз). Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Andrei2018 0 27 сентября, 2022 Опубликовано 27 сентября, 2022 · Жалоба РЕбята базрить впустую все могут что и кто и как !!!! сможете посчитать ?? или написать программу подбора полинома из имеющихся пакетов!!???? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
looser 8 27 сентября, 2022 Опубликовано 27 сентября, 2022 · Жалоба Вы правильную сумму чем считали? У меня не выходит. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
k155la3 27 27 сентября, 2022 Опубликовано 27 сентября, 2022 · Жалоба 17 часов назад, k155la3 сказал: CRC32 такое ? CRC-32-IEEE 802.3 x^32 + x^26 + x^23 + x^22 + x^16 + x^12 + x^11 + x^10 + x^8 + x^7 + x^5 + * x^4 + x^2 + x + 1 или дайте ссылку на калькулятор в сети, которым считали "обычный стандарт crc 32". Ответа не увидел. 47 минут назад, Andrei2018 сказал: РЕбята базрить впустую все могут что и кто и как !!!! сможете посчитать ?? или написать программу подбора полинома из имеющихся пакетов!!???? "базарить впустую" нет никакого интереса. Какой контроллер/процессор обрабатывает данные ? Если Вы намек поняли. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться