Перейти к содержанию
    

Взлом протокола обмена

Я набрал еще пакетов для статистики. Выяснилось, что пакеты передатчиков, которые полежали два дня сильно отличаются от ранее полученных, т.е. пока девайсы спят, они живут. Но каких-то кардинальных знаний новые пакеты не прибавили. Каждая строка в нижеследующих дампах - это отдельный пакет, интервалы между передачами пакетов примерно одинаковые - секунд 15-20.

7310072541    2004 48    0000000000000000000000008240C1000041824244404242003F12    4B89E468
7310072541    4060 48    0000000000000000000000008240C1000041824244404242003F12    47778004
7310072541    6000 48    0000000000000000000000008240C1000041824244404242003F12    0166E062
7310072541    2004 48    0000000000000000000000008240C1000041824244404242003F12    4B89E468
7310072541    4060 48    0000000000000000000000008240C1000041824244404242003F12    47778004
7310072541    6000 46    0000000000000000000000008240C1000041824244404242003F12    01E6E06C
7310072541    2004 46    0000000000000000000000008240C1000041824244404242003F12    4B09E466
7310072541    4060 46    0000000000000000000000008240C1000041824244404242003F12    47F7800A
7310072541    6000 46    0000000000000000000000008240C1000041824244404242003F12    01E6E06C
7310072541    2004 46    0000000000000000000000008240C1000041824244404242003F12    4C0EE461

724F1BBA9C    6100 10    0000000000000001000002000081840000000000000000005C3C12    01FD3D39
724F1BBA9C    210B 10    0000000000000001000002000081840000000000000000005C3C12    0C423674
724F1BBA9C    4162 10    0000000000000001000002000081840000000000000000005C3C12    FD795FE5
724F1BBA9C    6100 10    0000000000000001000002000081840000000000000000005C3C12    01FD3D39
724F1BBA9C    210B 10    0000000000000001000002000081840000000000000000005C3C12    0C423674
724F1BBA9C    4162 10    0000000000000001000002000081840000000000000000005C3C12    FD795FE5
724F1BBA9C    6100 10    0000000000000001000002000081840000000000000000005C3C12    01FD3D39
724F1BBA9C    210B 10    0000000000000001000002000081840000000000000000005C3C12    0D433675
724F1BBA9C    4162 10    0000000000000001000002000081840000000000000000005C3C12    FD795FE5
724F1BBA9C    6100 10    0000000000000001000002000081840000000000000000005C3C12    01FD3D39

730761BAAF    2005 38    000000000000000000000000408080000000000000000000000012    72A86A57
730761BAAF    4060 38    000000000000000000000000408080000000000000000000000012    699B0F2C
730761BAAF    6000 38    000000000000000000000000408080000000000000000000000012    01A46F64
730761BAAF    2005 38    000000000000000000000000408080000000000000000000000012    72A86A57
730761BAAF    4060 38    000000000000000000000000408080000000000000000000000012    699B0F2C
730761BAAF    6000 38    000000000000000000000000408080000000000000000000000012    01A46F64
730761BAAF    2005 36    000000000000000000000000408080000000000000000000000012    73296A58
730761BAAF    4060 36    000000000000000000000000408080000000000000000000000012    691B0F22
730761BAAF    6000 36    000000000000000000000000408080000000000000000000000012    01246F6A
730761BAAF    2005 36    000000000000000000000000408080000000000000000000000012    73296A58

734F33656A    2000 76    7B7B7B7B7B7B7B7B7B7B7B000C0C0C0C0C0C0C0C0C0C0C0C000012    01073806
734F33656A    4000 6C    7B7B7B7B7B7B7B7B7B7B7B000C0C0C0C0C0C0C0C0C0C0C0C000012    03D0387E
734F33656A    600C 6C    7B7B7B7B7B7B7B7B7B7B7B000C0C0C0C0C0C0C0C0C0C0C0C000012    830234DE
734F33656A    2000 6C    7B7B7B7B7B7B7B7B7B7B7B000C0C0C0C0C0C0C0C0C0C0C0C000012    0199381C
734F33656A    4000 6C    7B7B7B7B7B7B7B7B7B7B7B000C0C0C0C0C0C0C0C0C0C0C0C000012    03D0387E
734F33656A    600C 6C    7B7B7B7B7B7B7B7B7B7B7B000C0C0C0C0C0C0C0C0C0C0C0C000012    830234DE
734F33656A    2000 6C    7B7B7B7B7B7B7B7B7B7B7B000C0C0C0C0C0C0C0C0C0C0C0C000012    0199381C
734F33656A    4000 6C    7B7B7B7B7B7B7B7B7B7B7B000C0C0C0C0C0C0C0C0C0C0C0C000012    03D0387E
734F33656A    600C 6A    7B7B7B7B7B7B7B7B7B7B7B000C0C0C0C0C0C0C0C0C0C0C0C000012    830734D8
734F33656A    2000 6A    7B7B7B7B7B7B7B7B7B7B7B000C0C0C0C0C0C0C0C0C0C0C0C000012    029F3819

Однозначно очевидно, что первые 5 байт - это адрес передатчика, хотя значащих байт там только 3 и то без старших 2 бит. XOR этих 5-и байтов всегда равен 00, т.е. последний байт - это XOR-КС, а предыдущий - какой-то довесок, подгоняющий КС до нуля.

 

Следующие 2 байта абсолютно закономерно от передачи к передаче меняются попарно и по кругу, т.е. каждая третья передача будет иметь те же самые значения в этих байтах. Закономерность явно есть, но что это может значить? передавать 3 варианта по кругу - зачем?!

 

Следующий байт от передачи к передаче имеет тенденцию к закономерному уменьшению, но после длительной паузами между передачами значение байта снова возрастает (по показанным дампам это не видно, но это так) - подозреваю, что это напряжение на литиевой батарейке.

 

