| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > C/C++: Системное программирование и WinAPI > Serial port monitoring |
| Автор: BadHabit 25.12.2005, 13:42 |
| Здравствуйте товарищи! Понадобилось мне мониторить одну программку, а конкретно то, что она читает/получает из ком порта. Написал прогу которая пурехватывает ReadFile для этой проги, думал все будет - бенч, а вот и нет, после перехвата ReadFile, вижу всё, что читает прога из файлов - настройки, хелп свой и т.д., а данных из ком порта - нет! Так вот мне не совсем понятно как и чем эта прога может читать из ком порта? В таблице импорта тоже вроде никаких подозрительных функций нет. ЗЫ. И ещё вопрос, может кто писал когда драйвер-фильтр для перехвата обращений к ком порту, по типу PortMon от www.sysinternals.com? Откликнитесь плз., ибо я никогда с написанием дров не встречался и было бы очень интересно пообщаться. ЗЫЫ. Прилагаю таблицу импортов этой проги, могу так же её саму выслать, чтобы "ковырнуть" если кто умеет... |
| Автор: Romikgy 26.12.2005, 09:38 | ||
А что мешает пользоваться
|
| Автор: azesmcar 26.12.2005, 10:33 |
| Можешь внедрить DLL в ту самую программу и перехватить для нее API функции для работы с COM портом. т.е. CreateFile, WriteFile, ReadFile ...итд итп... http://www.cyberinfo.ru/cgi-bin/view.cgi?id=2989&cat_id=5&print=1 Это про внедрении DLL. Про перехват у Рихтера почитай... |
| Автор: BadHabit 26.12.2005, 10:56 |
| Romikgy, мнешает то, что мне нужно чтобы _моя_ прога мониторила ком порт, а не ПортМон. Снятые данные с ком порта мне нужны в моей прогамме! azesmcar, Вы мой пост видимо не внимательно прочитали, я же написал, что все внедрил и все перехватил, только не вижу данных из ком порта... Вот я и спрашиваю почему? Чем ещё прога _кроме_ ReadFile() может из ком порта читать? |
| Автор: Romikgy 26.12.2005, 16:45 | ||
| Мож это еще перехватить DeviceIoControl ???? Добавлено @ 16:46
|
| Автор: azesmcar 26.12.2005, 17:28 | ||||||
Ах да, извиняюсь, не заметил..почему то обратил внимание только на
Думал ты как сделать не знаешь...Ну не работает с ReadFile тогда это может быть ReadFileEx. Ты его пробовал перехватить? Ну и в конце концов как сказал Romikgy
|
| Автор: BadHabit 26.12.2005, 18:02 | ||||
Не импортирует она её, я думаю что и через LoadLibrary/GetProcAddress тоже не грузит, ибо прога обычная без всяких извратов, писана на делфе. Могу выслать...
Я ж таблицу импорта приаттачил, нет её тама... Есть идеи? |
| Автор: Romikgy 26.12.2005, 18:12 | ||||
ЗЫ только драйвером Добавлено @ 18:21
Все таки подозрения , что работает с ReadFile , судя по таблице, значит не то ловил |
| Автор: BadHabit 27.12.2005, 11:09 | ||||
Блин, она ужатая под мерт весит, кто-нить знает адресок какого-нить халявного ФТПшника?
Есть подозрения что из-за борландовского линкера эта проблемма, если посмотреть на IAT, то видно что импорты из kernel32.dll там в двух "thunk"х, щаз смотрю, может я только первый хукаю. И ваще как такое может быть чтобы импортировалась одна и та же функция 2 раза, а главное зачем? |
| Автор: Romikgy 27.12.2005, 11:57 |
| Многие файлы имеют двойной вызов ф-ций, зачем не знаю |
| Автор: BadHabit 27.12.2005, 16:56 | ||
Тыды очень интересно, как узнать, какой именно ссылкой в IAT пользуется прога? |
| Автор: Romikgy 27.12.2005, 17:24 |
| Обеими, имхо когда человек писал код, пользовал несколько модулей, один для файлов, другой для ком-порта, третий для сети и т.д. , и в каждом объявлял, использование ф-ции ридфайл( или компилятор объявлял), а потом линкер , просто собрал все в кучу, зачем человеку следить , сколько раз была ф-ция записана в таблицу импорта, ведь работает |