информационная безопасность
без паники и всерьез
 подробно о проектеRambler's Top100
Портрет посетителяСтрашный баг в WindowsГде водятся OGRы
BugTraq.Ru
Русский BugTraq
 Анализ криптографических сетевых... 
 Модель надежности двухузлового... 
 Специальные марковские модели надежности... 
 С наступающим 
 Microsoft обещает радикально усилить... 
 Ядро Linux избавляется от российских... 
главная обзор RSN блог библиотека закон бред форум dnet о проекте
bugtraq.ru / форум / programming
Имя Пароль
ФОРУМ
если вы видите этот текст, отключите в настройках форума использование JavaScript
регистрация





Легенда:
  новое сообщение
  закрытая нитка
  новое сообщение
  в закрытой нитке
  старое сообщение
  • Напоминаю, что масса вопросов по функционированию форума снимается после прочтения его описания.
  • Новичкам также крайне полезно ознакомиться с данным документом.
[net] winsock - перехват функций! (только для профи!) 09.12.01 01:00  Число просмотров: 1324
Автор: ggg <ggg> Статус: Elderman
<"чистая" ссылка>
винда то хоть грузится ? :)
пробовал перегружаться ? :)

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

а что это за Print() такой ?
что он делает ?

и какие проги глючат, а какие работают ?
<programming>
[net] winsock - перехват функций! (только для профи!) 08.12.01 23:02    Штраф: 5 [cb]
Автор: NeuronVikingIII Статус: Незарегистрированный пользователь
<"чистая" ссылка>
Hi all!
сабж в том, что необходимо "обернуть" winsock свой собсной библиотекой, либо перехватывать вызовы классическим методом. Например я создал свою ДЛЛку ws2_32.dll с одинаковыми именами и ординалами экспортов. Мой рассчет такой: заменить оригинальную ДЛЛку на мою и затем когда система или приложение попытается вызвать функцию WINSOCK то вызовется моя функция которая просто передаст управление оригинальной функции. Вроде все сделал чисто, но почему то многие проги стали падать и глючить. Хотя мой враппер ничего не делает, только вызывает оригинальный WINSOCK и перевызывает оригнальную функцию. Ктонть знает в чем баг?! (ну если не считать моих генов ;)
Вот маленький пример для одной функции:
int (__stdcall* x_send)(SOCKET,const char FAR*,int,int);
....
hWSocket=LoadLibrary("C:\\original_ws2_32.dll");
...
x_send=(int(__stdcall* )(SOCKET,const char FAR*,int,int))GetProcAddress(hWSocket,"send");
...
__declspec(dllexport) int send(SOCKET a1,const char FAR* a2,int a3,int a4){
Print("send was called!");
return x_send(a1,a2,a3,a4);
}
...
вот и все, ничего мудреного, но эта зараза вызывает глюки :((((


[net] winsock - перехват функций! (только для профи!) 13.12.01 22:29  
Автор: researcher Статус: Незарегистрированный пользователь
<"чистая" ссылка>
> Hi all!
> сабж в том, что необходимо "обернуть" winsock свой собсной
> библиотекой, либо перехватывать вызовы классическим
> методом. Например я создал свою ДЛЛку ws2_32.dll с

Лучше всего перехватывать нужные вызовы функций способом, описанным в книге Рихтера, а заменять системную DLL на свою не стоит, особенно там где это не сработает, например в millenium или windows 2000
[net] winsock - перехват функций! (только для профи!) 14.12.01 08:15  
Автор: CloseHandle Статус: Незарегистрированный пользователь
<"чистая" ссылка>
> > Hi all!
> > сабж в том, что необходимо "обернуть" winsock свой
> собсной
> > библиотекой, либо перехватывать вызовы классическим
> > методом. Например я создал свою ДЛЛку ws2_32.dll с
>
> Лучше всего перехватывать нужные вызовы функций способом,
> описанным в книге Рихтера, а заменять системную DLL на свою
> не стоит, особенно там где это не сработает, например в
> millenium или windows 2000
ты не прав, как раз таки метод подмены гораздо стабильнее перехвата и он прекрасно работает на всех ОСах... проверено. Но вообще это конечно-же ламерство
[net] winsock - перехват функций! (только для профи!) 11.12.01 23:32  
Автор: kabanchik Статус: Незарегистрированный пользователь
<"чистая" ссылка>
> Hi all!
> сабж в том, что необходимо "обернуть" winsock свой собсной
> библиотекой, либо перехватывать вызовы классическим
> методом. Например я создал свою ДЛЛку ws2_32.dll с
> одинаковыми именами и ординалами экспортов. Мой рассчет
> такой: заменить оригинальную ДЛЛку на мою и затем когда
> система или приложение попытается вызвать функцию WINSOCK
> то вызовется моя функция которая просто передаст управление
> оригинальной функции. Вроде все сделал чисто, но почему то
> многие проги стали падать и глючить. Хотя мой враппер
> ничего не делает, только вызывает оригинальный WINSOCK и
> перевызывает оригнальную функцию. Ктонть знает в чем баг?!
> (ну если не считать моих генов ;)
>
blja, da tak i vsju systemu perepisat' mozhno.
Ty chto nit' pro WSP* f-ii slyshal ??? dumaju chto net. Tak vot nado pisat' svoju DLL, zatem ego zaregistrirovat' v systeme, opredelit' "Vendor Layer", i vse budet OK. Tak delajut companii zanimajushiesja crypto, oni perexvatyvajut packety criptujut ix i posylajut dal'she. ws2_32.dll - eto fuflo nichego xitroumnogo v nem net, krome parochku funkcij, na samom dele on obrashaetsya k "vendor" dll - t.e. ty installiruesh' kartochku, a vmeste s nim stavitsya dll-ka, kotoraya rabotaet s nej, a ws2_32.dll tol'ko perenapravljaet f-ii k nemu. naprimer ty vyzyvaesh' f-iju WSAConnect(...), on perenapravljaet na WSPConnect(....), i t.d.....
a perepisyvat' ws2_32.dll - eto tozhe chto cherez }|{opu pytat'sya zuby chistit' :-))))) Vyxod est', no ved' ne effectivno ved' :-)
ne obizhajsya, ya prosto segodnya v xoroshem nastroenii, poka customer menya ne "sdelal" :-))))

