ANTICHAT.XYZ    VIDEO.ANTICHAT.XYZ    НОВЫЕ СООБЩЕНИЯ    ФОРУМ  
Баннер 1   Баннер 2
Antichat снова доступен.
Форум Antichat (Античат) возвращается и снова открыт для пользователей. Здесь обсуждаются безопасность, программирование, технологии и многое другое. Сообщество снова собирается вместе.
Новый адрес: forum.antichat.xyz
Вернуться   Форум АНТИЧАТ > Программирование > С/С++, C#, Delphi, .NET, Asm
   
Ответ
 
Опции темы Поиск в этой теме Опции просмотра

Counter Strike
  #1  
Старый 04.12.2008, 20:43
ronald
Участник форума
Регистрация: 27.03.2008
Сообщений: 288
Провел на форуме:
800727

Репутация: 83
Отправить сообщение для ronald с помощью ICQ
Question Counter Strike

Народ, интересует как реализовать механизм подключения к серверу Counter-strike 1.6, из результатов снифера, понял, что там передаются специальные пакеты, а как это реализовать . Может кто подскажет?
 
Ответить с цитированием

  #2  
Старый 04.12.2008, 21:36
De-visible
Banned
Регистрация: 06.01.2008
Сообщений: 904
Провел на форуме:
4037638

Репутация: 1821


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

передать такие же пакеты.
 
Ответить с цитированием

  #3  
Старый 04.12.2008, 21:54
eLWAux
Members of Antichat - Level 5
Регистрация: 15.06.2008
Сообщений: 941
Провел на форуме:
5111568

Репутация: 2399


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

(а вдруг ти перл знаеш?))

сорс для парсинга сервера, может тебе поможет..:
Код:
use IO::Socket;

system('cls');
##########################################################################
#####] (c)oDeD 6y eLWAux [################################################
##########################################################################

##########################################################################
##########################################################################
##########################################################################

 sub readFile {
 	open myFILE, "<$_[0]" or die $!;
 	while (<myFILE>) { chomp; $res.=$_; }
 	return $res;
 	close myFILE;
	}

 sub saveFile {
	open(myFILE,">$_[0]") || die "error: $!";
	print myFILE $_[1];
	close(myFILE);
	} 

 sub p { print '>'.$_[0]."<\n" }

 sub parce_info_1 {
	 my $x = $_[0];

	 $x =~ /\xFF\xFF\xFF\xFFm$host.$port\x00(\D+)/;
	 $Host_Name = $1.substr($',0,(index $',"\x00"));

	 $x = substr($x, 8+length($host.$port.$Host_Name),999);
	 $Map_Name = substr($x,0,(index $x,"\x00"));

	 $x = substr($x, length($Map_Name)+1, 999);
	 $Game_Dir = substr($x,0,(index $x,"\x00"));

	 $x = substr($x, length($Game_Dir)+1, 999);
	 $Game_Desc = substr($x,0,(index $x,"\x00"));
	
	 $x = substr($x, length($Game_Desc)+1, 999);
	 $Now_Players = hex(unpack('h',substr($x,0,1)));
	 $Max_Players = hex(unpack('H2',substr($x,1,1))); #???
	 $Protocol = hex(unpack('H2',substr($x,2,1)));
	 $S_type = substr($x,3,1);
		if ($S_type eq 'l') {$S_type='listen'}
		elsif ($S_type eq 'd') {$S_type='dedicated'}
	 $S_OS = substr($x,4,1);
		if ($S_OS eq 'l') {$S_OS='linux'}
		elsif ($S_OS eq 'w') {$S_OS='windows'}
	 $Passw = hex(unpack('H2',substr($x,5,1)));
		if ($Passw==0) {$Passw='no'} else {$Passw='yes'}
	 $Modded = hex(unpack('H2',substr($x,6,1)));
		if ($Modded==0) {$Modded='no'} else {$Modded='yes'}

	 $x = substr($x,7,999);
	 $Mod_url = substr($x,0,(index $x,"\x00"));

	 $x = substr($x,length($Mod_url)+1,999);
	 $Mod_dwn = substr($x,0,(index $x,"\x00"));

	 $x = substr($x,length($Mod_dwn)+1,999);

	 $x = substr($x,length($x)-2,1);
		if ($x==0) {$Secure = 'no'} else {$Secure = 'yes'}
	 
	 p('Secure         : '.$Secure      );
	 p('Mod_dwn        : '.$Mod_dwn     );
	 p('Mod_url        : '.$Mod_url     );
	 p('Modded         : '.$Modded      );
	 p('Passw          : '.$Passw       );
	 p('S_OS           : '.$S_OS        );
	 p('S_type         : '.$S_type      );
	 p('Protocol       : '.$Protocol    );
	 p('NowPlayers     : '.$Now_Players );
	 p('MaxPlayers     : '.$Max_Players );
	 p('HostName       : '.$Host_Name   );
	 p('MapName        : '.$Map_Name    );
	 p('GameDirectory  : '.$Game_Dir    );
	 p('GameDescription: '.$Game_Desc   );
	}
