реклама на сайте
подробности

 
 
2 страниц V   1 2 >  
Reply to this topicStart new topic
TONAL
сообщение Oct 16 2007, 15:36
Сообщение #1


Участник
*

Группа: Новичок
Сообщений: 19
Регистрация: 16-10-07
Пользователь №: 31 405



Доброго времени суток All!

Имеется некоторый контроллер декодирующий сигналы от местной клавиатуры, пульта ДУ и передающий соответствующие пакеты через USB мост в PC.
Каждый пакет состоит из шапки-3байта+данные-2байта+данные-2байта(повтор)+СRC.

Пакет CRC

53 4B 08 E0 00 E0 00 - AB
53 4B 08 E0 02 E0 02 - 3A
53 4B 08 E0 01 E0 01 - 6F
53 4B 08 E0 08 E0 08 - DD
53 4B 08 E0 10 E0 10 - 47
53 4B 08 E0 04 E0 04 - 90
53 4B 08 E0 24 E0 24 - 51
53 4B 08 E0 20 E0 20 - 6A
53 4B 08 E0 40 E0 40 - 30

53 4D 08 00 01 00 01 - DD

53 49 08 10 00 10 00 - D1
53 49 08 10 08 10 08 - A7
53 49 08 11 00 11 00 - 24
53 49 08 11 08 11 08 - 52
53 49 08 0D 00 0D 00 - EB
53 49 08 0D 08 0D 08 - 9D
53 49 08 00 00 00 00 - 06
53 49 08 00 08 00 08 - 70
53 49 08 01 00 01 00 - F3
53 49 08 01 08 01 08 - 85
53 49 08 02 00 02 00 - F5
53 49 08 02 08 02 08 - 83
53 49 08 03 00 03 00 - 00
53 49 08 03 08 03 08 - 76
53 49 08 04 00 04 00 - F9
53 49 08 04 08 04 08 - 8F
53 49 08 05 00 05 00 - 0C
53 49 08 05 08 05 08 - 7A
53 49 08 06 00 06 00 - 0A
53 49 08 06 08 06 08 - 7C
53 49 08 07 00 07 00 - FF
53 49 08 07 08 07 08 - 89
53 49 08 08 00 08 00 - E1
53 49 08 08 08 08 08 - 97
53 49 08 09 00 09 00 - 14
53 49 08 09 08 09 08 - 62

Хотя есть все основания полагать что используется класический алгоритм СRC8 с неизвестным полиномом и начальным заполнением - вследствие линейности:

53 49 08 01 00 01 00 - F3
53 49 08 02 00 02 00 - F5
XOR 00 00 00 03 00 03 00 - 06 !!!

53 49 08 00 00 00 00 - 06
53 49 08 03 00 03 00 - 00
XOR 00 00 00 03 00 03 00 - 06 !!!


Но перебор всех возможных полиномов и начальных заполнений по процедуре:

BYTE crc8_sft_buf(BYTE * buf, BYTE poly8, BYTE crc, BYTE len)
{
for (BYTE i = 0; i < len; i++)
{
crc ^= buf[i];
for (BYTE j = 0; j < 8; j++ )
crc = crc & 0x80 ? (crc << 1) ^ poly8 : crc << 1;
// crc = crc & 0x01 ? (crc >> 1) ^ poly8 : crc >> 1;
}
return crc;
}
Не принес результата sad.gif

