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

 
 
> Взлом протокола обмена, определение алгоритма подсчета CRC
ARV
сообщение Apr 6 2018, 13:08
Сообщение #1


Профессионал
*****

Группа: Свой
Сообщений: 1 143
Регистрация: 30-09-08
Из: Новочеркасск
Пользователь №: 40 581



Коллеги!
Прошу помочь, хотя бы советом, в решении проблемы реверс-инжиниринга ИК-протокола обмена.
Есть "фирменная" система, состоящая из приемника ИК-сигналов и кучи передатчиков сигнала. Передатчики посылают пакеты данных, в которых есть их собственный адрес и еще что-то.

Сам обмен я просниффил, оказалось достаточно просто, в пакете данных нашел поля адреса, в этом я точно уверен. Все остальные данные пока не известны, где находятся в пакете, но главное - в конце пакета (подозреваю очень сильно!) есть поле какой-то контрольной суммы. Во всяком случае, при изменении буквально 1-2 битов в пакете 4 последних байта сильно меняются, что наталкивает...

Так вот: каким способом можно вычислить алгоритм, по которому ведется подсчет этой КС? Прошивка МК недоступна, естественно... Я пробовал брутфорсить при помощи утилиты reveng, но ничего не вышло... Что посоветуете?

Вот просниффленные пакеты с трех разных передатчиков:
Код
73 07 61 = BA AF 20 05 1C 00 00 00 00 00 00 00 00 00 00 09 0A 00 00 00 00 00 00 80 00 00 00 41 41 00 3C 12 = 71 6D 62 87
73 07 61 = BA AF 40 60 18 00 00 00 00 00 00 00 00 00 00 09 0A 00 00 00 00 00 00 80 00 00 00 41 41 00 3C 12 = 3B 80 07 A9
73 07 61 = BA AF 60 00 16 00 00 00 00 00 00 00 00 00 00 09 0A 00 00 00 00 00 00 80 00 00 00 41 41 00 3C 12 = 01 6D 67 BD
73 07 61 = BA AF 20 05 12 00 00 00 00 00 00 00 00 00 00 09 0A 00 00 00 00 00 00 80 00 00 00 41 41 00 3C 12 = 71 20 62 88

72 4F 1B = BA 9C 60 00 62 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 12 = 01 30 E7 F6
72 4F 1B = BA 9C 40 62 60 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 12 = D0 13 85 05
72 4F 1B = BA 9C 60 00 5E 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 12 = 01 12 E7 CA
72 4F 1B = BA 9C 20 0B 5E 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 12 = 0B AA EC 80

73 10 07 = 25 41 20 04 1E 00 00 00 00 00 00 00 00 00 00 01 00 00 00 00 00 00 00 40 00 00 00 00 00 00 00 12 = 47 06 62 4C
73 10 07 = 25 41 40 60 1C 00 00 00 00 00 00 00 00 00 00 01 00 00 00 00 00 00 00 40 00 00 00 00 00 00 00 12 = 19 20 06 70
73 10 07 = 25 41 60 00 1A 00 00 00 00 00 00 00 00 00 00 01 00 00 00 00 00 00 00 40 00 00 00 00 00 00 00 12 = 01 6A 66 4E
73 10 07 = 25 41 20 04 18 00 00 00 00 00 00 00 00 00 00 01 00 00 00 00 00 00 00 40 00 00 00 00 00 00 00 12 = 78 0C 4E 45
знаками равенства я отделил в начале область адреса (я уверен, что это так) и в конце - область контрольной суммы (100% уверенности в назначении этих байтов нет)


--------------------
Я бы взял частями... но мне надо сразу.
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
ARV
сообщение Apr 12 2018, 10:43
Сообщение #2


Профессионал
*****

Группа: Свой
Сообщений: 1 143
Регистрация: 30-09-08
Из: Новочеркасск
Пользователь №: 40 581



Я умом понимаю сложность задачи... но надеюсь еще пока на успех.
Не знаете какой-то софт, который бы позволял как-то автоматизировать хотя бы то, что вы посоветовали (а своих идей у меня тоже не мало)? Ну, например, быстро переводить HEX-строку в бинарный вид, инвертировать, XOR-ить и т.п. манипуляции делать? Основное время уходит именно на ручное преобразование и расписывание карандашиком...

Для логического анализатора софт вроде как весьма помог, но почему разработчики этого софта не додумались делать "стек" захваченных сигналов, чтобы можно было визуально сравнивать "этот" и "тот" или "пред-предыдущий"? И экспорт тоже та еще беда: для одной программы надо строку в том виде, как я тут привожу, т.е. без префиксов 0x, а лог.анализатор пишет с префиксами, да еще в CSV-таблице... пока вручную переформатируешь...

Я, конечно, что-то пописываю сам себе в помощь, но ведь на каждый случай утилитку писать тоже не самый оптимальный вариант по усилиям и срокам. Неужели ничего готового нет?