##########################################################################
##########################################################################
##########################################################################
 
 system('cls');

 $host = '85.214.34.55';
 $port = '27018';

 print '[i] '.$host.':'.$port."\n";

 my $sock = new IO::Socket::INET(
		PeerAddr=>$host,
		PeerPort=>$port,
		Proto=>'udp') || die "[-] No Server!";

 $cmd="\xFF\xFF\xFF\xFF"."TSource Engine Query\x00";
 syswrite $sock, $cmd;
 sysread $sock,$x,65535; 
 #saveFile('f1.txt',$x);
 parce_info_1($x);


 $cmd="\xFF\xFF\xFF\xFF"."ping\x00";
 syswrite $sock, $cmd;
 sysread $sock,$x,65535; 
 #saveFile('ping.txt',$x);


 $cmd="\xFF\xFF\xFF\xFF"."getchallenge\x00";
 syswrite $sock, $cmd;
 sysread $sock,$x,65535;
 if ($x =~ /SERVERISFULL/) {
	print "[-] Server is full!\n";
	exit;
	}
 elsif ($x =~ /BADPASSWORD/) {
	print "[-] Bad password!\n";
	exit;
	}
 $x=~/A00000000 (\d{10})\x20/;
 $Cookie = $1;
 p('Cookie         : '.$Cookie);
 #saveFile('f2.txt',$x);

 close $sock; 

##########################################################################
##########################################################################
##########################################################################
кстате, на форуме я уже поднимал похожий вопрос:
https://forum.antichat.ru/thread93517.html

и там мне дали линки:
http://dev.int64.org/docs/gamestat-protocols/halflife.html
http://developer.valvesoftware.com/wiki/Server_Queries
http://developer.valvesoftware.com/wiki/Special:Search?search=protocol&go=Go
http://dump.ru/file/1249347 php class для работи с cs протоколом

вот что я сам нашел: http://www.securitylab.ru/analytics/216301.php лучшее!

и.. у меня возникли проблеми с отправкой пакетов "players" и "inforstring".. х3.. может єто с протокол связано..

разбирайся)

Последний раз редактировалось eLWAux; 04.12.2008 в 22:11.. Причина: сорс на перле)
 
Ответить с цитированием

  #4  
Старый 04.12.2008, 23:27
eLWAux
Members of Antichat - Level 5
Регистрация: 15.06.2008
Сообщений: 941
Провел на форуме:
5111568

Репутация: 2399


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

через Delphi тебе надо сделать подключения через socket'и и отправлять некоторые пакети на серв.. ищи доки.. вот несколько:
http://www.example-code.com/delphi/socket.asp
http://forum.telenet.ru/index.php?showtopic=64203&st=0&p=1053520&#entry105 3520
вот ирка: http://forum.sources.ru/index.php?showtopic=53816
http://faqs.org.ru/progr/pascal/delphi_internet2.htm
поищи на delphisources.ru примери..

описания пакетов тут: http://dev.int64.org/docs/gamestat-protocols/halflife.html
 
Ответить с цитированием

  #5  
Старый 04.12.2008, 23:35
cylaaaan
Участник форума
Регистрация: 31.08.2006
Сообщений: 149
Провел на форуме:
1763379

Репутация: 155
Отправить сообщение для cylaaaan с помощью ICQ
По умолчанию

скажи плз каким ты снифером пользовался?
я вот тоже хочу проследить действия с инетом опр. программы,а не знаю чем, попадаются только LAN сниферы ((
 
Ответить с цитированием

  #6  
Старый 05.12.2008, 00:02
vikseriq
Участник форума
Регистрация: 31.07.2008
Сообщений: 207
Провел на форуме:
299231

Репутация: 107
Отправить сообщение для vikseriq с помощью ICQ
По умолчанию

Wireshark, Iris
 
Ответить с цитированием

  #7  
Старый 06.12.2008, 19:03
ronald
Участник форума
Регистрация: 27.03.2008
Сообщений: 288
Провел на форуме:
800727

Репутация: 83
Отправить сообщение для ronald с помощью ICQ
По умолчанию

EtherDetect, ток у меня демка на 30 дней, аднако ломается простой переставкой системного времени
 
Ответить с цитированием

  #8  
Старый 08.12.2008, 20:04
th13fnano
Новичок
Регистрация: 08.12.2008
Сообщений: 8
Провел на форуме:
4529

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

MultiSniffer - сниферитт все tcp пакеты - есть еще на фикипедии опенсорс сниффер погугли
 
Ответить с цитированием

  #9  
Старый 28.12.2008, 22:28
vvs777
Познавший АНТИЧАТ
Регистрация: 16.11.2004
Сообщений: 1,257
Провел на форуме:
1331503

Репутация: 454


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

Цитата:
как реализовать механизм подключения к серверу Counter-strike 1.6
с помощью всего вышеописанного можно только подключиться.
Описания же, как отправить мессагу (для рекламы по сервакам), как передаются пинги, координаты итп нигде нет. + можно заметить что длина пакетов непостоянна.
Я над этим делом уже достаточно долго работаю.

ComradeBot тому пример.
 
Ответить с цитированием

  #10  
Старый 03.01.2009, 18:21
A_V
Участник форума
Регистрация: 18.02.2008
Сообщений: 125
Провел на форуме:
562108

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

Может я конечно бред говорю, но не проще заходить через саму КС?
ПРосто реализовать, что бы прога вбивала в консоль игры по очереди "Connect XXXXXXXXXXXX", где ХХХ - ИП, которые будет браться из Текстового файлика( ну к примеру пока так пусть будет), затем тайм аут на секунд 30, затем через консоль "say YYYYYYYYYYYYY", где игрик - реклама...

Вот принципе и все, дело за малым...
 
Ответить с цитированием
Ответ



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Ваши любимые компьютерные игры PEPSICOLA Болталка 280 19.08.2009 00:01
Играем в Counter Strike 2D .AkeLLa Болталка 7 01.12.2008 19:39
Sudden Strike 3: Arms for Victory -=ToYs=- Болталка 0 30.07.2005 22:50



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


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




ANTICHAT.XYZ