Ранее здесь подымалась подобная тема (http://electronix.ru/forum/index.php?showtopic=22188&st=0), но до победы как я понял не дошло.

Надеюсь на помощь, заранее спасибо!
Go to the top of the page
 
+Quote Post
TONAL
сообщение Oct 16 2007, 22:13
Сообщение #2


Участник
*

Группа: Новичок
Сообщений: 19
Регистрация: 16-10-07
Пользователь №: 31 405



+
Приведенная таблица пакетов является почти полной, то есть это почти все команды(системная клавиатура ДУ не используются).
Соответственно возможности "проверить любые пакеты" для построения "хорошей" таблицы нет sad.gif
00 00 00 00 00 00 00 - seed sad.gif
00 00 00 00 00 00 01 - pol8 ^ seed sad.gif

Но используя линейные комбинации (точно так же как указывалось выше) можно сильно "прорядить" таблицу
Попробуем так

00 00 00 00 01 00 01 - C4
00 00 00 00 02 00 02 - 91
00 00 00 00 04 00 04 - 3B
00 00 00 00 08 00 08 - 76
00 00 00 00 10 00 10 - EC
00 00 00 00 20 00 20 - C1
00 00 00 00 40 00 40 - 9B
00 00 00 00 80 00 80 - ?? нема де взять!!!
00 00 00 01 00 01 00 - F5
00 00 00 02 00 02 00 - F3
00 00 00 04 00 04 00 - FF
00 00 00 08 00 08 00 - E7
00 00 00 10 00 10 00 - D7

При более детальном рассмотрении этой таблицы можно обнаружить интересные свойства алгоритма
Смотреть слева только расположение пакетов, справа XOR треугольник A^B=C

00 00 00 00 01 00 01 - C4
00 00 00 00 04 00 04 - 3B
00 00 00 04 00 04 00 - FF C4^3B=FF

00 00 00 00 02 00 02 - 91
00 00 00 00 08 00 08 - 76
00 00 00 08 00 08 00 - E7 91^76=E7

00 00 00 00 04 00 04 - 3B
00 00 00 00 10 00 10 - EC
00 00 00 10 00 10 00 - D7

Если экстраполировать эту закономерность расположения пакетов для получения прогноза то получим

00 00 00 00 08 00 08 - 76
00 00 00 00 20 00 20 - C1
00 00 00 20 00 20 00 - B7 прогноз!!!

00 00 00 00 10 00 10 - EC
00 00 00 00 40 00 40 - 9B
00 00 00 40 00 40 00 - 77 прогноз!!!

Продолжаем

00 00 00 20 00 20 00 - B7
00 00 00 40 00 40 00 - 77
00 00 00 80 00 80 00 - ?? нет прогноза!!!
00 00 01 00 01 00 00 - 6E
00 00 02 00 02 00 00 - ?? тем более нема де взять!!!
00 00 04 00 04 00 00 - 0A
00 00 08 00 08 00 00 - 14
00 00 10 00 10 00 00 - 28
00 00 20 00 20 00 00 - 50
00 00 40 00 40 00 00 - A0
00 00 80 00 80 00 00 - ?? нема!!!


В результате получается

00 00 00 00 01 00 01 - C4
00 00 00 00 02 00 02 - 91
00 00 00 00 04 00 04 - 3B
00 00 00 00 08 00 08 - 76
00 00 00 00 10 00 10 - EC
00 00 00 00 20 00 20 - C1
00 00 00 00 40 00 40 - 9B
00 00 00 00 80 00 80 - ??
00 00 00 01 00 01 00 - F5
00 00 00 02 00 02 00 - F3
00 00 00 04 00 04 00 - FF
00 00 00 08 00 08 00 - E7
00 00 00 10 00 10 00 - D7
00 00 00 20 00 20 00 - B7
00 00 00 40 00 40 00 - 77
00 00 00 80 00 80 00 - ??
00 00 01 00 01 00 00 - 6E
00 00 02 00 02 00 00 - ??
00 00 04 00 04 00 00 - 0A
00 00 08 00 08 00 00 - 14
00 00 10 00 10 00 00 - 28
00 00 20 00 20 00 00 - 50
00 00 40 00 40 00 00 - A0
00 00 80 00 80 00 00 - ??

Интересно достаточно этой информации для проведения кокого нибудь дальнейшего анализа?
Если да, то кокого? Если нет, то почему!

Вообщето совсем не сложно хранить в памяти всю таблицу, но очень интересно КАК это работает.

Сообщение отредактировал TONAL - Oct 16 2007, 22:16
Go to the top of the page
 
+Quote Post
TONAL
сообщение Oct 17 2007, 09:55
Сообщение #3


Участник
*

Группа: Новичок
Сообщений: 19
Регистрация: 16-10-07
Пользователь №: 31 405



Можно спрогнозировать еще один такой елемент, дальше опять дырка.

00 00 00 40 00 40 00 - 77
00 00 01 00 01 00 00 - 6E
00 01 00 01 00 00 00 - 19 прогноз!!!

Имеющиеся дырки закрыть пока нечем sad.gif
Через какую еще мясорубку можно пропустить имеющиеся данные 1111493779.gif

Сообщение отредактировал TONAL - Oct 17 2007, 10:03
Go to the top of the page
 
+Quote Post
Ivan_Petrov
сообщение Oct 17 2007, 11:13
Сообщение #4


Участник
*

Группа: Свой
Сообщений: 43
Регистрация: 12-10-07
Пользователь №: 31 293



То что вы привели в качестве прогноза, свойственно для операций над GF (+*).

Уточните пожалуйста, эти данные идут по USB или идут от пульта до переходника?
Go to the top of the page
 
+Quote Post
TONAL
сообщение Oct 17 2007, 11:33
Сообщение #5


Участник
*

Группа: Новичок
Сообщений: 19
Регистрация: 16-10-07
Пользователь №: 31 405



Цитата(Ivan_Petrov @ Oct 17 2007, 14:13) *
То что вы привели в качестве прогноза, свойственно для операций над GF (+*).

Какие еще характерные свойства можно использавать для анализа?
Если выполняются свойства операций над GF (+*), то это CRC?
Как же выковырять образующий полином?


Цитата(Ivan_Petrov @ Oct 17 2007, 14:13) *
Уточните пожалуйста, эти данные идут по USB или идут от пульта до переходника?

Данные идут по СОМ порту(ТТЛ) от контроллера в USB мост.
Пульт ДУ обычный инфракрасный от телевизора с кодировкой RC5.

Если посмотреть на таблицу пакетов

Клавиатура
53 4B 08 E0 00 E0 00 - AB
53 4B 08 E0 02 E0 02 - 3A
53 4B 08 E0 01 E0 01 - 6F
53 4B 08 E0 08 E0 08 - DD
53 4B 08 E0 10 E0 10 - 47
53 4B 08 E0 04 E0 04 - 90
53 4B 08 E0 24 E0 24 - 51
53 4B 08 E0 20 E0 20 - 6A
53 4B 08 E0 40 E0 40 - 30

Сброс
53 4D 08 00 01 00 01 - DD

ДУ
53 49 08 00 00 00 00 - 06
53 49 08 00 08 00 08 - 70
53 49 08 01 00 01 00 - F3
53 49 08 01 08 01 08 - 85
53 49 08 02 00 02 00 - F5
53 49 08 02 08 02 08 - 83
53 49 08 03 00 03 00 - 00
53 49 08 03 08 03 08 - 76
53 49 08 04 00 04 00 - F9
53 49 08 04 08 04 08 - 8F
53 49 08 05 00 05 00 - 0C
53 49 08 05 08 05 08 - 7A
53 49 08 06 00 06 00 - 0A
53 49 08 06 08 06 08 - 7C
53 49 08 07 00 07 00 - FF
53 49 08 07 08 07 08 - 89
53 49 08 08 00 08 00 - E1
53 49 08 08 08 08 08 - 97
53 49 08 09 00 09 00 - 14
53 49 08 09 08 09 08 - 62
53 49 08 0D 00 0D 00 - EB
53 49 08 0D 08 0D 08 - 9D
53 49 08 10 00 10 00 - D1
53 49 08 10 08 10 08 - A7
53 49 08 11 00 11 00 - 24
53 49 08 11 08 11 08 - 52

то можно увидеть что для команд клавиатуры и Пульта ДУ разные шапки.
Go to the top of the page
 
+Quote Post
Ivan_Petrov
сообщение Oct 17 2007, 11:43
Сообщение #6


Участник
*

Группа: Свой
Сообщений: 43
Регистрация: 12-10-07
Пользователь №: 31 293



Цитата(TONAL @ Oct 17 2007, 15:33) *
Какие еще характерные свойства можно использавать для анализа?
Если выполняются свойства операций над GF (+*), то это CRC?
Как же выковырять образующий полином?


Я могу только дополнить операции над начальным состоянием которые не испортят зависимость.
1. Булевое сложение (XOR) с одинаковым значением на каждом шаге.
2. Перестановка бит местами.

Также здесь может быть не CRC8, а например CRC16 или CRC32 с уплотнением или отсечкой избыточных бит.

Цитата(TONAL @ Oct 17 2007, 15:33) *
Данные идут по СОМ порту(ТТЛ) от контроллера в USB мост.
Пульт ДУ обычный инфракрасный от телевизора с кодировкой RC5.


Может проще выложить програмный модуль PC, который обрабатывает этот поток, дизасемблирование и обратное востановление алгоритма будет гораздо быстрее.
Go to the top of the page
 
+Quote Post
TONAL
сообщение Oct 17 2007, 12:03
Сообщение #7


Участник
*

Группа: Новичок
Сообщений: 19
Регистрация: 16-10-07
Пользователь №: 31 405



Цитата(Ivan_Petrov @ Oct 17 2007, 14:43) *
Я могу только дополнить операции над начальным состоянием которые не испортят зависимость.
1. Булевое сложение (XOR) с одинаковым значением на каждом шаге.
2. Перестановка бит местами.

Также здесь может быть не CRC8, а например CRC16 или CRC32 с уплотнением или отсечкой избыточных бит.

А какие в моем случае возможны(если возможны) варианты реверса?

Цитата(Ivan_Petrov @ Oct 17 2007, 14:43) *
Может проще выложить програмный модуль PC, который обрабатывает этот поток, дизасемблирование и обратное востановление алгоритма будет гораздо быстрее.

Програмный модуль работает под Linux 07.gif
Самый быстрый и простой вариант я уже сделал. Заграбил целиком таблицу пакетов, зашил ее в свой контроллер АТ89с2051 (оригинал AVR) вместе с алгоритмом работы и все работает!!!

Но хочется научится формировать пакеты, а не считывать их из таблицы
Go to the top of the page
 
+Quote Post
VslavX
сообщение Oct 17 2007, 12:13
Сообщение #8


embarrassed systems engineer
*****

Группа: Свой
Сообщений: 1 083
Регистрация: 24-10-05
Из: Осокорки
Пользователь №: 10 038



Цитата(TONAL @ Oct 17 2007, 15:03) *
А какие в моем случае возможны(если возможны) варианты реверса?

Если это CRC-8,то всего 512 вариантов полинома (или 256, если старший бит всегда единичный) , можно просто попробовать перебором.
Go to the top of the page
 
+Quote Post
TONAL
сообщение Oct 17 2007, 12:17
Сообщение #9


Участник
*

Группа: Новичок
Сообщений: 19
Регистрация: 16-10-07
Пользователь №: 31 405



Цитата(VslavX @ Oct 17 2007, 15:13) *
Если это CRC-8,то всего 512 вариантов полинома (или 256, если старший бит всегда единичный) , можно просто попробовать перебором.


Перебором уже пробовал(в самом начале темы), причем двигал как влево так и вправо.
Может можно как то по другому?
Go to the top of the page
 
+Quote Post
Ivan_Petrov
сообщение Oct 17 2007, 12:27
Сообщение #10


Участник
*

Группа: Свой
Сообщений: 43
Регистрация: 12-10-07
Пользователь №: 31 293



Цитата(TONAL @ Oct 17 2007, 16:03) *
А какие в моем случае возможны(если возможны) варианты реверса?

Ну очень сильно бы помогли пакеты в которых изменяется только последний байт,
либо те, у которых CRC одинаковый. Но таких пакетов нужно не 1 пара.

Цитата(TONAL @ Oct 17 2007, 16:03) *
Програмный модуль работает под Linux 07.gif

Выложи куда нибудь. (можно на рапиду под паролем).
Если для USB устройства есть дрова, то тоже выкладывай. Если используется стандартный класс устройства, например HID, то укажи какой.
Go to the top of the page
 
+Quote Post
TONAL
сообщение Oct 17 2007, 12:45
Сообщение #11


Участник
*

Группа: Новичок
Сообщений: 19
Регистрация: 16-10-07
Пользователь №: 31 405



Цитата(Ivan_Petrov @ Oct 17 2007, 15:27) *
Ну очень сильно бы помогли пакеты в которых изменяется только последний байт,

Таких вообще нема sad.gif

Цитата(Ivan_Petrov @ Oct 17 2007, 15:27) *
либо те, у которых CRC одинаковый. Но таких пакетов нужно не 1 пара.

К сожалению много таких пакетов получить не удается sad.gif

Цитата(Ivan_Petrov @ Oct 17 2007, 15:27) *
Выложи куда нибудь. (можно на рапиду под паролем).
Если для USB устройства есть дрова, то тоже выкладывай. Если используется стандартный класс устройства, например HID, то укажи какой.

Как его (модуль) оттуда вытащить?
Этот линукс сам грузится сам стартует программу(без моего участия)
Причем хавает разные типы мостов (FTDI232RL, CP2101, OTI6858, Prolifik2303) других не прбовал.
Go to the top of the page
 
+Quote Post
Ivan_Petrov
сообщение Oct 17 2007, 13:08
Сообщение #12


Участник
*

Группа: Свой
Сообщений: 43
Регистрация: 12-10-07
Пользователь №: 31 293



Цитата(TONAL @ Oct 17 2007, 16:45) *
Как его (модуль) оттуда вытащить?
Этот линукс сам грузится сам стартует программу(без моего участия)


Имя программы известно?
как вытащить? wacko.gif
Дак запустить консоль и вытащить, или подмонтировать диск к другому линуху, и вытащить с ФС.
Go to the top of the page
 
+Quote Post
TONAL
сообщение Oct 17 2007, 13:10
Сообщение #13


Участник
*

Группа: Новичок
Сообщений: 19
Регистрация: 16-10-07
Пользователь №: 31 405



Цитата(Ivan_Petrov @ Oct 17 2007, 16:08) *
Имя программы известно?
как вытащить? wacko.gif
Дак запустить консоль и вытащить, или подмонтировать диск к другому линуху, и вытащить с ФС.

Имя программы неизвестно(можно тольео догадыватся).

Имеется образ этого линуха вместе с прогой ВПЕРЕМЕШКУ!!! 200MB
тоесть я могу его просматривать но не знаю как посмотреть авторан, и т.д.

Но всетаки ломать со стороны РС прогу не тот интерес, я ж говорю что уже "клонировал" контроллер методом черного ящика(оригинал AVR -> клон MCS51) работает отлично но...

Сообщение отредактировал TONAL - Oct 17 2007, 13:33
Go to the top of the page
 
+Quote Post
Ivan_Petrov
сообщение Oct 17 2007, 13:30
Сообщение #14


Участник
*

Группа: Свой
Сообщений: 43
Регистрация: 12-10-07
Пользователь №: 31 293



Цитата(TONAL @ Oct 17 2007, 17:10) *
Имя программы неизвестно(можно тольео догадыватся).

Имеется образ этого линуха вместе с прогой ВПЕРЕМЕШКУ!!! 200MB
тоесть я могу его просматривать но не знаю как посмотреть авторан, и т.д.


Образ тоже пойдет.
Азтозагрузка делается через init обычно, и прилегающие к нему скрипты.
Go to the top of the page
 
+Quote Post
TONAL
сообщение Oct 17 2007, 14:46
Сообщение #15


Участник
*

Группа: Новичок
Сообщений: 19
Регистрация: 16-10-07
Пользователь №: 31 405



Ну как оно???

Сообщение отредактировал TONAL - Oct 17 2007, 15:40
Go to the top of the page
 
+Quote Post

2 страниц V   1 2 >
Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 23rd June 2025 - 08:32
Рейтинг@Mail.ru


Страница сгенерированна за 0.0149 секунд с 7
ELECTRONIX ©2004-2016