ANTICHAT.XYZ    VIDEO.ANTICHAT.XYZ    НОВЫЕ СООБЩЕНИЯ    ФОРУМ  
Баннер 1   Баннер 2

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

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

Авторизатор для онлайн игр
  #1  
Старый 03.10.2008, 22:14
TGrey[WoLf]
Новичок
Регистрация: 03.10.2008
Сообщений: 2
Провел на форуме:
5322

Репутация: 0
По умолчанию Авторизатор для онлайн игр

Всем привет, меня интересует такой вопрос. Возможно ли на С++ написать авторизатор для Онлайн игр используя ВинСокеты. Тоесть Код отправляющий запрос я написал, даже запрос вроде как... Просто если брать для сравнения, то установив программу HTTp Analyzator и в нем есть утилита для создания запросов. Так вот выловив запрос от ИЕ когда происходит авторизация такой же запрос я посылаю через СОкет. Но тут такая ситуация, если запускать это запрос через ту Утилиту то в итоге я и получаю авторизированую страничку ну только с надписью "Ваш броузер не поддерживает фреймы" но страничка та что нужно, если же запускаю прогу с сокетами то получаю тот же результат за исключением того что не приходит код странички(размер = 0 ). Непойму почему.
И еще интерисует, как сохранять куки и использовать их дальше при следующих действиях программы.
Спасибо.
 
Ответить с цитированием

  #2  
Старый 04.10.2008, 00:29
Kaas
Познающий
Регистрация: 13.02.2007
Сообщений: 41
Провел на форуме:
137010

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

к сожалению не знаю как там в cpp, но в c# есть два замечательных класса для таких целей = HttpWebRequest/HttpWebRespone. По логике они стоят на ступеньку выше чем сокеты -- поэтому логичнее их юзать, а не сокеты. Плюс сюда же: при коннекте надо минимальную инфу передавать (user agent хотя бы), ну и конечно же из респонза вытаскивать кукисы
 
Ответить с цитированием

  #3  
Старый 04.10.2008, 07:55
Zabuldon
Участник форума
Регистрация: 06.04.2008
Сообщений: 102
Провел на форуме:
162579

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

У меня есть пример на php переписать под с++ не составит труда
 
Ответить с цитированием

  #4  
Старый 04.10.2008, 16:17
TGrey[WoLf]
Новичок
Регистрация: 03.10.2008
Сообщений: 2
Провел на форуме:
5322

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

Ну это само собой я посылаю полноценный запрос, но если через Утилиту все работает но пишет что Броузер не поддерживает фреймы - само собой я ж не через броузер посылаю запрос.
Через прогу же оно не принимает код странички.
Потом в этой игре Куки работают пока не закрыл пагу поэтому когда первый раз словил куки нужно не обрывать связь а ВинСок как мне извесно прекращают свою деятельность)) ПОэтому надо их зациклить или еще что чтобы связь не обрывалась или Асинхроные сокеты юзать(но с ними я еще не знаком).

Не поможешь?))
Вот то что у меня есть, ну тут все в коментах, это тестовая версия без редактирования.
Код:
#include <stdio.h>
#include <string.h>
#include <winsock2.h>
#include <windows.h>
#include <ctype.h>

#define PORT 80         //  Порт, через который идет подключение к серверу....21,80,25,110 и т.п.
#define SERVERADDR "77.91.229.20"     // Адрес сервера
 
int main ( int argc, char* argv [ ] )
{
		WSADATA wd;
		char buff[10000];
		char buff2[630]= {
"POST /member.php HTTP/1.1\r\n"
"Accept: image/gif, image/x-xbitmap, image/jpeg, image/pjpeg, application/x-shockwave-flash, application/x-icq, application/vnd.ms-excel, application/vnd.ms-powerpoint, application/msword, application/x-acclaim-launcherv1, */*\r\n"
"Referer: http://haddan.ru/\r\n"
"Cookie: PHPSESSID=u1rh2nr6aak9t4kaiepvv41d17\r\n"
"Accept-Language: ru\r\n"
"Content-Type: application/x-www-form-urlencoded\r\n"
"UA-CPU: x86\r\n"
"User-Agent: Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.1; .NET CLR 1.1.4322; .NET CLR 2.0.50727)\r\n"
"Host: haddan.ru\r\n"
"Connection: Keep-Alive\r\n"
"Pragma: no-cache\r\n"
"Content-Length: 33\r\n\r\n"
"username=USER&passwd=PASS"
		};

        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;
        }

		//sprintf( buff2, "GET /room/func/mine.php HTTP/1.1\r\nHost: haddan.ru\r\nConnection: Close\r\n\r\n");
		send( sock, buff2, sizeof(buff2), 0);
		recv( sock, buff, sizeof(buff)-1, 0 );
		//for(int i=0; i < strlen(buff); i++)
		//	if(isalnum(buff[i]) || buff[i] == '<'|| buff[i] == '>' || buff[i] == '/')
				printf("%s",buff );
		//	else
		//		continue;
			printf("\n");
        printf ("Connection with %s succesfully. quit - quit" , SERVERADDR );
        //int nsize;
        /*while( ( nsize = recv( sock, buff, sizeof(buff)-1, 0 ) ) != SOCKET_ERROR )
        {
				buff[ nsize ] =0;
                printf ( " S=>C: %s ", buff  ) ;
                printf ( "S<=C: " ) ;
                fgets ( &buff [0], sizeof( buff )-1, stdin );
                if  ( !strcmp ( &buff[0], "quit\n" ) )
                {
						printf ( " Exit " );
                        closesocket ( sock ) ; //выход правильный
                        WSACleanup() ;
                        return 0;
                }
                send ( sock, &buff [ 0 ], nsize, 0 ) ;
         }*/

         //printf ( " Recv error  %d \n", WSAGetLastError ( )  );
         //closesocket ( sock ) ;
         //WSACleanup ( ) ;
         return 0;
}
 
Ответить с цитированием
Ответ



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
несколько программ для работы с почтой - экстрактор e-mail адресов и спамер sabotag E-Mail 14 07.08.2009 04:14
Шаблоны для форумов и Cms lisa99 ПО для Web разработчика 4 22.02.2009 14:27
Инструменты сетевой безопасности baltazar Soft - Windows 2 20.05.2008 23:03
комплекс SEO-master SQL SЕО - тонкости, методы раскрутки 2 19.03.2008 20:22
Инструмент сисадмина. Загрузочный CD - Frenzy.(All in One) xxChaoSxx *nix 3 04.03.2008 22:00



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


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




ANTICHAT.XYZ