Santinel 0 1 мая, 2014 Опубликовано 1 мая, 2014 · Жалоба Есть устройство, на вход которого поступают 9 байт данных. Устройство проверяет валидность CRC10(?) и бракует или не бракует пакет. Биты СRC10(?) расположены в 0 байте, и в двух младших битах 1 байта. К сожалению, не возможно сделать последовательность из всех нулей :( девайс анализирует 6 старших бит байта 1. Диапазон 0х50(010100хх) .. 0хА0(101000хх) И байты 2,3 должны быть равны 0х01 и 0х00. Иначе пакет тоже бракуется Методом подбора я сгенерил небольшую табличку 0 1 2 3 4 5 6 7 8 92-6B-01-00-00-00-00-00-00 B6-6B-01-00-00-00-00-00-01 DA-6B-01-00-00-00-00-00-02 02-6B-01-00-00-00-00-00-04 B2-6A-01-00-00-00-00-00-08 D2-69-01-00-00-00-00-00-10 12-6B-01-00-00-00-00-00-20 92-6A-01-00-00-00-00-00-40 92-69-01-00-00-00-00-00-80 82-6A-01-00-00-00-00-01-00 B2-69-01-00-00-00-00-02-00 D2-6B-01-00-00-00-00-04-00 13-6A-01-00-00-00-00-08-00 90-6A-01-00-00-00-00-10-00 92-69-01-00-00-00-00-20-00 Читаем документ, раздел "Putting Theory into Practice" http://www.cosc.canterbury.ac.nz/greg.ewin...ngineering.html Получается, что соседние СRC (со сдвигом) должны отличаться либо на полином, либо быть равны. В моем случае такого не наблюдается Какими еще функциями, кроме СRC, можно создать контрольную сумму ? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
kovigor 5 1 мая, 2014 Опубликовано 1 мая, 2014 · Жалоба Какими еще функциями, кроме СRC, можно создать контрольную сумму ? Много раз наблюдал обычную сумму по модулю X ... Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Santinel 0 2 мая, 2014 Опубликовано 2 мая, 2014 · Жалоба К сожалению, здесь не обычная сумма :( Может быть они перед тем, как скормить байт процедуре CRC, ксорят его с константой ? тогда моя "бегущая по нулям единица" не выявит полином Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
SFx 0 4 мая, 2014 Опубликовано 4 мая, 2014 · Жалоба попробуйте перебором содержимое пакета только нули, а CRC-начало инкрементируйте. как найдете правильное, возьмите поменяйте один бит в пакете и снова CRC-начало инкрементируйте и т.д. бит меняйте тот, который ближе к началу пакета, передается первым. ну и по LSB/MSB нужно подумать. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Сергей Борщ 119 5 мая, 2014 Опубликовано 5 мая, 2014 · Жалоба Еще возможно, что один из крайних битов - бит четности, а CRC имеет на 1 бит меньше. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Santinel 0 5 мая, 2014 Опубликовано 5 мая, 2014 · Жалоба @Сергей Борщ: Спасибо за идею ) как-то не подумал об этом. Однако, похоже ни один из битов контролем четности не является ( CRC 0..7 Wieg26 89 Const 0x0100 Wiegand bit 1-26 Wieg bit 27-40 CRC 0..7 & 8..9 10010010 011010 11 0000000100000000 00000000000000000000000000 00000000000000 92-3 10110110 011010 11 0000000100000000 00000000000000000000000000 00000000000001 B6-3 11011010 011010 11 0000000100000000 00000000000000000000000000 00000000000010 DA-3 00000010 011010 11 0000000100000000 00000000000000000000000000 00000000000100 02-3 10110010 011010 10 0000000100000000 00000000000000000000000000 00000000001000 B2-2 11011010 011010 01 0000000100000000 00000000000000000000000000 00000000010000 D2-1 00010010 011010 11 0000000100000000 00000000000000000000000000 00000000100000 12-3 10010010 011010 10 0000000100000000 00000000000000000000000000 00000001000000 92-2 10010010 011010 01 0000000100000000 00000000000000000000000000 00000010000000 92-1 10000010 011010 10 0000000100000000 00000000000000000000000000 00000100000000 82-2 10110010 011010 01 0000000100000000 00000000000000000000000000 00001000000000 B2-1 11010010 011010 11 0000000100000000 00000000000000000000000000 00010000000000 D2-3 00010011 011010 10 0000000100000000 00000000000000000000000000 00100000000000 13-2 10010000 011010 10 0000000100000000 00000000000000000000000000 01000000000000 90-2 10010010 011010 01 0000000100000000 00000000000000000000000000 10000000000000 92-1 10010011 011010 11 0000000100000000 00000000000000000000000001 00000000000000 93-3 10010000 011010 11 0000000100000000 00000000000000000000000010 00000000000000 90-3 11010001 011010 01 0000000100000000 00000000000000000000000100 00000000000000 B1-1 00010010 011010 10 0000000100000000 00000000000000000000001000 00000000000000 12-2 10010010 011010 10 0000000100000000 00000000000000000000010000 00000000000000 92-2 10110110 011010 01 0000000100000000 00000000000000000000100000 00000000000000 B6-1 11011011 011010 11 0000000100000000 00000000000000000001000000 00000000000000 DB-3 10010000 011010 11 0000000100000000 00000000000000000010000000 00000000000000 90-3 10110110 011010 11 0000000100000000 00000000000000000100000000 00000000000000 B6-3 11011010 011010 11 0000000100000000 00000000000000001000000000 00000000000000 DA-3 11111100 011010 10 0000000100000000 00000000000000010000000000 00000000000000 FC-2 10010010 011010 01 0000000100000000 00000000000000100000000000 00000000000000 92-1 10010011 011010 11 0000000100000000 00000000000001000000000000 00000000000000 93-3 10000000 011010 10 0000000100000000 00000000000010000000000000 00000000000000 80-2 11010110 011010 01 0000000100000000 00000000000100000000000000 00000000000000 D6-1 11011010 011010 11 0000000100000000 00000000001000000000000000 00000000000000 DA-3 10000010 011010 10 0000000100000000 00000000010000000000000000 00000000000000 82-2 10110010 011010 01 0000000100000000 00000000100000000000000000 00000000000000 B2-1 11011011 011010 11 0000000100000000 00000001000000000000000000 00000000000000 DB-3 10010000 011010 11 0000000100000000 00000010000000000000000000 00000000000000 90-3 10110110 011010 11 0000000100000000 00000100000000000000000000 00000000000000 B6-3 10011001 011010 01 0000000100000000 00001000000000000000000000 00000000000000 99-1 00000010 011010 10 0000000100000000 00010000000000000000000000 00000000000000 02-2 10110010 011010 01 0000000100000000 00100000000000000000000000 00000000000000 B2-1 11010001 011010 01 0000000100000000 01000000000000000000000000 00000000000000 D1-1 00010010 011010 10 0000000100000000 10000000000000000000000000 00000000000000 12-2 Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
adnega 10 5 мая, 2014 Опубликовано 5 мая, 2014 · Жалоба Если код имеет отношение к СКУД, то можно посмотреть схемы кодирования карт EM-Marin в документах EM4006, EM4100 http://www.gaw.ru/html.cgi/txt/ic/em-marin/rfid/start.htm Например, n-й бит контрольного байта может быть четностью всех n-х битов данных. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Santinel 0 5 мая, 2014 Опубликовано 5 мая, 2014 · Жалоба да, имеет прямое отношение к СКУД) только это не ЕМ-Марин:( это карточка ТЕМИК 5557, на которую записан код @SFx Не совсем понял Вас. Как построить последовательность? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
barabek 0 5 мая, 2014 Опубликовано 5 мая, 2014 · Жалоба да, имеет прямое отношение к СКУД) только это не ЕМ-Марин:( это карточка ТЕМИК 5557, на которую записан код если это циклический код, то можно попробовать алгоритм Бэрлекампа-Мэсси. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
SFx 0 12 мая, 2014 Опубликовано 12 мая, 2014 · Жалоба @SFx Не совсем понял Вас. Как построить последовательность? ну вы меняете последний бит у пакета, а попробуйте первый поменять, что в общем то вы уже и сделали. дальше чисто анализ. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Dnepr33 0 5 июня, 2014 Опубликовано 5 июня, 2014 · Жалоба подсчет CRC состоит из: (1) - разрядности ( 8 - 16 - 32 итд ) (2) - направления "сдвижки" регистра CRC ( со старших или младших бит байта - слова итд, в соответствии с (1) (3) - начального значения CRC (4) - округления последних байт до размера (1), или "неокругления" какой либо константой (5) - собственно, полинома в соответствии с разрядностью (2) --------------- Если есть образец-дам по входу, и его CRC неизвестного алгоритма - можно наваять-зарядить подборщик. Но для достоверного подбора нужны не одна пара дамп-CRC а чем-больше-тем-лучше. Думаю в области криптоаналитики есть что-то готовое. К сожалению, здесь не обычная сумма :( Может быть они перед тем, как скормить байт процедуре CRC, ксорят его с константой ? тогда моя "бегущая по нулям единица" не выявит полином Если разработчики достаточно ушлые, то вполне могли "замусорить" пакет данных по одному им известному алгоритму. И при приеме пакета, до просчета CRC пакет сначала "размусоривается", а потом уже считает CRC. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Santinel 0 13 июня, 2014 Опубликовано 13 июня, 2014 · Жалоба @Dnepr33 Не понятно, каким образом они включили 6 бит длины вейганда из 2 байта последовательности в подсчет CRC ( .. Карточку я могу прочитать, не проверяя CRC. А вот сгенерировать новую карточку с заданным номером - невозможно. ЗЫ Привет из Киева ) Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться