информационная безопасность
без паники и всерьез
 подробно о проектеRambler's Top100
За кого нас держат?Портрет посетителя
BugTraq.Ru
Русский BugTraq
 Анализ криптографических сетевых... 
 Модель надежности двухузлового... 
 Специальные марковские модели надежности... 
 Ядро Linux избавляется от российских... 
 20 лет Ubuntu 
 Tailscale окончательно забанила... 
главная обзор RSN блог библиотека закон бред форум dnet о проекте
bugtraq.ru / форум / beginners
Имя Пароль
ФОРУМ
если вы видите этот текст, отключите в настройках форума использование JavaScript
регистрация





Легенда:
  новое сообщение
  закрытая нитка
  новое сообщение
  в закрытой нитке
  старое сообщение
  • Напоминаю, что масса вопросов по функционированию форума снимается после прочтения его описания.
  • Новичкам также крайне полезно ознакомиться с данным документом.
Господа, будьте снисходительны, не бросайтесь сразу штрафовать за, как вам кажется, глупые вопросы - beginners на то и beginners.
Если там действительно CRC и есть возможность подавать на... 18.12.04 02:49  Число просмотров: 2396
Автор: Lexy Статус: Незарегистрированный пользователь
<"чистая" ссылка>
Если там действительно CRC и есть возможность подавать на вход разные значения, то можно все легко вскрыть без перебора за счет линейности алгоритма. Количество необходимых тестовых значений для 16-битного CRC будет, по-видимому равно 17, для 32-битного - 33 и т.п. Общая идея такова:
Если некоторый CRC-подобный алгоритм на входах A, B, C дает F(A), F(B), F(C) соответственно, то на входе D = A^B^C он даст F(D) = F(A)^F(B)^F(C). Отсюда выбираем какое-то базовое значение A, и далее значения B_i = A ^ X_i, так чтобы X_i были линейно независимы (например, степени двойки). Вычисляем на них значения целевой функции, остальные через них легко выражаются. В интернете можно найти подробные источники по поводу таких алгоритмов.

Если же целевой алгоритм - не CRC, то имеет смысл сначала его извлечь каким-либо способом, и потом уже исследовать отдельно.

===
Lexy
<beginners>
Подбор параметров нестандартного CRC 24.11.04 02:05   [leo, fly4life]
Автор: Dimik Статус: Незарегистрированный пользователь
<"чистая" ссылка>
Итак, суть задачи.

Есть сообщение вида 09 F8 CC FB FA EF BB 9E, последние два байта контрольная сумма. По идее это должен быть CRC, но с нестандартным полиномом, начальными и XOR константантами.

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

Нужно поиметь значения параметров для расчет этого CRC.
Re: Подбор параметров нестандартного CRC 24.11.04 10:20  
Автор: leo <Леонид Юрьев> Статус: Elderman
<"чистая" ссылка>
Всё может быть как очень просто, так и совсем нет.

Если там действительно CRC, и тем более по полиному не более X16, то найти полином легко, даже просто brute-force. В Сети есть описание как "умных" итеративных алгоритмов, так и brute-force подбор. Если полином не длинее 16, то "подбор" IMHO будет удобнее.

Но там может быть не просто CRC, а смесь c функцией (нелинейной и/или не коррелирующей с CRC). Например можно посчитать CRC32, а потом сложить старшие и младшие 16 бит. Или взять 16 бит начитая с 3-го. Можно сделать и еще "хуже" - посчитать MD5 и взять какие-нибудь два байта из 16.
Если там действительно CRC и есть возможность подавать на... 18.12.04 02:49  
Автор: Lexy Статус: Незарегистрированный пользователь
<"чистая" ссылка>
Если там действительно CRC и есть возможность подавать на вход разные значения, то можно все легко вскрыть без перебора за счет линейности алгоритма. Количество необходимых тестовых значений для 16-битного CRC будет, по-видимому равно 17, для 32-битного - 33 и т.п. Общая идея такова:
Если некоторый CRC-подобный алгоритм на входах A, B, C дает F(A), F(B), F(C) соответственно, то на входе D = A^B^C он даст F(D) = F(A)^F(B)^F(C). Отсюда выбираем какое-то базовое значение A, и далее значения B_i = A ^ X_i, так чтобы X_i были линейно независимы (например, степени двойки). Вычисляем на них значения целевой функции, остальные через них легко выражаются. В интернете можно найти подробные источники по поводу таких алгоритмов.

Если же целевой алгоритм - не CRC, то имеет смысл сначала его извлечь каким-либо способом, и потом уже исследовать отдельно.

===
Lexy
Неужели больше никто ничего не подскает? 29.11.04 10:37  
Автор: Dimik Статус: Незарегистрированный пользователь
<"чистая" ссылка>
Спасибо за ответ. 24.11.04 12:05  
Автор: Dimik Статус: Незарегистрированный пользователь
<"чистая" ссылка>
Спасибо за ответ.

> даже просто brute-force. В Сети есть описание как "умных"
> итеративных алгоритмов, так и brute-force подбор. Если

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

> полином не длинее 16, то "подбор" IMHO будет удобнее.
>


Имхо нет, т.к. у нас 16 битный полином, 16 битное начальное значение, 16 битный XOR на выходе + два бита иверсии входа и выхода. (В трактовке Painless CRC guide)

Итого (2^16(2^16)2^16)*2*2 вариантов. Если применить алгоритм произвольного CRC из того же "бозболезненного руководства по CRC", то получаем не один десяток лет перебора..... Может существуют более быстрые не табличные алгоритмы?

> Но там может быть не просто CRC, а смесь c функцией
> (нелинейной и/или не коррелирующей с CRC). Например можно
> посчитать CRC32, а потом сложить старшие и младшие 16 бит.
> Или взять 16 бит начитая с 3-го. Можно сделать и еще "хуже"
> - посчитать MD5 и взять какие-нибудь два байта из 16.

Маловероятно. Там стоит PIC процессор, который крутится на 1МГц тактовой, а значит выдает 0.25MIPS. Не думаю что те, кто писал софт под этот пик просались бы на ветер драгоценными миллисекундами.

Может быть такой вариант, что это даже и не CRC, а какой-то простой суррогатный алгоритм, порожденный бурной фантазией программеров.... =( Но как быть в таком случае, я тем более не знаю...
скажи чем занимается этот пик контроллер 21.12.04 12:41  
Автор: Wud <Леха> Статус: Member
Отредактировано 21.12.04 12:43  Количество правок: 1
<"чистая" ссылка>
и возможно все очень просто...
-
и откуда ты вытянул этот пакет
1




Rambler's Top100
Рейтинг@Mail.ru


  Copyright © 2001-2024 Dmitry Leonov   Page build time: 0 s   Design: Vadim Derkach