Grym 0 14 февраля, 2007 Опубликовано 14 февраля, 2007 · Жалоба Можно ли как-то по потоку данных и известной CRC найти как эта CRC считается? Вот например пара примеров: 0C 65 00 65 73 43 E8 E9 01 00 1B 21 F0 00 1B 21 F0 00 E7 03 E7 03 00 00 00 FF 00 00 00 00 00 00 02 00 82 00 01 90 01 12 00 00 00 00 00 00 00 00 - 28 07 03 2B 41 00 - 0F AB F8 78 Последние 4 цифры это и есть CRC. Я проверял, это не CRC32 , менял стандартный полином на зеркальный, тоже не помогло. Что интересно, в предыдщей версии протокола была стандартная двухбайтная CRC16, а здесь уже 4 байта, но это не CRC32. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Link 0 15 февраля, 2007 Опубликовано 15 февраля, 2007 · Жалоба Если полином малораспространенный (т.е не Ethernet, CRC-32-MPEG2, CRC-16-CCITT....) то подбирать коэффициенты полинома можно очень долго. А так в интернете есть много разных програм для подсчета CRC - они могут сильно облегчить поиск. > а здесь уже 4 байта, но это не CRC32. Почему ? CRC32 означает что длина CRC - 32 бита = 4 байта. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
VslavX 0 15 февраля, 2007 Опубликовано 15 февраля, 2007 · Жалоба Если полином малораспространенный (т.е не Ethernet, CRC-32-MPEG2, CRC-16-CCITT....) то подбирать коэффициенты полинома можно очень долго. А так в интернете есть много разных програм для подсчета CRC - они могут сильно облегчить поиск. > а здесь уже 4 байта, но это не CRC32. Почему ? CRC32 означает что длина CRC - 32 бита = 4 байта. Вероятно можно попробовать так - получившиеся 4 байта CRC - это остаток от деления на полином. Вычитаем их полиномиально из исходной последовательности, а результат (должен делиться с нулевым остатком и не является неприводимым) раскладываем полиномиально на множители. Один из множителей или их комбинация и будет искомый полином на который делили для получения CRC. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
nsemenoff 0 5 марта, 2007 Опубликовано 5 марта, 2007 · Жалоба Можно ли как-то по потоку данных и известной CRC найти как эта CRC считается? А вы уверены, что на этот протокол нет документации? :) Просто можно искать алгоритм методом подбора, а можно найти документацию, и сильно сократить время поиска :) Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
arttab 0 5 марта, 2007 Опубликовано 5 марта, 2007 · Жалоба Можно попробовать перебор всех известных полиномов32 для всего пакета. если подойдет, то результат будет равен 0. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
DuHast 0 5 марта, 2007 Опубликовано 5 марта, 2007 · Жалоба Обсуждалось тут Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
ya_maks 0 23 марта, 2007 Опубликовано 23 марта, 2007 · Жалоба Вероятно можно попробовать так - получившиеся 4 байта CRC - это остаток от деления на полином. Вычитаем их полиномиально из исходной последовательности, а результат (должен делиться с нулевым остатком и не является неприводимым) раскладываем полиномиально на множители. Один из множителей или их комбинация и будет искомый полином на который делили для получения CRC. Правильно говорит человек. :a14: Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться