Re: debug LSP
От: TarasCo  
Дата: 19.09.08 08:53
Оценка: 7 (1)
Устанавливать LSP на машину, даже виртуальную и отлаживаться — просто нереально. Он в силу своих багов нарушит работу системных сервисов и работать будет просто невозможно.

Я при отладке использовал различные методики.

1. Регистрировал свой LSP таким образом, чтоб его никто случайно не загрузил . Для этого достаточно, чтобы он не был вверху списка доступных провайдеров.
1.1 Писал свои тестовые программки, в которых вызывал WSASocket и явно указывал GUID собственного провайдера. Отлаживать очень удобно, но это все же синтетические случаи, хочется иногда с реальными приложениями поработать, особенно, если интересен их трафик
1.2 Использовал "вирусные" технологии — заражал целевой процесс. Для этого был написан простенький инжектор, который создавал нужный процесс ( допустим IE ) в замороженном состоянии, инжектировал туда свою dll, которая загружала и слегка поправляла ws2_32.dll с целью опять же подсунуть GUID своего провайдера. Далее процесс будился. В результате, на машине существовал один процесс с моим LSP фильтром и можно было к нему приатачиться и поотлаживать.

2. В реализации метода WSPStartup просто смотрел в контексте какого процесса я нахожусь. Если процесс был не тот, что нужно, просто отдавал набор функций от нижележащего провайдера и исключал свое влияние на работу сети в этом процессе.
Да пребудет с тобою сила
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.