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

    

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

Идеи требуются.

Но еще сильнее требуется какое-то обсуждение, потому что в одну голову думать - с ума сходишь, а толку ноль. А единомышленников нет вокруг :(

_pv вон какое классное предложение произнес: все ТУПО! причем, если посмотреть, то 5-й байт есть XOR предыдущих 4-х. теперь логично предположить, что есть третий с конца байт - и дело в шляпе! тут уже и перебором можно взять приемник на измор :)

лишь бы _pv оказался прав на всех пакетах всех транспондеров...

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


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

четвертый с конца байт - не КС, есть пакеты где только он и отличается

7310072541 2004 46 0000000000000000000000008240C1000041824244404242003F12 4B 09 E466

7310072541 2004 46 0000000000000000000000008240C1000041824244404242003F12 4C 0E E461

 

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

 

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


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

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

Хемминг код работает на базе XOR "зигзагом" по разрядам.

 

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


Ссылка на сообщение
Поделиться на другие сайты
Хемминг код работает на базе XOR "зигзагом" по разрядам.

под один байт Хэмминга только 30 байт данных влазит,

да и зачем тогда считать 16ти битный xor при наличии Хэмминга? он ведь и обнаруживает ошибки лучше (двойные на том же месте простой xor пропустит) да ещё и исправляет.

 

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


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

да и зачем тогда считать 16ти битный xor при наличии Хэмминга? он ведь и обнаруживает ошибки лучше (двойные на том же месте простой xor пропустит) да ещё и исправляет.

Канал открытый ИК, с гарантированной вероятностью наличия помех. Эту версию можно проверить, если "дернуть" один бит в корректном пакете

и передать на приемник. Если ошибки не произойдет - значит корректирует и надо разбираться какой именно алгоритм используется.

Подробности по Хеммингу уже забыл, в прошлом веке дело было.

 

 

 

 

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


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

7310072541 2004 46 0000000000000000000000008240C1000041824244404242003F12 4B 09 E466

7310072541 2004 46 0000000000000000000000008240C1000041824244404242003F12 4C 0E E461

 

вот пакеты с минимальными отличиями, 4B->4C <=> 09 -> 0E разница как раз в младших трёх битах что там, что там.

Хэмминг бы другие биты тоже перевернул.

хотя есть и другие пакеты где отличий в старших битах нет вообще, а этот третий с конца байт отличается и там тоже, то есть не просто xor, а ещё с чем то.

 

 

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


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

А ТС стопроцентно уверен, что пакеты "проснифферены" без ошибок ? (проверить-то их пока невозможно без КС) ?

 

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


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

Только что проверил на всех имеющихся на сегодня дампах - при выбрасывании третьего с конца байта XOR двухбайтных слов всегда 0000!

Предположение _pv полностью подтвердилось!

 

А ТС стопроцентно уверен, что пакеты "проснифферены" без ошибок ? (проверить-то их пока невозможно без КС) ?
Вы считаете, можно ошибиться в снятии протокола с выхода ИК-приемника типа TSOP при помощи логического анализатора? Снятый поток импульсов крайне удачно ложится на традиционный UART 4800 :) и более того, адрес в этом пакете на самом деле тот, который написан на транспондере, следовательно, протокол просниффен корректно :)

 

 

 

Тут еще в голову одна мысль пришла... размер пакета 39 байт - какая-то странная цифра... чтобы предположение _pv работало, надо 1 байт выкидывать. Но 39 делится на 3 - буду пробовать трехбайтные XOR-ы в разных комбинациях. Есть в этом смысл по вашему мнению или я снова тупить начинаю?

 

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

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


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

Да, у них обычный UART 4800. По крайней мере ридер в сети на ней общается. Инверсный уарт.

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


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

730761BAAF 2005 38 000000000000000000000000408080000000000000000000000012 72 A8 6A57

730761BAAF 2005 36 000000000000000000000000408080000000000000000000000012 73 29 6A58

 

данные отличаются только в четырёх младших битах, бит0: 2->3 бит1-3: 8->6

никаким xorом это не может изменить старшие биты A8->29

 

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


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

А как передатчик узнает, что ему надо передать инф. на приемник ?

Есть ли обратный канал связи, от приемника на передатчик ?

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


Ссылка на сообщение
Поделиться на другие сайты
А как передатчик узнает, что ему надо передать инф. на приемник ?

Есть ли обратный канал связи, от приемника на передатчик ?

Есть: в приемнике есть газоразрядная импульсная лампа типа ИФК-120, она даёт вспышку, которая запускает передачу передатчика. У него есть фотодиоды, которые на эту вспышку реагируют. Никакой информации в сторону передатчика не передается, только один импульс.

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


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

Для публикации сообщений создайте учётную запись или авторизуйтесь

Вы должны быть пользователем, чтобы оставить комментарий

Создать учетную запись

Зарегистрируйте новую учётную запись в нашем сообществе. Это очень просто!

Регистрация нового пользователя

Войти

Уже есть аккаунт? Войти в систему.

Войти