udachi
[Win32] [Net] Свин! Где это узнать поподробнее?! Пжалста!!! 14.12.01 03:59  
Автор: Zef <Alloo Zef> Статус: Elderman
<"чистая" ссылка>
[Win32] [Net] Свин! Где это узнать поподробнее?! Пжалста!!! 17.12.01 00:49  
Автор: kabanchik Статус: Незарегистрированный пользователь
<"чистая" ссылка>
Dyk, tak ved' otkroj MSDN, napechataj pervye "WSP" i poluchish' vsju infu.
ili mozhno knigu vzyat', nazyvaetsya "Network Programming for Windows". avtora shas ne pomnju.
[Win32] [Net] 1-й ответ на 1001-й вопрос! 18.12.01 04:57  
Автор: Zef <Alloo Zef> Статус: Elderman
<"чистая" ссылка>
Я уже х-ву тучу вопросов задавал на тему: где лучше перехватывать пакеты для криптования-декриптования, как ни странно, это первый сколько-нить конструктивный ответ, и кроме того в MSDN искать то, незнаю, как называется, что - это иголку в стоге сена... Так, что WSP - это уже Ключ!
M S D N elki palki, sovsem togo chto li?? tak zhe link smotri paroi strochek nizhe 14.12.01 04:10  
Автор: + <Mikhail> Статус: Elderman
<"чистая" ссылка>
[net] winsock - перехват функций! (только для профи!) 10.12.01 10:39  
Автор: cb <cb> Статус: Member
<"чистая" ссылка>
возможно я что-то пропустил, но может это надо делать так:

http://www.microsoft.com/msj/defaultframe.asp?page=/msj/0599/LayeredService/LayeredService.htm

исходники приера там тоже есть...

