У меня есть часы с проприетарным программным обеспечением, которое опрашивает смахивания от него, программное обеспечение находится на сервере и подключается к часам через Ethernet. Я хочу попробовать написать свой собственный сценарий, который опрашивает эти часы, поскольку программа не может делать это чаще, чем раз в час.
Я установил wirehark на сервер и опросил таймеры, а затем следил за потоком tcp, чтобы видеть все данные, которые были отправлены туда и обратно, я вижу, что это проблемы: .00P. на порте 3001 часов часы затем отвечают всеми ударами.
Я попытался использовать замазку и подключиться к порту 3001, а также скопировать и вставить эту команду, но ничего не было возвращено, затем я понял, что точки в команде вызваны тем, что мой редактор не может отображать фактические данные, которые в блокноте выглядят как обратные L.
Каким образом, каков наилучший процесс для попытки отправить эту команду, как она есть в двоичном файле, который я сохранил из wirehark, есть ли способ отправить пакет, содержащий данные из файла, на часы и как-то записать результаты?
Сложно что-либо сказать по одному пакету - довольно быстрый способ перемотки вперед может быть таким:
... для замены часов один раз в ночное время:
например настроить Linux с тем же IP-адресом, что и часы (при временном отключении часов),
Затем просто запустите netcat, дайте ему прослушать: 3001, передано в файл - и подождите, пока не произойдет опрос.
(Я использую его для TCP-опроса, поэтому предполагаю, что с его помощью можно снимать в режиме прослушивания)
Кроме того, вы можете подключить к нему часы - однажды зная, как сервер опрашивает.
Если вы сохранили двоичный файл из захвата WireShark, следующим хорошим шагом будет более внимательное изучение этого файла. Как вы обнаружили, блокнот, вероятно, не справится с этой задачей. Используйте шестнадцатеричный редактор, например frhed чтобы точно понять, какие байты отправляются.
Определив команду, вы можете написать сценарий для установления TCP-соединения и точной отправки команды. Для этой цели вы можете использовать PowerShell или Python.