Необходимо написать программу которая бы работала с неким устройством. НО! Команд для работы с устройством нет. (искать их не предлагать ) Есть программа которая умеет общаться с прибором т.е. знает все необходимые коды команд. Вопрос. Как можно прослушать обмен этой программы с портом?
нуна мониторить это ясно вопрос тока в том под чем прога пашет дос или винды? вообще вопрос странный. в любом случае придется писать прогу которая будет перехватывать обращения к порту и ложить все в лог.
Короче уже сам нарыл. Нужно просто комп поставить между устройством и компом и на нем слушать один порт а писать в другой...
Вопрос к doctor_Ice а есть ли вообще такая прога, чтобы слушала требуемый порт в/в и логировала все это в файле?
DESTROY_ru я для таких случаев просто внедряю свою длл и втыкаю переходы на свой код и логгирую вот и все. а проги такой не встречал но написать не сложно (ловить файл рид и файл врит проверять хендл и ежели это ком то сливать в лог).
Petrov почему это я сно что под винды? а вопрос странный потому что и так ясно что нуна внедрить шпиончика в прогу которая знает.
Я сейчас искал у Руссиновича на "sysinternals" там только для COM и LPT, а мне бы "любой" прологировать.Я думаю мож через регистры отладки попробовать.Вписать в регистр адрес порта, когда любая программа попытается что-либо записать или прочитать из порта(in/out)система должна сгенерить int1. Через модификацию IDT перехватить int1, посмотреть какая операция производилась и залогировать операцию в файл. Кто-нибудь реализовывал что-нибудь подобное?
А вообще очень интересен вопрос перехвата потоков у приложения. К примеру того же DOS приложения которое читает и пишет в потоки. Их перехватить при запуске приложения CreateProcess не сложно. А вот если программа уже запущена... То же самое подозреваю и с COM портом. Многоуважаемый doctor_Ice было бы интересно услышать ваше мнение.
Petrov ну я в этх делах не спец. может подменить системную библиотеку ну и накатать програмку настройки твоего монитора. или даже нет лучше внедрить код в системную библиотеку перенаправить вызовы на свой обработчик и будет у тебя суперский монитор Я такого не делал но вроде все правильно изложил. MoKC0DeR я че такое бус хоунд?
Petrov и что тебе ? в чём вопрос если прога досовая работает внутри ntvdm? Пишешь дллку, vdd зовется, в ддк пример есть. как раз для компорта. Ставишь хуки на порты и логируешь своего клиента. Проще некуда. если прога виндовозная, то тут варианты могут быть. Что если она не общается к примеру со стнадартным драйвером устройства, а свой для этого грузит. Тут либо read/writefile/deviceiocontrol а может и юзать mmf c каким нить ивентом. Смареть нада))
Не знаю, мне кажется что если речь идет о COM или LPT то может воспользоватся утилитой Portmon 3.0 у Руссиновича и ничего самому не придумывать...?
>>может воспользоватся утилитой Portmon 3.0 Уже пользуюсь. Просто при открытом порте например через MSComm к нему уже не подконнектишься. Поэтому считал что и просканировать не получится. CARDINAL Я под дос приложением имел ввиду консоль которая запускается из другого приложения по средствам CreateProcess. Про чтение портов под DOS ниче не говорилось. Так вот еще раз вопрос. Нужно перехватить потоки работающего приложения In, Out это те которые при записи cmd /? >1.txt пишутся в файл 1.txt ЗЫ Но это уже никакого отношения к COM портам а следовательно к текущему вопросу не имеет.