Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Delphi: Общие вопросы > Hook на com port


Автор: Hamster 17.4.2003, 13:19
Привет всем! Кто может написать хук на ком порт?

Зарание благодарен!

Автор: Song 17.4.2003, 18:47
Я плакаль...
Ты хоть знаешь, что такое хук?

Автор: Hamster 17.4.2003, 23:06
Я то знаю! Мне надо скидывать в файл всё, что передаётся\принемается по кому! К примеру модем!

Автор: AntonSaburov 18.4.2003, 10:07
Не получится. Операционка работает с портами как с файлами.
И что самое главное - в эксклюзивном режиме.

Читаем MSDN:

"When the process uses CreateFile to open a communications resource, it must specify certain values for the following parameters:

- The fdwShareMode parameter must be zero, opening the resource for exclusive access.
- The fdwCreate parameter must specify the OPEN_EXISTING flag.
- The hTemplateFile parameter must be NULL. "

Т.е. ты не можешь дважды открыть один и тот же порт. А значит следить за ним не получается. Так что здесь, увы, сделать что-либо не получается.

Автор: man2002ua 18.4.2003, 13:48
Hamster, никого не слушай, ты почти все правильно говоришь. Но хук ты сделаешь в драйвере. Кстати есть пару примеров с исходниками на сайте Miscrosoft.
Самый простой вариант с драйвером - это перехват функций HAL.DLL - винда работает с аппаратурой через Hardware Abstraction Layer.dll. Так вот - надо просто фиьтровать read_port_uchar/write_port_uchar
(кроме ..._uchar есть еще и другие)

Автор: Chingachguk 18.4.2003, 14:24
Если кому надо, есть у меня логгер на COM-порты для 9x (реализовано в vxd). С протоколом...

Автор: man2002ua 18.4.2003, 17:11
Chingachguk, дай посмотреть код vxd, если не жалко smile.gif
[email protected]

Автор: XpyDi 19.4.2003, 08:22
Chingachguk скинь и мне пожалуйста.
[email protected]

Автор: Chingachguk 20.4.2003, 17:05
Парни, если кому нужен этот код, то вот он:

http://chingachguk.newmail.ru/Hook_vxd.arj

Автор: Hamster 21.4.2003, 00:10
man2002ua
Слухай! Если ты знаешь как сделать, то напиши плз кусок кода!
Спасибо.

Chingachguk
А под другие операционки? Мне как раз под XP надо!

Автор: Chingachguk 21.4.2003, 08:53
Цитата

Chingachguk
А под другие операционки? Мне как раз под XP надо! 


Звиняй, до драйверов под xp руки не дошли пока (слава богу ?) ;)

Автор: man2002ua 21.4.2003, 09:32
Кусок кода? Лучше готовый дам перехватчик. Только поставь себе для начала NTDDK или/и DriverStudio - без него не откомпилишь.

Автор: Hamster 21.4.2003, 14:56
Цитата(man2002ua @ 21.4.2003, 09:32)
Кусок кода? Лучше готовый дам перехватчик. Только поставь себе для начала NTDDK или/и DriverStudio - без него не откомпилишь.

Хорошо! А где это взять? Линк, если можно! И сырец!
Зарание спасибо!

Автор: man2002ua 21.4.2003, 15:50
NTDDK на сайте MicroSoft, толи 40 толи 80 Мб

Автор: Chingachguk 21.4.2003, 17:08
Цитата

толи 40 толи 80 Мб


Наверное, это правильно, что я еще не взялся за это ;)

Хотя что-то я сумневаюсь, что без них - никуда...

Автор: XpyDi 21.4.2003, 18:45
2Chingachguk можно конечно и без них, но с ним проще.
2man2002ua а на сайте Microsoft они теперь только диски с ним продают.

Автор: Hamoster 21.4.2003, 20:43
Если можно плз линк на откомпиленый файлец или [email protected]

Автор: man2002ua 22.4.2003, 09:13
XpyDi, это если поверхностно искать smile.gif
Я копался очень долго - и надыбал (еще 2 месяца назад были DDK для ВСЕХ платформ). Линк не дам - не знаю, просто ИСКАЛ и нашел.

Hamoster, щас.

Автор: Hamster 22.4.2003, 14:49
А мне не пришло sad.gif
[email protected]
Присылай ещё раз!

Спасибо большое!

Автор: XpyDi 23.4.2003, 18:49
man2002ua не знаю может ты нашел другое место, но еще с месяц работала ссылка на сам файл, а теперь она не работает. Да и по-моему DDK это не то что нужно прятать, т.к. ихний поисковик не дает по этому делу удовлетворительных результатов. Кстати DDK для Win9x проодержалась дольше, чем для 2k.

Автор: Hamster 28.4.2003, 20:11
Есть ещё вариант! Написать что-то на подобие софт айс smile.gif smile.gif smile.gif

Автор: XpyDi 28.4.2003, 20:29
Все равно прийдеться это через драйвер реализовавывать.

Автор: Hamster 28.4.2003, 21:47
Не спорю! Но как это сделать? Это нулевое кольцо защиты!

Автор: Hamster 13.5.2003, 18:06
Так кто может дать хоть какой то рабочий пример по 2000/XP?
Или скажите как перехватьть вызов ф-й из hal.dll?
Ну чайник я в этом деле(написание драйверов)! sad.gif а прога мне очень нужна!

Автор: man2002ua 14.5.2003, 09:25
Hamster, тот пример, что я выслал немного глюкавый (замени PagedPool на NonPagedPool) это одна из помарок - (работать все равно будет). Если что - пиши.

Автор: Hamster 14.5.2003, 14:34
Пасибо!

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)