| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > 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, если не жалко [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 | ||
Звиняй, до драйверов под xp руки не дошли пока (слава богу ?) ;) |
| Автор: man2002ua 21.4.2003, 09:32 |
| Кусок кода? Лучше готовый дам перехватчик. Только поставь себе для начала NTDDK или/и DriverStudio - без него не откомпилишь. |
| Автор: Hamster 21.4.2003, 14:56 | ||
Хорошо! А где это взять? Линк, если можно! И сырец! Зарание спасибо! |
| Автор: man2002ua 21.4.2003, 15:50 |
| NTDDK на сайте MicroSoft, толи 40 толи 80 Мб |
| Автор: Chingachguk 21.4.2003, 17:08 | ||
Наверное, это правильно, что я еще не взялся за это ;) Хотя что-то я сумневаюсь, что без них - никуда... |
| Автор: XpyDi 21.4.2003, 18:45 |
| 2Chingachguk можно конечно и без них, но с ним проще. 2man2002ua а на сайте Microsoft они теперь только диски с ним продают. |
| Автор: Hamoster 21.4.2003, 20:43 |
| Если можно плз линк на откомпиленый файлец или [email protected] |
| Автор: man2002ua 22.4.2003, 09:13 |
| XpyDi, это если поверхностно искать Я копался очень долго - и надыбал (еще 2 месяца назад были DDK для ВСЕХ платформ). Линк не дам - не знаю, просто ИСКАЛ и нашел. Hamoster, щас. |
| Автор: Hamster 22.4.2003, 14:49 |
| А мне не пришло [email protected] Присылай ещё раз! Спасибо большое! |
| Автор: XpyDi 23.4.2003, 18:49 |
| man2002ua не знаю может ты нашел другое место, но еще с месяц работала ссылка на сам файл, а теперь она не работает. Да и по-моему DDK это не то что нужно прятать, т.к. ихний поисковик не дает по этому делу удовлетворительных результатов. Кстати DDK для Win9x проодержалась дольше, чем для 2k. |
| Автор: Hamster 28.4.2003, 20:11 |
| Есть ещё вариант! Написать что-то на подобие софт айс |
| Автор: XpyDi 28.4.2003, 20:29 |
| Все равно прийдеться это через драйвер реализовавывать. |
| Автор: Hamster 28.4.2003, 21:47 |
| Не спорю! Но как это сделать? Это нулевое кольцо защиты! |
| Автор: Hamster 13.5.2003, 18:06 |
| Так кто может дать хоть какой то рабочий пример по 2000/XP? Или скажите как перехватьть вызов ф-й из hal.dll? Ну чайник я в этом деле(написание драйверов)! |
| Автор: man2002ua 14.5.2003, 09:25 |
| Hamster, тот пример, что я выслал немного глюкавый (замени PagedPool на NonPagedPool) это одна из помарок - (работать все равно будет). Если что - пиши. |
| Автор: Hamster 14.5.2003, 14:34 |
| Пасибо! |