HOME    FORUMS    MEMBERS    RECENT POSTS    LOG IN  
Баннер 1   Баннер 2

ANTICHAT — форум по информационной безопасности, OSINT и технологиям

ANTICHAT — русскоязычное сообщество по безопасности, OSINT и программированию. Форум ранее работал на доменах antichat.ru, antichat.com и antichat.club, и теперь снова доступен на новом адресе — forum.antichat.xyz.
Форум восстановлен и продолжает развитие: доступны архивные темы, добавляются новые обсуждения и материалы.
⚠️ Старые аккаунты восстановить невозможно — необходимо зарегистрироваться заново.
Вернуться   Форум АНТИЧАТ > Программирование_OLD > С/С++, C#, Delphi, .NET, Asm
   
 
 
Опции темы Поиск в этой теме Опции просмотра

  #3031  
Старый 31.05.2009, 15:49
Дикс
Познавший АНТИЧАТ
Регистрация: 16.04.2006
Сообщений: 1,488
Провел на форуме:
2209675

Репутация: 537


Отправить сообщение для Дикс с помощью ICQ
По умолчанию

спасибо
а если я пишу на С++ - я тоже должен использовать dos.h? это современный и актуальный метод?
 

  #3032  
Старый 31.05.2009, 16:12
Fata1ex
Постоянный
Регистрация: 12.12.2006
Сообщений: 906
Провел на форуме:
4205500

Репутация: 930


По умолчанию

>а если я пишу на С++ - я тоже должен использовать dos.h?
Да
 

  #3033  
Старый 31.05.2009, 16:19
Ra$cal
Постоянный
Регистрация: 16.08.2006
Сообщений: 640
Провел на форуме:
1354067

Репутация: 599


По умолчанию

вообще в с++ правильнее юзать http://www.cplusplus.com/reference/clibrary/ctime/
 

  #3034  
Старый 01.06.2009, 00:41
Spy2ex
Новичок
Регистрация: 20.09.2008
Сообщений: 29
Провел на форуме:
528520

Репутация: 13
По умолчанию

У меня проблема хочу авторизоваться на сайте вконтакте средствами С++.
Отловив я все запросы что посылает мой браузер, и посылая их же в коде, в ответе получаю "400 bad reqest".
Вот код.
Код:
#include <stdio.h>
#include <string.h>
#include <winsock2.h>
#include <windows.h>
#include <ctype.h>

#define PORT 80
#define SERVERADDR "93.186.225.212"     // Адрес сервера

#pragma comment(lib, "Ws2_32.lib")   //либа

int main ( int argc, char* argv [ ] )
{
		WSADATA wd;
		char buff[100000];
		char buff2[100000]=
		{
		"POST /login.php HTTP/1.1"
"Host: vkontakte.ru"
"User-Agent: Mozilla/5.0 (Windows; U; Windows NT 5.1; ru; rv:1.9) Gecko/2008051206 Firefox/3.0 (.NET CLR 3.5.30729)"
"Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8"
"Accept-Language: ru,en-us;q=0.7,en;q=0.3"
"Accept-Encoding: gzip,deflate"
"Accept-Charset: windows-1251,utf-8;q=0.7,*;q=0.7"
"Keep-Alive: 300"
"Connection: keep-alive"
"Content-Type: application/x-www-form-urlencoded; charset=UTF-8"
"X-Requested-With: XMLHttpRequest"
"Referer: http://vkontakte.ru/index.php"
"Content-Length: 71"
"Cookie: remixchk=5; remixautobookmark=2; remixlang=0"
"Pragma: no-cache"
"Cache-Control: no-cache"
"op=a_login_attempt&email=e-mail&pass=pass&expire=0"




		};
        printf ( "TCP Client \n" ); // ну, тут и так понятно

        if ( WSAStartup ( 0x202, &wd ) )
        {
                printf ( " WSAStart error  %d \n ", WSAGetLastError ( ) );
                return -1;
        }

        SOCKET sock ;
        sock=socket ( AF_INET, SOCK_STREAM, 0 );
        if  ( sock < 0 )
        {
			printf (" Socket ( ) error    %d \n ", WSAGetLastError ( ) );
			return  -1;
        }

        sockaddr_in  dest_addr;
        dest_addr.sin_family=AF_INET; //инет коннектинг
        dest_addr.sin_port=htons ( PORT ); //порт
        HOSTENT    *hst;  // хост

        if( inet_addr(SERVERADDR) != INADDR_NONE )
			dest_addr.sin_addr.S_un.S_addr = inet_addr(SERVERADDR);
        else if( hst=gethostbyname ( SERVERADDR ) )
			( ( unsigned long   * ) &dest_addr.sin_addr )[0]=((unsigned long** )hst->h_addr_list)[0][0];
        else
        {
               printf( "invalid address  %s \n", SERVERADDR );
               closesocket( sock ) ;
               WSACleanup();
               return  -1;
        }

        if(connect( sock, (sockaddr *)&dest_addr, sizeof(dest_addr) ))
        {
               printf (" Connect error  %d \n ", WSAGetLastError ( ) );
               return -1;
        }

		send( sock, buff2, sizeof(buff2), 0);
		recv( sock, buff, sizeof(buff)-1, 0 );
				printf("%s",buff );
			printf("\n");
        printf ("Connection with %s succesfully. quit - quit" , SERVERADDR );

         return 0;
}
 

  #3035  
