
Комментарии 18
Похожую проблему решал- искал регистры у ПЛК, где хранятся результаты измерения температуры (думал поточнее найти, с разрешением больше заявленных 0,1)- просто скриптом прочитал все регистры, затем нагрел датчик, прочитал снова- получил список изменившихся, сидел, долго думал-нет такого регистра.
Да, такой подход нормальный, сам с него начинал. Но он не всегда срабатывает - если данные лежат вне ожидаемой области или отдаются по специфическим командам. У меня как раз так и было, поэтому пришлось анализировать обмен заводского ПО.Кстати, раньше в документации был указан адрес начала области памяти, где лежат нужные регистры, в новых версиях это описание убрали.
Ну я попробовал. Конкретный ПЛК только holding отдавал. Я просто прочитал все его регистры по всем адресам)
Wireshark отпал сразу, так как отдел защиты информации запрещает перехватывать трафик ЛВС. Решили локально перехватить трафик
Вот тут не понял. Безопасники еще и в асутп влезать запрещают асутпшнику? И при этом он таки влез в обмен, написав свой скрипт?
Я не перехватывал трафик в ЛВС. Работали локально - прибор был отключён от сети, подключились к нему напрямую с ноутбука. У нас требования ИБ жёсткие, поэтому никакого перехвата в сети не делали.
Из вашей статьи, фраза о запрете перехвата трафика воспринимается как административно-правовое ограничение, а не как применение технических средств противодействия мониторингу трафика. Если это так, то не понятно, от кого защищают трафик.
Имею в виду обычные внутренние регламенты по ИБ. В рабочей сети не используем инструменты перехвата трафика. Поэтому в таких задачах проще работать локально с устройством.
Ну так локально бы wiresharkом бы и перехватили, на локальный ноут без подключения к сети вообще. Ему не нужна сеть и интернет, он слушает только конкретный интерфейс и всё. Зачем вообще понадобилось так все усложнять?
Wireshark это первое, что приходит в голову. Но в реальности не всегда есть возможность его быстро развернуть. В нашем случае были ограничения по ОС, драйверам и политике ИБ на рабочем ноутбуке. Поэтому пошли от задачи сделалав минимальный сниффер под конкретный протокол и получили результат быстрее, чем настраивали бы инструмент. Не всегда есть возможнсть сделать правильно.
Техподдержка производителя не предоставила адреса регистров? В разное время установленных теплосчетчиках разные регистры, и понять где какие нельзя ни по версии прибора ни по прошивке?
Не нужны вам такие приборы.
Или такие СБ, которые мешают инженеру АСУТП ставить сторонние программы на изолированный комп. Ведь эта работа подразумевает под собой и "хакерство" в прямом смысле этого слова. А если вставляют палки в колеса, то нахрен такая работа нужна? Через эксель ломать протоколы?
СБ задает правила. Они не меняются от угла к углу на столе. Не то что номера регистров у кривого прибора без поддержки. Тем более что это не единственный возможный путь, всегда есть старый добрый 485.
Обычно работаешь с тем, что уже установлено или установили: разные версии, поставщики и не всегда актуальная документация. Техподдержка, к сожалению, тоже не помогла. Поэтому пришлось разбираться по фактическим ответам прибора. В целом Вы правы на счет техподдержки.
Это интересно. Недавно сталкивался с похоже проблемой, только намного меньшего масштаба. На производстве стоят счётчики УСГП-03 с модификацией под RS-485 modbus. А инструкция есть только к ACSII. Всё в коде Hex. Пытался действоваать по инструкции, прочитать данные, задать адрес slave, всё четно. В итоге на ощупь через modbus poll нащупал адресс, чтобы задать адресс. Далее уже считаывал данные через ModLook.
Да, очень знакомая история.
У нас ситуация была похожая - инструкция есть, а по факту данные лежат совсем не там. В итоге тоже шли вслепую, анализ ответов прибора + перебор адресов.
Modbus Poll в таких случаях реально может выручить, это быстрее, чем пытаться добиться нормальной документации или ответа от поддержки, кто на что горазд!
Как мы искали адреса регистров в памяти прибора