информационная безопасность
без паники и всерьез
 подробно о проектеRambler's Top100
Spanning Tree Protocol: недокументированное применениеГде водятся OGRыЗа кого нас держат?
BugTraq.Ru
Русский BugTraq
 Анализ криптографических сетевых... 
 Модель надежности двухузлового... 
 Специальные марковские модели надежности... 
 Очередное исследование 19 миллиардов... 
 Оптимизация ввода-вывода как инструмент... 
 Зловреды выбирают Lisp и Delphi 
главная обзор RSN блог библиотека закон бред форум dnet о проекте
bugtraq.ru / форум / programming
Имя Пароль
если вы видите этот текст, отключите в настройках форума использование JavaScript
ФОРУМ
все доски
FAQ
IRC
новые сообщения
site updates
guestbook
beginners
sysadmin
programming
operating systems
theory
web building
software
hardware
networking
law
hacking
gadgets
job
dnet
humor
miscellaneous
scrap
регистрация





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

а лучше собери дебажную версию своей длл
и прогу которая юзает сокеты
посмотри последовательность вызовов

> ты вооще не в курсе где по этому вопросу
> можно найти ДОКИ или исходники?!
нет не знаю
вернее про перехват и подмену функций наверно можно много найти, но исходников не видел
<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