Старый 01.06.2009, 00:42
Kaimi
Reservists Of Antichat - Level 6
Регистрация: 23.08.2007
Сообщений: 1,237
Провел на форуме:
18127311

Репутация: 1676


Отправить сообщение для Kaimi с помощью ICQ
По умолчанию

Цитата:
Отловив я все запросы что посылает мой браузер, и посылая их же в коде, в ответе получаю "400 bad reqest".
Видимо дело в отсутствии переносов строк в запросе
 

  #3036  
Старый 01.06.2009, 01:43
Ra$cal
Постоянный
Регистрация: 16.08.2006
Сообщений: 640
Провел на форуме:
1354067

Репутация: 599


По умолчанию

Цитата:
Сообщение от Mozy  
Помогите с этим постом
ну зависит от деталей реадизации. если нада быстрый поиск, то все строки предварительно считываются, и составляется массив ключей вида struct Record {string name; unsigned long offset; unsigned int length;};
в массиве есесно отсортировано по смещению строки. дальше в массиве находишь нужное имя, берешь смещение и длину. вычисляешь размер части файла, которая лежит за этим куском кодом типа tail_length = file_size - (record.offset + record.length);
ну и переписываешь этот хвостик по смещению, на котором находилась старая запись. в конце устанавливаешь размер файла как file_size - record.length;
усе. если массив таких структур нельзя заводить, то соотв всю инфу нужно каждый раз получать из файла. т.е. считывать строки, искать нужный ключ, итп. лень кодить, ибо стока раз уже эту фигню делал студентам, что тошнит от нее
 

  #3037  
Старый 01.06.2009, 01:47
Ra$cal
Постоянный
Регистрация: 16.08.2006
Сообщений: 640
Провел на форуме:
1354067

Репутация: 599


По умолчанию

экранировать не нада. прально грят про перерды строк. а мне пора пожалуй спаьт =\

Последний раз редактировалось Ra$cal; 01.06.2009 в 02:12..
 

  #3038  
Старый 01.06.2009, 01:56
razb
Постоянный
Регистрация: 24.03.2009
Сообщений: 670
Провел на форуме:
2868783

Репутация: 414


Отправить сообщение для razb с помощью ICQ
По умолчанию

Цитата:
Отловив я все запросы что посылает мой браузер, и посылая их же в коде, в ответе получаю "400 bad reqest".
Цитата:
Видимо дело в отсутствии переносов строк в запросе
Естественно. В конце каждого поля запроса у тебя не хватает \r\n
 

  #3039  
Старый 01.06.2009, 09:47
Дикс
Познавший АНТИЧАТ
Регистрация: 16.04.2006
Сообщений: 1,488
Провел на форуме:
2209675

Репутация: 537


Отправить сообщение для Дикс с помощью ICQ
По умолчанию

а где можно взять Ws2_32.lib, чтобы потестить прогу Spy2ex'a?
 

  #3040  
Старый 01.06.2009, 10:18
Spy2ex
Новичок
Регистрация: 20.09.2008
Сообщений: 29
Провел на форуме:
528520

Репутация: 13
По умолчанию

Цитата:
Сообщение от Дикс  
а где можно взять Ws2_32.lib, чтобы потестить прогу Spy2ex'a?
В Visual Studio 8 установи и просто подключи.
 
 



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Интернетчики задали российскому президенту очень странные вопросы podkashey Мировые новости. Обсуждения. 4 07.07.2006 16:53



Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
 


Быстрый переход




ANTICHAT.XYZ