привет, пишу layered service provider, понятно пока он совсем бажный.
и не хочется для дебага устанавливать его на всю винду — все сетевые проги начинают вести себя неадекватно 8)
есть ли возможность как-нибудь тестировать/дебажить его в условиях приближенным к боевым?
ps. ктсати кто-нибудь знает под вистой lsp нормально работает?
S>и не хочется для дебага устанавливать его на всю винду — все сетевые проги начинают вести себя неадекватно 8)
S>есть ли возможность как-нибудь тестировать/дебажить его в условиях приближенным к боевым?
Тестируй в виртуалке (например,
VirtualBox), затем, когда добьёшься стабильного поведения там, переноси отладку в реальную машину, — будет уже проще.
Устанавливать LSP на машину, даже виртуальную и отлаживаться — просто нереально. Он в силу своих багов нарушит работу системных сервисов и работать будет просто невозможно.
Я при отладке использовал различные методики.
1. Регистрировал свой LSP таким образом, чтоб его никто случайно не загрузил

. Для этого достаточно, чтобы он не был вверху списка доступных провайдеров.
1.1 Писал свои тестовые программки, в которых вызывал WSASocket и явно указывал GUID собственного провайдера. Отлаживать очень удобно, но это все же синтетические случаи, хочется иногда с реальными приложениями поработать, особенно, если интересен их трафик
1.2 Использовал "вирусные" технологии — заражал целевой процесс. Для этого был написан простенький инжектор, который создавал нужный процесс ( допустим IE ) в замороженном состоянии, инжектировал туда свою dll, которая загружала и слегка поправляла ws2_32.dll с целью опять же подсунуть GUID своего провайдера. Далее процесс будился. В результате, на машине существовал один процесс с моим LSP фильтром и можно было к нему приатачиться и поотлаживать.
2. В реализации метода WSPStartup просто смотрел в контексте какого процесса я нахожусь. Если процесс был не тот, что нужно, просто отдавал набор функций от нижележащего провайдера и исключал свое влияние на работу сети в этом процессе.
Здравствуйте, TarasCo, Вы писали:
TC>...
дело как раз в том что нужно мониторить чужой траффик, поэтому дебажить нужно реальные процессы, т.е. тестовые программки писать негодится
поэтому понравилась идея вирусных технологий... но остановлюсь всё-таки на виртуалках как предложили выше, ибо проще 8)
кстати, когда писали свой lsp вы весь свой код с нуля писали? просто из примеров — много кода с редиректом и т.д., т.е. чтоб написать провайдер с нуля, который ничего не будет делать а просто передавать вызовы дальше нужно хорошенько помучаться.
дома у меня давно валялся шаблон, его заюзал, всё вроде ок, но смущает дата
Copyright (c) 1996 Intel Corporation
Copyright (c) 1996 - 1998 Microsoft Corporation
может есть какой-нибудь широкоизвестный в узких кругах шаблон для lsp поновее?
Здравствуйте, shurik., Вы писали:
S>может есть какой-нибудь широкоизвестный в узких кругах шаблон для lsp поновее?
здесь
добрый день.
также разбираюсь с LSP. информацию, к сожалению, удается собирать по крупицам

использовал в качестве базового примера одну из встречающихся в интернет вариаций
кода от майкрософт, указанного в этом топике далее. разработку веду в .NET 2008.
с инсталлятором разобрался. сейчас пришла очередь самого провайдера. начал с не-IFS-поставщика.
по тем же причинам, что описаны у вас, мне не подойдут пункты 1.1 и 1.2 описанные у TarasCo.
не могли бы вы подсказать подробнее, как осуществляется у вас процесс дебага? в данный момент, я пытался найти информацию о том, как этот дебаг вообще обеспечить для LSP-провайдера, но ничего вразумительного не нашел

буду признателен за ответы и рекомендации.