Fixes, structure

This commit is contained in:
Shoghi Cervantes Pueyo 2012-12-06 01:21:39 +01:00
parent c71801145e
commit fc63676bde
5 changed files with 37 additions and 37 deletions

View File

@ -49,36 +49,40 @@ class CustomPacketHandler{
$this->offset = 0;
$this->c = (bool) $create;
switch($pid){
case 0x00:
if($this->c === false){
$this->data["payload"] = Utils::readLong($this->get(8));
}else{
$this->raw .= Utils::writeLong($this->data["payload"]);
}
break;
case 0x09:
if($this->c === false){
$this->data["clientID"] = $this->get(8);
$this->data["unknown1"] = $this->get(4);
$this->data["session"] = $this->get(2);
$this->data["unknown2"] = $this->get(2);
$this->data["session"] = Utils::readLong($this->get(8));
$this->data["unknown2"] = $this->get(1);
}else{
$this->raw .= $this->data["clientID"];
$this->raw .= "\x00\x00\x00\x00\x00";
$this->raw .= $this->data["session"];
$this->raw .= "\x19\x00";
$this->raw .= Utils::writeLong($this->data["session"]);
$this->raw .= "\x00";
}
break;
case 0x10:
if($this->c === false){
$this->data["cookie"] = $this->get(4); // 043f57ff
$this->data["unknown1"] = $this->get(1);
$this->data["cookie"] = $this->get(4); // 043f57fe
$this->data["security"] = $this->get(1);
$this->data["port"] = Utils::readShort($this->get(2), false);
$this->data["dataArray"] = Utils::readDataArray($this->get(true, false), 10, $offset);
$this->get($offset);
$this->data["unknown2"] = $this->get(8);
$this->data["unknown3"] = $this->get(2);
$this->data["unknown4"] = $this->get(5);
$this->data["session"] = $this->get(2);
$this->data["unknown1"] = $this->get(2);
$this->data["session"] = Utils::readLong($this->get(8));
$this->data["session2"] = Utils::readLong($this->get(8));
}else{
$this->raw .= "\x04\x3f\x57\xff";
$this->raw .= "\x3f";
$this->raw .= "\x04\x3f\x57\xfe";
$this->raw .= "\xcd";
$this->raw .= Utils::writeShort($this->data["port"]);
$this->raw .= Utils::writeDataArray(array(
"\x80\xff\xff\xfe",
"\xff\xff\xff\xff",
"\xff\xff\xff\xff",
"\xff\xff\xff\xff",
"\xff\xff\xff\xff",
@ -89,30 +93,32 @@ class CustomPacketHandler{
"\xff\xff\xff\xff",
"\xff\xff\xff\xff",
));
$this->raw .= "\x00\x00\x00\x00\x00\x00\x00\x00";
$this->raw .= "\x0c\x98";
$this->raw .= "\x00\x00\x00\x00\x00\x00\x00\x00";
$this->raw .= $this->data["session"];
$this->raw .= "\x00\x00";
$this->raw .= Utils::writeLong($this->data["session"]);
$this->raw .= Utils::writeLong($this->data["session2"]);
}
break;
case 0x13:
if($this->c === false){
$this->data["cookie"] = $this->get(4); // 043f57ff
$this->data["unknown1"] = $this->get(1);
$this->data["cookie"] = $this->get(4); // 043f57fe
$this->data["security"] = $this->get(1);
$this->data["port"] = Utils::readShort($this->get(2), false);
$this->data["dataArray0"] = $this->get(ord($this->get(1)));
$this->data["dataArray"] = Utils::readDataArray($this->get(true, false), 9, $offset);
$this->get($offset);
$this->data["unknown2"] = $this->get(13);
$this->data["unknown1"] = $this->get(2);
$this->data["session2"] = Utils::readLong($this->get(8));
$this->data["session"] = Utils::readLong($this->get(8));
}else{
$this->raw .= "\x04\x3f\x57\xff";
$this->raw .= "\x3e";
$this->raw .= "\x04\x3f\x57\xfe";
$this->raw .= "\xed";
$this->raw .= Utils::writeShort($this->data["port"]);
$w = array_shift($this->data["dataArray"]);
$this->raw .= chr(strlen($w)).$w;
$this->raw .= Utils::writeDataArray($this->data["dataArray"]);
$this->raw .= "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00";
$this->raw .= $this->data["session"]."\x5e";
$this->raw .= "\x00\x00";
$this->raw .= Utils::writeLong($this->data["session2"]);
$this->raw .= Utils::writeLong($this->data["session"]);
}
break;
case 0x15:
@ -175,13 +181,6 @@ class CustomPacketHandler{
$this->raw .= Utils::writeShort(strlen($this->data["message"])).$this->data["message"];
}
break;
case 0x00:
if($this->c === false){
$this->data["payload"] = $this->get(8);
}else{
$this->raw .= $this->data["payload"];
}
break;
}
}

View File

@ -118,7 +118,7 @@ class PocketMinecraftClient{
array(
"id" => 0x09,
"clientID" => $this->clientID,
"session" => Utils::getRandomBytes(2),
"session" => "\x00\x00\x00\x00\x03\x1c\xaf\x05",
),
));
++$this->counter[0];

View File

@ -91,9 +91,9 @@ class Session{
0x00,
array(
"id" => 0x10,
"count" => 0,
"port" => $this->port,
"session" => $data[2]["session"],
"session" => $data["session"],
"session2" => Utils::readLong("\x00\x00\x00\x00\x04\x44\x0b\xa9"),
),
));
++$this->counter[0];

View File

@ -337,7 +337,7 @@ class Utils{
public static function writeLong($value){
$long = new Math_BigInteger($value, -10);
return $long->toBytes(true);
return str_pad($long->toBytes(true), 8, "\x00", STR_PAD_LEFT);
}
}

View File

@ -30,6 +30,7 @@ $dataName = array(
0x09 => "ClientHandshake",
0x10 => "ServerHandshake",
0x13 => "ClientConnect",
0x15 => "ClientDisconnect",
0x82 => "Login",
0x83 => "LoginStatus",