Сейчас на форуме: asfa, bartolomeo, hgdagon (+6 невидимых) |
![]() |
eXeL@B —› Программирование —› Перехват запросов от Opera Internet Browser |
Посл.ответ | Сообщение |
|
Создано: 09 июня 2006 15:10 · Поправил: Storm · Личное сообщение · #1 Никак не могу понять как опера умудряется отправлять данные. Я внедрил в ее процесс перехватчик на функции (WinSock API) send и WSASend. На осле и на мозилле перехватчик точно ловит и показываем мне куда обращается браузер. А вот опера - не хочет. То ли использует другую функцию для отправки данных. Есть предположение, что это делает за нее opera.dll, но посмотрет таблицы экспорта/импорта ответа я не нашел. Нету там ничего подозрительного. Есть идеи? Или может есть еще реальные способы перехвата и модификации данных? ЗЫ Сам знаю, есть. Например использовать драйвер. Но к сожалению моя квалификация написать драйвер не позволяет. ![]() ![]() |
|
Создано: 09 июня 2006 16:34 · Личное сообщение · #2 |
|
Создано: 09 июня 2006 16:44 · Личное сообщение · #3 Опера использует WSARecv и WSASend. По крайней мере для 7.23 я могу это утверждать, поскольку на ней проверял. И вроде бы не использует dll для этого, т.е. это делается из самого екзешника. вот. По поводу идей: драйвер, да, для этой затеи все равно что из пушки по воробъям.(имхо ессно). Есть отностительно более легкий способ - написание Layered Service Provider. То бишь уровневый поставщик услуг. Представляет из себя dll, устанавливается между Winsok и Base provider. Позволяет полностью и вполне документированно иметь доступ пракитчески ко всем функциям Winsok2(За исключением вспомогательных функций преобразования адресов и некоторых других, которые реализованы в рамках ws2_32.dll) если с английским туго - то спешу обрадовать, инфы не много, на русском нет вообще ![]() Из материалов на пендосском могу рекомендовать следущее: 1. Network Programming for Microsoft Windows, Second Edition by Anthony Jones and Jim Ohlund, Microsoft Press, 608 pages, ISBN 0-7356-1579-9, 13 February 2002 2. Unraveling the Mysteries of Writing a Winsock 2 Layered Service Provider Wei Hua, Jim Ohlund, Barry Butterkley. Microsoft Systems Journal May 1999 первое есть в сети, второе - статейка в Microsoft Knowledge Base. дерзай. ![]() ps кстати писать его не нужно, нужно взять пример из последней PSDK и обработать под свои нужды. ![]() |
|
Создано: 09 июня 2006 17:23 · Личное сообщение · #4 |
|
Создано: 09 июня 2006 17:31 · Личное сообщение · #5 intty пишет: Опера использует WSARecv и WSASend. По крайней мере для 7.23 я могу это утверждать, поскольку на ней проверял. Вот не знаю. У меня на 8.54 не ловит. Щас буду проверять на семерке. intty пишет: кстати писать его не нужно, нужно взять пример из последней PSDK и обработать под свои нужды. А если нет последнего SDK? Хотя вроде SDK это вроде тот же MDSN. ЗЫ А можешь закинуть мне в мыло это чудо? ![]() ![]() |
|
Создано: 09 июня 2006 18:03 · Личное сообщение · #6 Ну в общем нашел я 8.54 у себя. точно также. WSASend и WSARecv используются для передачи/получения данных. смотри аттач(получен в результате работы обработчика WSASend) А если нет последнего SDK? Хотя вроде SDK это вроде тот же MDSN. почти, но не совсем. PSDK - Это platform software development kit. т.е. хидеры, либы, сэмплы в том числе. последний для win2003sp1 весит 300 с чем то метров. полное имя - 5.2.3790.1830.15.PlatformSDK_Svr2003SP1_rtm.iso по поводу закинутьнамыло: неужели я должен тратить gprs'ный траф, если кому-то лень погуглить? ;) ![]() ![]() |
|
Создано: 09 июня 2006 18:11 · Личное сообщение · #7 intty пишет: точно также. WSASend и WSARecv используются для передачи/получения данных. смотри аттач(получен в результате работы обработчика WSASend) Хм, а точнее, чем получен? Я тут еще посидел на перехватчиком и кажется просек, что немного накосячил ![]() Тогда другой вопрос. Ведь вроде WSASend ниже по уровню чем send. То есть send все равно вызывает WSASend. Так? По крайней мере с recv и WSARecv именно так. ![]() |
|
Создано: 09 июня 2006 18:19 · Поправил: intty · Личное сообщение · #8 Хм, а точнее, чем получен? получен из моего lsp, из обработчика WSASend, просто скидывается в файл содержимое буфера, предназначенного для посылки. Тогда другой вопрос именно так. функции send и recv вызывают свои WSA аналоги, которые затем передаются ниже по стеку. Для пущей уверенности можно глянуть на реализацию send и recv в ws2_32.dll. ![]() |
|
Создано: 09 июня 2006 19:02 · Личное сообщение · #9 |
![]() |
eXeL@B —› Программирование —› Перехват запросов от Opera Internet Browser |