Дальше - неизвестно что, но всегда заканчивается на 12. Честно говоря, это как-то настораживает...

 

Последние 4 байта тоже выявили некую закономерность: четвертому от конца байту всегда в пределах одного и того же передатчика соответствует четко определенное значение второго от конца байта, аналогично и для следующей пары последних байт.

 

Но все эти закономерности пока никак не помогли мне понять, как же, блин, считаются эти КС... Пробовал при помощи reveng подбирать полиномы - ни для 16-битных, ни тем более для 32-битных не находится. пробовал брать часть пакета без адреса - тот же результат. пробовал брать без 1 или 2 последних байт, пробовал в последних 4 байтах удалять через 1, т.е. оставлять 1-3 или 2-4 байты - нулевой результат :(

 

Сегодня вечером планирую приступить к генерации пакетов самостоятельно, и буду смотреть, как отреагирует девайс. Хуже всего то, что девайс тоже закрытый, и либо показывает часть адреса передатчика, либо показывает ошибку. Судить об остальных частях пакета нет возможности :(

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

... и две двухбайтовые КС одна в другой.

Может быть это инкапсуляция одного протокола другим? Типа был у них проводной протокол, запихнули его внутрь ИК-протокола. Тогда может быть две двухбайтовые контрольные суммы в конце, относящиеся к данным разной длины.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Может быть это инкапсуляция одного протокола другим? Типа был у них проводной протокол, запихнули его внутрь ИК-протокола. Тогда может быть две двухбайтовые контрольные суммы в конце, относящиеся к данным разной длины.

Проводного точно не было - не тот тип устройства, чтобы иметь проводной интерфейс. Хотя теоретически алгоритмы могли быть использованы откуда угодно...

Ума не приложу, как расколупать все это...

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Проводного точно не было - не тот тип устройства, чтобы иметь проводной интерфейс. Хотя теоретически алгоритмы могли быть использованы откуда угодно...

Ума не приложу, как расколупать все это...

Часто проще изучить прошивку устройства, чем заниматься подбором.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Часто проще изучить прошивку устройства, чем заниматься подбором.

Вы всерьез верите, что она незалоченная?!

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Для них, родимых.

Я продвинулся куда дальше всех, но все равно уперся в КС :(

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Однако. Не думал, что кто-то еще в такой области работает :) Мне нужно было слепить эмулятор ридера этих тагов, чтобы вместо них системе скармливать RFID какие. Главное, чтобы ID коровы отбивался. Я на атмеге смастерил аппарат, который передавал на шину блок данных. К сожалению с контрольной суммой не разобрался. Поэтому были заготовки, слитые с реальных тагов. Эти сэмплы и передавал. С виду контрольная сумма линейная. Не полиномы-хэши. Но проект заглох, поэтому дальше не разбирался.

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Но проект заглох, поэтому дальше не разбирался.

Не заглох, как видите... Всё ещё надеюсь разломать протокол...

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

В таге у меня стоял MSP430. Я пробовал подцепиться - залочен был. Аналитически, подбором алгоритма чисто, тяжковато расколоть. Надо как-то заставить дивайс незначительно данные менять. Или слепить эмулятор и перебором пытаться формировать пакеты, пока не скормятся. Я, помню, тоже пытался и микрофон отпаивать, и не шевелил, а он все равно вываливал кучу измененных данных.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

В таге у меня стоял MSP430. Я пробовал подцепиться - залочен был. Аналитически, подбором алгоритма чисто, тяжковато расколоть. Надо как-то заставить дивайс незначительно данные менять. Или слепить эмулятор и перебором пытаться формировать пакеты, пока не скормятся. Я, помню, тоже пытался и микрофон отпаивать, и не шевелил, а он все равно вываливал кучу измененных данных.

У меня все то же самое, разве что я даже не пытался подключаться к контроллеру по очевидной причине защищенности. А остальное - так и есть. Данные меняются сами по себе, связи с внешним миром при этом не прослеживается. Но кое-что по формату стало понятнее... кроме КС.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

В таге у меня стоял MSP430. Я пробовал подцепиться - залочен был.

А какой тип и ревизия? У них кое-где был дырявый бутлодер, который до сих пор выпускают.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

А какой тип и ревизия? У них кое-где был дырявый бутлодер, который до сих пор выпускают.

 

У меня вот такой

 

post-1263-1523438196_thumb.jpg

 

post-1263-1523438211_thumb.jpg

 

Наверное, все-таки неподцепливался. Не вижу следов пайки. Надо будет попробовать из спортивного интереса. Может и незалочен. По всякому бывает. В последнее время я работал с 6 буржуйскими платами. Из них 4 незалочены.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Приемник пока один. Статистику по пакетам буду набирать для имеющихся передатчиков... Потом буду гондобить свой передатчик и пытаться обмануть приемник... Пока это все, что в моих силах.

1. Приемник может быть (и скорее всего для этого применения есть) селективный. (принимает только "свои" корректные пакеты).

2. Если используется даже примитивное шифрование данных (XOR по всем или части данных), то разломать будет трудно.

Под разломать я понимаю разобраться как формируется CRC или чего оно там.

CRC может считаться с динамически изменяемым стартовым значением. Эти 2 или 4 байта могут передаваться в начале пакета (не обязательно).

3. То что меняется в пакетах - возможно - температура чипа. (не помню в F149 есть или нет встроенный ADC температуры)

Онаже может использоваться для кодирования в качестве "случайного" числа.

Также возможно передается данные о состоянии батарей.

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Присоединяйтесь к обсуждению

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

Гость
Ответить в этой теме...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

×
×
  • Создать...