cb.
[net] winsock - перехват функций! (только для профи!) 09.12.01 01:31  
Автор: Killer{R} Статус: Незарегистрированный пользователь
<"чистая" ссылка>
> такой: заменить оригинальную ДЛЛку на мою и затем когда
> система или приложение попытается вызвать функцию WINSOCK
> то вызовется моя функция которая просто передаст управление
> оригинальной функции. Вроде все сделал чисто, но почему то
> многие проги стали падать и глючить. Хотя мой враппер
> ничего не делает, только вызывает оригинальный WINSOCK и
> перевызывает оригнальную функцию. Ктонть знает в чем баг?!
Ну ты блин молодец. А ты в курсе что функции еще и по ординалам вызываются? Причем вызывают их по ординалам как правило стандартные проги самой винды. А еще, не знаю как насчет винсока, но кернел вызывает функции микроядра прямо по жесткому адресу. Так что советую для начала сравнить все ординалы. Если заработает -считай повезло, если нет, чтож, закон Мерфи сработал.
[net] winsock - перехват функций! (только для профи!) 09.12.01 01:43  
Автор: NeuronVikingIII Статус: Незарегистрированный пользователь
<"чистая" ссылка>
> > такой: заменить оригинальную ДЛЛку на мою и затем
> когда
> > система или приложение попытается вызвать функцию
> WINSOCK
> > то вызовется моя функция которая просто передаст
> управление
> > оригинальной функции. Вроде все сделал чисто, но
> почему то
> > многие проги стали падать и глючить. Хотя мой враппер
> > ничего не делает, только вызывает оригинальный WINSOCK
> и
> > перевызывает оригнальную функцию. Ктонть знает в чем
> баг?!
> Ну ты блин молодец. А ты в курсе что функции еще и по
> ординалам вызываются? Причем вызывают их по ординалам как
> правило стандартные проги самой винды. А еще, не знаю как
> насчет винсока, но кернел вызывает функции микроядра прямо
> по жесткому адресу. Так что советую для начала сравнить все
> ординалы. Если заработает -считай повезло, если нет, чтож,
> закон Мерфи сработал.


я же сказал, что я ординалы сделал те же самые!!! ты хочешь сказать что и адреса те же самые как и в настоящей ws2_32.dll для каждой функции прописывать?!!!
[net] winsock - перехват функций! (только для профи!) 09.12.01 01:59  
Автор: Killer{R} Статус: Незарегистрированный пользователь
<"чистая" ссылка>
> я же сказал, что я ординалы сделал те же самые!!!
Ups... Пива пить надо меньше. Извини.
> хочешь сказать что и адреса те же самые как и в настоящей
> ws2_32.dll для каждой функции прописывать?!!!
Это возможная причина. Еще возможно ты не прописал какие нибудь недокументированные функции. А когда прога не находит функцию в длл но не обращает на это внимания - получается что то вроде исключения прав доступа по адресу именно 0, или около нуля.
[net] winsock - перехват функций! (только для профи!) 09.12.01 01:00  
Автор: ggg <ggg> Статус: Elderman
<"чистая" ссылка>
винда то хоть грузится ? :)
пробовал перегружаться ? :)

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

а что это за Print() такой ?
что он делает ?

