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

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

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

  #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
Познавший АНТИЧАТ
Регистрация: 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 установи и просто подключи.
 
Ответить с цитированием
Ответ



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Часто задаваемые вопросы по MySQL Серый PHP 5 28.12.2006 18:26
Интернетчики задали российскому президенту очень странные вопросы podkashey Мировые новости. Обсуждения. 4 07.07.2006 16:53
Вопросы по Ipb 2.0 Voodoo_People Уязвимости CMS / форумов 26 15.02.2005 22:57



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


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




ANTICHAT.XYZ