eLWAux
09.01.2009, 01:29
мониторинг КС сервера
version 0.2
language: perl
$host = хост
$port = порт
[+] добавил: проверка на LAC защиту
perl source:
use IO::Socket;
system('cls');
################################################## ########################
#####] (c)oDeD 6y eLWAux [################################################
################################################## ########################
################################################## ########################
################################################## ########################
################################################## ########################
sub parce_info_2 {
my $x = $_[0];
$x =~ /\xFF\xFF\xFF\xFF\x6D(.*)/;
$x = $1;
my @l=split(/\x00/,$x);
print ' Server Address = '.@l[0]."\n";
print ' Host Name = '.$l[1]."\n";
print ' Map Name = '.$l[2]."\n";
print ' Game Directory = '.$l[3]."\n";
print ' Game Description = '.$l[4]."\n";
print ' Player Count = '.hex(unpack('H2',substr($l[5],0,1)))."\n";
print ' Max Players = '.hex(unpack('H2',substr($l[5],1,1)))."\n";
print ' Protocol Version = '.hex(unpack('H2',substr($l[5],2,1)))."\n";
print ' Server Type = '.substr($l[5],3,1)."\n";
print ' Server OS = '.substr($l[5],4,1)."\n";
print ' Modded = '.hex(unpack('H2',substr($l[6],0,1)))."\n";
print ' Mod Website = '.substr($l[6],1,length($l[6]))."\n";
}
################################################## ########################
################################################## ########################
################################################## ########################
while (1==1){
system('cls');
print "\n";
print " ==-=-=-=-=-=-=-==-=-==-=-==-=-= \n";
$host = 'game.arbital.ru';
$port = '27018';
print ' = '.$host.':'.$port." = \n";
#=-====-==-=-
#= CONNECT =-
#=-=-==-===-=-=======-==-=-=-=-=--=-=
my $sock = new IO::Socket::INET(
PeerAddr=>$host,
PeerPort=>$port,
Proto=>'udp') || die "[-] No Server!";
$cmd="\xFF\xFF\xFF\xFFTSource Engine Query\x00";
syswrite $sock, $cmd;
sysread $sock,$x,65535;
parce_info_2($x);
#=-===-=-
#= LAC =-
#=-=-==-===-=-=======-==-=-=-=-=--=-=
$cmd="\x66\x66\x66\x66\x66\x66\x66\x66\xFF";
syswrite $sock, $cmd;
sysread $sock,$x,65535;
if ($x =~/true/) {
print " [+] LAC protected!\n";
}
#=-====-==
#= PING =-
#=-=-==-===-=-=======-==-=-=-=-=--=-=
$cmd="\xFF\xFF\xFF\xFF"."ping\x00";
syswrite $sock, $cmd;
sysread $sock,$x,65535;
$x =~ /\xFF\xFF\xFF\xFF(.*)\x00/;
$ping = hex(unpack('H2',$1));
print ' Ping = '.$ping."\n";
#=-====-==-=-
#= CONNECT =-
#=-=-==-===-=-=======-==-=-=-=-=--=-=
$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;
}
#=-====-===-==-=
#= GET COOKIE =-
#=-=-==-===-=-=======-==-=-=-=-=--=-=
$x=~/A00000000 (\d{10})\x20/;
$Cookie = $1;
print ' ==-=-= You Can Connect! =-===-='."\n";
print ' Cookie = '.$Cookie."\n";
close $sock;
print " ==-=-=-=-=-=-=-==-=-==-=-==-=-= \n";
sleep(5);
}
################################################## ########################
################################################## ########################
################################################## ########################
version 0.2
language: perl
$host = хост
$port = порт
[+] добавил: проверка на LAC защиту
perl source:
use IO::Socket;
system('cls');
################################################## ########################
#####] (c)oDeD 6y eLWAux [################################################
################################################## ########################
################################################## ########################
################################################## ########################
################################################## ########################
sub parce_info_2 {
my $x = $_[0];
$x =~ /\xFF\xFF\xFF\xFF\x6D(.*)/;
$x = $1;
my @l=split(/\x00/,$x);
print ' Server Address = '.@l[0]."\n";
print ' Host Name = '.$l[1]."\n";
print ' Map Name = '.$l[2]."\n";
print ' Game Directory = '.$l[3]."\n";
print ' Game Description = '.$l[4]."\n";
print ' Player Count = '.hex(unpack('H2',substr($l[5],0,1)))."\n";
print ' Max Players = '.hex(unpack('H2',substr($l[5],1,1)))."\n";
print ' Protocol Version = '.hex(unpack('H2',substr($l[5],2,1)))."\n";
print ' Server Type = '.substr($l[5],3,1)."\n";
print ' Server OS = '.substr($l[5],4,1)."\n";
print ' Modded = '.hex(unpack('H2',substr($l[6],0,1)))."\n";
print ' Mod Website = '.substr($l[6],1,length($l[6]))."\n";
}
################################################## ########################
################################################## ########################
################################################## ########################
while (1==1){
system('cls');
print "\n";
print " ==-=-=-=-=-=-=-==-=-==-=-==-=-= \n";
$host = 'game.arbital.ru';
$port = '27018';
print ' = '.$host.':'.$port." = \n";
#=-====-==-=-
#= CONNECT =-
#=-=-==-===-=-=======-==-=-=-=-=--=-=
my $sock = new IO::Socket::INET(
PeerAddr=>$host,
PeerPort=>$port,
Proto=>'udp') || die "[-] No Server!";
$cmd="\xFF\xFF\xFF\xFFTSource Engine Query\x00";
syswrite $sock, $cmd;
sysread $sock,$x,65535;
parce_info_2($x);
#=-===-=-
#= LAC =-
#=-=-==-===-=-=======-==-=-=-=-=--=-=
$cmd="\x66\x66\x66\x66\x66\x66\x66\x66\xFF";
syswrite $sock, $cmd;
sysread $sock,$x,65535;
if ($x =~/true/) {
print " [+] LAC protected!\n";
}
#=-====-==
#= PING =-
#=-=-==-===-=-=======-==-=-=-=-=--=-=
$cmd="\xFF\xFF\xFF\xFF"."ping\x00";
syswrite $sock, $cmd;
sysread $sock,$x,65535;
$x =~ /\xFF\xFF\xFF\xFF(.*)\x00/;
$ping = hex(unpack('H2',$1));
print ' Ping = '.$ping."\n";
#=-====-==-=-
#= CONNECT =-
#=-=-==-===-=-=======-==-=-=-=-=--=-=
$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;
}
#=-====-===-==-=
#= GET COOKIE =-
#=-=-==-===-=-=======-==-=-=-=-=--=-=
$x=~/A00000000 (\d{10})\x20/;
$Cookie = $1;
print ' ==-=-= You Can Connect! =-===-='."\n";
print ' Cookie = '.$Cookie."\n";
close $sock;
print " ==-=-=-=-=-=-=-==-=-==-=-==-=-= \n";
sleep(5);
}
################################################## ########################
################################################## ########################
################################################## ########################