Прослушивание COM-порта

Тема в разделе "WASM.WIN32", создана пользователем Petrov, 21 сен 2005.

  1. Petrov

    Petrov New Member

    Публикаций:
    0
    Регистрация:
    21 сен 2005
    Сообщения:
    5
    Адрес:
    Химки МО
    Необходимо написать программу которая бы работала с неким устройством. НО! Команд для работы с устройством нет. (искать их не предлагать :) ) Есть программа которая умеет общаться с прибором т.е. знает все необходимые коды команд.



    Вопрос. Как можно прослушать обмен этой программы с портом?
     
  2. doctor_Ice

    doctor_Ice New Member

    Публикаций:
    0
    Регистрация:
    21 мар 2005
    Сообщения:
    845
    Адрес:
    Russia
    нуна мониторить это ясно вопрос тока в том под чем прога пашет дос или винды? вообще вопрос странный. в любом случае придется писать прогу которая будет перехватывать обращения к порту и ложить все в лог.
     
  3. Petrov

    Petrov New Member

    Публикаций:
    0
    Регистрация:
    21 сен 2005
    Сообщения:
    5
    Адрес:
    Химки МО
    программа под Windows.

    Чем странный вопрос?

    Это и так понятно. Для чего ж еще протокол.
     
  4. Petrov

    Petrov New Member

    Публикаций:
    0
    Регистрация:
    21 сен 2005
    Сообщения:
    5
    Адрес:
    Химки МО
    Короче уже сам нарыл. Нужно просто комп поставить между устройством и компом и на нем слушать один порт а писать в другой...
     
  5. DESTROY_ru

    DESTROY_ru New Member

    Публикаций:
    0
    Регистрация:
    31 авг 2005
    Сообщения:
    17
    Вопрос к doctor_Ice а есть ли вообще такая прога, чтобы слушала требуемый порт в/в и логировала все это в файле?
     
  6. doctor_Ice

    doctor_Ice New Member

    Публикаций:
    0
    Регистрация:
    21 мар 2005
    Сообщения:
    845
    Адрес:
    Russia
    DESTROY_ru

    я для таких случаев просто внедряю свою длл и втыкаю переходы на свой код и логгирую вот и все. а проги такой не встречал но написать не сложно (ловить файл рид и файл врит проверять хендл и ежели это ком то сливать в лог).
     
  7. doctor_Ice

    doctor_Ice New Member

    Публикаций:
    0
    Регистрация:
    21 мар 2005
    Сообщения:
    845
    Адрес:
    Russia
    Petrov

    почему это я сно что под винды?

    а вопрос странный потому что и так ясно что нуна внедрить шпиончика в прогу которая знает.
     
  8. DESTROY_ru

    DESTROY_ru New Member

    Публикаций:
    0
    Регистрация:
    31 авг 2005
    Сообщения:
    17
    Я сейчас искал у Руссиновича на "sysinternals" там только

    для COM и LPT, а мне бы "любой" прологировать.Я думаю мож через регистры отладки попробовать.Вписать в регистр адрес порта, когда любая программа попытается что-либо записать или прочитать из порта(in/out)система должна сгенерить int1. Через модификацию IDT перехватить int1, посмотреть какая операция производилась и залогировать операцию в файл. Кто-нибудь реализовывал что-нибудь подобное?
     
  9. doctor_Ice

    doctor_Ice New Member

    Публикаций:
    0
    Регистрация:
    21 мар 2005
    Сообщения:
    845
    Адрес:
    Russia
    ага на досе
     
  10. MoKC0DeR

    MoKC0DeR New Member

    Публикаций:
    0
    Регистрация:
    13 ноя 2003
    Сообщения:
    136
    Адрес:
    Russia
    Bus Hound ?
     
  11. Petrov

    Petrov New Member

    Публикаций:
    0
    Регистрация:
    21 сен 2005
    Сообщения:
    5
    Адрес:
    Химки МО
    А вообще очень интересен вопрос перехвата потоков у приложения. К примеру того же DOS приложения которое читает и пишет в потоки. Их перехватить при запуске приложения CreateProcess не сложно. А вот если программа уже запущена...



    То же самое подозреваю и с COM портом.



    Многоуважаемый doctor_Ice

    было бы интересно услышать ваше мнение.
     
  12. doctor_Ice

    doctor_Ice New Member

    Публикаций:
    0
    Регистрация:
    21 мар 2005
    Сообщения:
    845
    Адрес:
    Russia
    Petrov



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



    MoKC0DeR



    я че такое бус хоунд?
     
  13. CARDINAL

    CARDINAL Member

    Публикаций:
    0
    Регистрация:
    23 янв 2004
    Сообщения:
    551
    Адрес:
    Moscow
    Petrov

    и что тебе ? в чём вопрос если прога досовая работает внутри ntvdm? Пишешь дллку, vdd зовется, в ддк пример есть. как раз для компорта. Ставишь хуки на порты и логируешь своего клиента. Проще некуда. если прога виндовозная, то тут варианты могут быть. Что если она не общается к примеру со стнадартным драйвером устройства, а свой для этого грузит. Тут либо read/writefile/deviceiocontrol а может и юзать mmf c каким нить ивентом. Смареть нада))
     
  14. DESTROY_ru

    DESTROY_ru New Member

    Публикаций:
    0
    Регистрация:
    31 авг 2005
    Сообщения:
    17
    Не знаю, мне кажется что если речь идет о COM или LPT то может воспользоватся утилитой Portmon 3.0 у Руссиновича и ничего самому не придумывать...?
     
  15. Petrov

    Petrov New Member

    Публикаций:
    0
    Регистрация:
    21 сен 2005
    Сообщения:
    5
    Адрес:
    Химки МО
    >>может воспользоватся утилитой Portmon 3.0



    Уже пользуюсь. :)



    Просто при открытом порте например через MSComm к нему уже не подконнектишься. Поэтому считал что и просканировать не получится.



    CARDINAL

    Я под дос приложением имел ввиду консоль которая запускается из другого приложения по средствам CreateProcess. Про чтение портов под DOS ниче не говорилось. Так вот еще раз вопрос. Нужно перехватить потоки работающего приложения In, Out это те которые при записи cmd /? >1.txt пишутся в файл 1.txt



    ЗЫ Но это уже никакого отношения к COM портам а следовательно к текущему вопросу не имеет. :)
     
  16. MoKC0DeR

    MoKC0DeR New Member

    Публикаций:
    0
    Регистрация:
    13 ноя 2003
    Сообщения:
    136
    Адрес:
    Russia
  17. ALLeX

    ALLeX Member

    Публикаций:
    0
    Регистрация:
    21 окт 2004
    Сообщения:
    141
    Адрес:
    Ukraine