Цитата(k155la3 @ Apr 12 2018, 13:27) *
Если ОН подразумевает шифрование (даже не пакета а только контрольного кода), то на мой взгляд разобраться не получится.
Это, будучи в отрыве от реальности, безусловно верно. Но логическое размышление не находит причин, по которым идентификатор коровы должен передавать инфу о том, активно она жует или нет, в зашифрованном виде... Да и тот факт, что адрес передается полностью в "сыром" виде (правда, старшими байтами вперед), как-то с шифрованием уже не вяжется...


--------------------
Я бы взял частями... но мне надо сразу.
Go to the top of the page
 
+Quote Post
k155la3
сообщение Apr 12 2018, 11:00
Сообщение #3


Профессионал
*****

Группа: Свой
Сообщений: 1 123
Регистрация: 8-03-09
Из: Днепр
Пользователь №: 45 848



Цитата(ARV @ Apr 12 2018, 13:36) *
Я умом понимаю сложность задачи... но надеюсь еще пока на успех.
. . .
Неужели ничего готового нет?

"Готовое" есть, но в "очень специальных местах", где сидят "специальные" люди и чтут УК.
Можете посмотреть на github.com - искать "cryptoanalyze".
----
Вы тут помянули "идеи". Еще одна sm.gif Возможно в контрольном коде используется какой либо корректирующий-исправляющий код
вроде Хемминга. Ну, а если "идеи" не требуются - то удачи sm.gif

ps вот КС в бинарном виде. Переводил вручную, возможны ошибки.
Код
0000 0001 0011 0000 1110 0111 1111 0110        01 30 E7 F6
1101 0000 0001 0011 1000 0101 0000 0101        D0 13 85 05
0000 0001 0001 0010 1110 0111 1100 1010        01 12 E7 CA
0000 1011 1010 1010 1110 1100 1000 0000        0B AA EC 80
0100 0111 0000 0110 0110 0010 0100 1100        47 06 62 4C
0001 1001 0010 0000 0000 0110 0111 0000        19 20 06 70
0000 0001 0110 1010 0110 0110 0100 1110        01 6A 66 4E
0111 1000 0000 1100 0100 1110 0100 0101        78 0C 4E 45
0111 0001 0110 1101 0110 0010 1000 0111        71 6D 62 87
0011 1011 1000 0000 0000 0111 1010 1001         3B 80 07 A9
0000 0001 0110 1101 0110 0111 1011 1101        01 6D 67 BD
0111 0001 0010 0000 0110 0010 1000 1000        71 20 62 88
0000 0001 1001 1001 0011 1000 0001 1100        0199381C
0000 0011 1101 0000 0011 1000 0111 1110         03D0387E

psps
функция С для преобразования int или long из бинарного вида в символьный
itoa(src,ascptr,2) ltoa(src,ascptr,2)

Go to the top of the page
 
+Quote Post