и какие проги глючат, а какие работают ?
[net] winsock - перехват функций! (только для профи!) 09.12.01 01:09  
Автор: NeuronVikingIII Статус: Незарегистрированный пользователь
<"чистая" ссылка>
> винда то хоть грузится ? :)
> пробовал перегружаться ? :)
>
> в таблице экспорта прописано имя длл
> не уверен, что оно нужно, но для приличия у
> original_ws2_32.dll попробуй поменять его
>
> а что это за Print() такой ?
> что он делает ?
>
> и какие проги глючат, а какие работают ?
я делаю это под Win2k, винда грузится, когда загрузка уже завершается(т.е. уже winlogon и проч. загружены) начинают вылетать проги с разными ошибками(но все из-за доступа к памяти по нулевому адресу), все проги так или иначе используют ws2_32.dll, ну то есть мой враппер вместо оригинальной ДЛЛки.
Print() - всего лишь пишет в файл сообщение о том какая функция и каким процессом вызвана.
А зачем менять имя ДЛЛки внутри ?! достаточно просто переименовать ее и вместо нее нее воткнуть мою ДЛЛку(котрая изначально называется так же как и настоящая).
[net] winsock - перехват функций! (только для профи!) 09.12.01 01:36  
Автор: ggg <ggg> Статус: Elderman
<"чистая" ссылка>
а в каком месте глюк происходит ?
где дебагер останавливается ?
[net] winsock - перехват функций! (только для профи!) 09.12.01 01:41  
Автор: NeuronVikingIII Статус: Незарегистрированный пользователь
<"чистая" ссылка>
> а в каком месте глюк происходит ?
> где дебагер останавливается ?
да непонятно что-то ... дебаггер вообще в хопре каком-то вываливается ... вложенность функций немерянная, может в настоящей ws2_32.dll кроме экспорта функций еще какая-то фишка есть?! ты вооще не в курсе где по этому вопросу можно найти ДОКИ или исходники?!
[Net] исходник 09.12.01 11:53  
Автор: :-) <:-)> Статус: Elderman
Отредактировано 09.12.01 11:56  Количество правок: 1
<"чистая" ссылка>
Посмотри тут. Правда, это под Win9x и подменяется wsock32.dll

Winsock Spy Program
[Net] исходник не работает! 09.12.01 18:01  
Автор: NeuronVikingIII Статус: Незарегистрированный пользователь
<"чистая" ссылка>
> Посмотри тут. Правда, это под Win9x и подменяется
> wsock32.dll

Ни один браузер не может открыть страницу, ipconfig вообще грит что ординал 1001 не найден ... короче нихера не работает....
[Net] Неправда, ping все-таки работает 09.12.01 19:59  
Автор: :-) <:-)> Статус: Elderman
<"чистая" ссылка>
> > Посмотри тут. Правда, это под Win9x и подменяется
> > wsock32.dll
>
> Ни один браузер не может открыть страницу, ipconfig вообще
> грит что ординал 1001 не найден ... короче нихера не
> работает....

Ну во первых не я его писал :-)
Во-вторых, я же говорил, что он под Win9x (и Winsock 1.1)
В Winsock2 были добавлены новые ф-ии, которых в этом исходнике нету: AcceptEx, Arecv, Asend...
И вообще видно, он просто не доделан - на многие недокументрованные ф-и почему-то вызывается accept(), видно автору лень был выяснять кол-во параметров у этих ф-й.
Сейчас специально поставил его - IE 5.0 и правда по GPF(0xD) вылетает, зато ping работает замечательно :)
Значит, за основу его взять можно, просто надо "обернуть" все экспортируемые ф-ии
[Net] Неправда - правда 09.12.01 20:17  
Автор: NeuronVikingIII Статус: Незарегистрированный пользователь
<"чистая" ссылка>
> > > Посмотри тут. Правда, это под Win9x и подменяется
> > > wsock32.dll
> >
> > Ни один браузер не может открыть страницу, ipconfig
> вообще
> > грит что ординал 1001 не найден ... короче нихера не
> > работает....
>
> Ну во первых не я его писал :-)
> Во-вторых, я же говорил, что он под Win9x (и Winsock 1.1)
> В Winsock2 были добавлены новые ф-ии, которых в этом
> исходнике нету: AcceptEx, Arecv, Asend...
> И вообще видно, он просто не доделан - на многие
> недокументрованные ф-и почему-то вызывается accept(), видно
> автору лень был выяснять кол-во параметров у этих ф-й.
> Сейчас специально поставил его - IE 5.0 и правда по
> GPF(0xD) вылетает, зато ping работает замечательно :)
> Значит, за основу его взять можно, просто надо "обернуть"
> все экспортируемые ф-ии

да я уже разобрался, я шел таким же путем, спасибо са УРЛ - еще одно док-во что я все делал правильно....
1  |  2 >>  »  




Rambler's Top100
Рейтинг@Mail.ru


  Copyright © 2001-2025 Dmitry Leonov   Page build time: 0 s   Design: Vadim Derkach