Обратный Инженерный Протокол Часов с использованием Wireshark

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

Я установил wireshark на сервере и опросил таймер, затем проследил за потоком tcp, чтобы я мог видеть все данные, которые были отправлены туда и обратно, и я вижу, что он выдает: .00P. на порте 3001 часов времени часы затем отвечают всеми ударами.

Я попытался использовать putty и подключиться к порту 3001 и скопировать и вставить эту команду, однако ничего не было возвращено, затем я понял, что периоды в команде - потому что мой редактор не может отображать фактические данные, которые в блокноте выглядят как обратные буквы L.

В любом случае, как лучше всего попытаться отправить эту команду, как она есть в двоичном файле, который я сохранил из wireshark, есть ли способ отправить пакет, содержащий данные из файла, на таймер и как-то записать результаты?

2 ответа

Трудно сказать что-либо из одного пакета - довольно быстрый способ:

... заменить часы один раз в ночное время:

например, настроить Linux с тем же IP-адресом, что и у часов (с временным отключением часов),

Затем просто запустите netcat, дайте ему прослушать:3001, передайте в файл - и дождитесь опроса.

(Я использую его для опроса TCP, поэтому я предполагаю, что его можно захватить в режиме прослушивания)

Кроме того, вы можете подключить часы к нему - однажды зная, как сервер опрашивает.

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

После определения команды вы можете написать скрипт для установления TCP-соединения и точно отправить команду. Вы можете использовать PowerShell или Python для этой цели.

Другие вопросы по тегам