Сообщений в этой теме
- ARV   Взлом протокола обмена   Apr 6 2018, 13:08
- - Baser   Если CRC стандартная, то можно попробовать перебра...   Apr 6 2018, 13:35
- - adnega   Цитата(ARV @ Apr 6 2018, 16:08) в конце п...   Apr 6 2018, 13:43
- - ARV   Цитата(Baser @ Apr 6 2018, 17:35) Вообщем...   Apr 6 2018, 16:17
|- - adnega   Цитата(ARV @ Apr 6 2018, 19:17) пока что ...   Apr 6 2018, 17:00
|- - Baser   Цитата(ARV @ Apr 6 2018, 19:17) Собственн...   Apr 6 2018, 20:22
|- - k155la3   Цитата(ARV @ Apr 6 2018, 19:17) Собственн...   Apr 7 2018, 09:35
|- - ARV   Цитата(k155la3 @ Apr 7 2018, 12:35) А ест...   Apr 7 2018, 13:28
|- - Сергей Борщ   QUOTE (ARV @ Apr 7 2018, 15:28) но 4 байт...   Apr 7 2018, 15:13
|- - ARV   Цитата(Сергей Борщ @ Apr 7 2018, 18:13) Т...   Apr 8 2018, 11:42
|- - k155la3   А есть возможность проверить что эти пакеты приним...   Apr 8 2018, 13:51
|- - ARV   Цитата(k155la3 @ Apr 8 2018, 16:51) А ест...   Apr 8 2018, 18:22
|- - k155la3   Цитата(ARV @ Apr 8 2018, 21:22) Приемник ...   Apr 11 2018, 09:34
- - ARV   Цитата(Baser @ Apr 7 2018, 00:22) Сейчас,...   Apr 7 2018, 05:36
- - _pv   Первая и четвертая строки отличаются на пару бит, ...   Apr 7 2018, 05:59
- - esaulenka   Мысли на уровне ".опой чую": - передатчи...   Apr 9 2018, 19:53
|- - Baser   Цитата(esaulenka @ Apr 9 2018, 22:53) ......   Apr 10 2018, 10:11
|- - ARV   Цитата(Baser @ Apr 10 2018, 14:11) Может ...   Apr 10 2018, 10:21
|- - Flood   Цитата(ARV @ Apr 10 2018, 13:21) Проводно...   Apr 10 2018, 10:30
|- - ARV   Цитата(Flood @ Apr 10 2018, 14:30) Часто ...   Apr 10 2018, 10:55
- - ARV   Я набрал еще пакетов для статистики. Выяснилось, ч...   Apr 10 2018, 07:51
- - vesago   Случаем не для буренок таги? https://electronix.ru...   Apr 10 2018, 18:01
- - ARV   Для них, родимых. Я продвинулся куда дальше всех, ...   Apr 10 2018, 18:29
|- - vesago   Однако. Не думал, что кто-то еще в такой области р...   Apr 10 2018, 20:01
|- - ARV   Цитата(vesago @ Apr 11 2018, 00:01) Но пр...   Apr 11 2018, 04:22
- - vesago   В таге у меня стоял MSP430. Я пробовал подцепиться...   Apr 11 2018, 06:01
|- - ARV   Цитата(vesago @ Apr 11 2018, 10:01) В таг...   Apr 11 2018, 08:54
|- - Baser   Цитата(vesago @ Apr 11 2018, 09:01) В таг...   Apr 11 2018, 09:00
|- - vesago   Цитата(Baser @ Apr 11 2018, 12:00) А како...   Apr 11 2018, 09:17
|- - Baser   Цитата(vesago @ Apr 11 2018, 12:17) У мен...   Apr 11 2018, 09:57
|- - k155la3   Цитата(Baser @ Apr 11 2018, 12:57) . . . ...   Apr 11 2018, 10:42
- - vesago   Во как на объекте выглядит   Apr 11 2018, 09:41
- - ARV   К сожалению, семейство MSP430 для меня абсолютно н...   Apr 11 2018, 11:41
|- - k155la3   Цитата(ARV @ Apr 11 2018, 14:41) К сожале...   Apr 11 2018, 13:03
- - ARV   Способы выделения полей в пакете в общих чертах мн...   Apr 11 2018, 13:11
|- - k155la3   Цитата(ARV @ Apr 11 2018, 16:11) . . . И...   Apr 11 2018, 15:16
|- - halfdoom   Цитата(ARV @ Apr 11 2018, 16:11) Остается...   Apr 12 2018, 07:23
|- - k155la3   Цитата(ARV @ Apr 11 2018, 16:11) . . . . ...   Apr 12 2018, 09:27
- - ARV   При помощи reveng я пробовал перебор (т.е. брутфор...   Apr 12 2018, 08:29
|- - Сергей Борщ   QUOTE (ARV @ Apr 12 2018, 10:29) При помо...   Apr 12 2018, 09:04
- - ARV   Так там и нет изменения пары битов, там все 4 байт...   Apr 12 2018, 09:13
- - _pv   последние два байта - тупо xor от первых 18ти 16ти...   Apr 12 2018, 10:44
|- - ARV   Цитата(_pv @ Apr 12 2018, 14:44) последни...   Apr 12 2018, 10:54
- - ARV   Идеи требуются. Но еще сильнее требуется какое-то ...   Apr 12 2018, 11:04
- - _pv   четвертый с конца байт - не КС, есть пакеты где то...   Apr 12 2018, 11:22
|- - k155la3   Цитата(_pv @ Apr 12 2018, 14:22) . . . а ...   Apr 12 2018, 11:53
|- - _pv   Цитата(k155la3 @ Apr 12 2018, 18:53) Хемм...   Apr 12 2018, 12:06
|- - k155la3   Цитата(_pv @ Apr 12 2018, 15:06) под один...   Apr 12 2018, 12:54
- - _pv   7310072541 2004 46 0000000000000000000000008240C10...   Apr 12 2018, 13:02
- - k155la3   А ТС стопроцентно уверен, что пакеты "просниф...   Apr 12 2018, 13:07
- - ARV   Только что проверил на всех имеющихся на сегодня д...   Apr 12 2018, 13:17
|- - _pv   Цитата(ARV @ Apr 12 2018, 20:17) Набросал...   Apr 12 2018, 13:26
- - vesago   Да, у них обычный UART 4800. По крайней мере ридер...   Apr 12 2018, 13:23
- - k155la3   А как передатчик узнает, что ему надо передать инф...   Apr 12 2018, 18:06
- - ARV   Цитата(k155la3 @ Apr 12 2018, 21:06) А ка...   Apr 12 2018, 18:56


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

 


RSS Текстовая версия Сейчас: 26th June 2025 - 17:38
Рейтинг@Mail.ru


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