debug LSP
От: shurik.  
Дата: 19.09.08 06:22
Оценка:
привет, пишу layered service provider, понятно пока он совсем бажный.

и не хочется для дебага устанавливать его на всю винду — все сетевые проги начинают вести себя неадекватно 8)
есть ли возможность как-нибудь тестировать/дебажить его в условиях приближенным к боевым?

ps. ктсати кто-нибудь знает под вистой lsp нормально работает?
Re: debug LSP
От: x64 Россия  
Дата: 19.09.08 06:53
Оценка: 1 (1) +1
S>и не хочется для дебага устанавливать его на всю винду — все сетевые проги начинают вести себя неадекватно 8)
S>есть ли возможность как-нибудь тестировать/дебажить его в условиях приближенным к боевым?

Тестируй в виртуалке (например, VirtualBox), затем, когда добьёшься стабильного поведения там, переноси отладку в реальную машину, — будет уже проще.
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 просто смотрел в контексте какого процесса я нахожусь. Если процесс был не тот, что нужно, просто отдавал набор функций от нижележащего провайдера и исключал свое влияние на работу сети в этом процессе.
Да пребудет с тобою сила
Re[2]: debug LSP
От: shurik.  
Дата: 19.09.08 10:21
Оценка:
Здравствуйте, TarasCo, Вы писали:

TC>...


дело как раз в том что нужно мониторить чужой траффик, поэтому дебажить нужно реальные процессы, т.е. тестовые программки писать негодится

поэтому понравилась идея вирусных технологий... но остановлюсь всё-таки на виртуалках как предложили выше, ибо проще 8)

кстати, когда писали свой lsp вы весь свой код с нуля писали? просто из примеров — много кода с редиректом и т.д., т.е. чтоб написать провайдер с нуля, который ничего не будет делать а просто передавать вызовы дальше нужно хорошенько помучаться.

дома у меня давно валялся шаблон, его заюзал, всё вроде ок, но смущает дата
Copyright (c) 1996 Intel Corporation
Copyright (c) 1996 - 1998 Microsoft Corporation


может есть какой-нибудь широкоизвестный в узких кругах шаблон для lsp поновее?
Re[3]: debug LSP
От: Аноним  
Дата: 23.09.08 09:11
Оценка:
Здравствуйте, shurik., Вы писали:

S>может есть какой-нибудь широкоизвестный в узких кругах шаблон для lsp поновее?


здесь
Re[3]: debug LSP
От: thebix http://www.myspace.com/thebixx
Дата: 19.02.09 13:40
Оценка:
добрый день.
также разбираюсь с LSP. информацию, к сожалению, удается собирать по крупицам
использовал в качестве базового примера одну из встречающихся в интернет вариаций кода от майкрософт, указанного в этом топике далее. разработку веду в .NET 2008.
с инсталлятором разобрался. сейчас пришла очередь самого провайдера. начал с не-IFS-поставщика.
по тем же причинам, что описаны у вас, мне не подойдут пункты 1.1 и 1.2 описанные у TarasCo.
не могли бы вы подсказать подробнее, как осуществляется у вас процесс дебага? в данный момент, я пытался найти информацию о том, как этот дебаг вообще обеспечить для LSP-провайдера, но ничего вразумительного не нашел
буду признателен за ответы и рекомендации.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.