Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > C/C++: Сети > перехват WSASend


Автор: 12usver12 21.11.2009, 23:58
ситуация такая - хочу написать свой аналог сниффера http пакетов через перехват сокетных функций , возникла проблема с перехватом функции WSASend - такое ощущение что отображается не весь POST запрос а только заголовок,
вот на примере авторизации на вконтакте, вот обработчик
Код

int PASCAL FAR xWSASend(IN SOCKET s, IN LPWSABUF lpBuffers, IN DWORD dwBufferCount, OUT LPDWORD lpNumberOfBytesSent,IN DWORD dwFlags,IN LPWSAOVERLAPPED lpOverlapped,IN LPWSAOVERLAPPED_COMPLETION_ROUTINE lpCompletionRoutine)
{
    
    if (!lstrcmpn((char*)lpBuffers->buf,"POST",4))
    {
        if (dwBufferCount > 1) MESS("dwBufferCount > 1");


        HANDLE F = CreateFileA("M:\\log.txt",  // путь/имя файла
            GENERIC_READ | GENERIC_WRITE, // открываем для чтения/записи
            FILE_SHARE_READ|FILE_SHARE_WRITE,                          
            NULL,                         // без защиты
            OPEN_EXISTING,               // переписать существующий файл
            FILE_ATTRIBUTE_NORMAL,        // нормальный файл
            NULL);  
        DWORD wrtn = 0;
        SetFilePointer(F,0,0, FILE_END);
        WriteFile(F, lpBuffers->buf, lpBuffers->len,&wrtn, 0 );
        CloseHandle(F);
.
.
.


// а вот сами заголовки 
Код

// это перехват ф-ции send 
POST / HTTP/1.1
Accept: image/gif, image/jpeg, image/pjpeg, image/pjpeg, application/vnd.ms-excel, application/vnd.ms-powerpoint, application/msword, application/xaml+xml, application/vnd.ms-xpsdocument, application/x-ms-xbap, application/x-ms-application, */*
Referer: http://vkontakte.ru/login.php?m=1&email=47333345435
Accept-Language: ru
User-Agent: Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 5.1; Trident/4.0; .NET CLR 1.1.4322; .NET CLR 2.0.50727; InfoPath.1; .NET CLR 3.0.04506.30; .NET CLR 3.0.04506.648; .NET CLR 3.5.21022)
Content-Type: application/x-www-form-urlencoded
Accept-Encoding: gzip, deflate
Host: login.vk.com
Content-Length: 95
Connection: Keep-Alive
Cache-Control: no-cache

act=login&success_url=&fail_url=&try_to_login=1&to=&vk=&email=47333345435&pass=78658686&expire=
________________________________________________________________________________________
а это перехват ф-ции WSASend // в оличие от предыдущего - есть хидеры не хватает самих передаваемых данных
POST / HTTP/1.1
Host: login.vk.com
Connection: keep-alive
User-Agent: Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US) AppleWebKit/532.0 (KHTML, like Gecko) Chrome/3.0.195.33 Safari/532.0
Referer: http://vkontakte.ru/login.php?m=1&email=353646445654
Content-Length: 99
Cache-Control: max-age=0
Origin: http://vkontakte.ru
Content-Type: application/x-www-form-urlencoded
Accept: application/xml,application/xhtml+xml,text/html;q=0.9,text/plain;q=0.8,image/png,*/*;q=0.5
Accept-Encoding: gzip,deflate,sdch
Accept-Language: ru-RU,ru;q=0.8,en-US;q=0.6,en;q=0.4
Accept-Charset: windows-1251,utf-8;q=0.7,*;q=0.3




есть ли у кого мысли где тут может быть "собака зарыта" ?
 

Автор: 12usver12 22.11.2009, 22:42
Цитата

12usver12, ололо ксакеп 

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

Автор: Abyx 23.11.2009, 18:42
для проверки файловой и сетевой активности (очень разные вещи) есть готовые программы.
также для этого можно использовать отладчик

Автор: Sartorius 23.11.2009, 19:06
12usver12, уверен что весь POST в одном вызове WSASend отправили?  smile 

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)