function untwistBodyAction(&$amfbody) { $args = $amfbody->getValue(); //$newargs = array(); foreach ($args as $key => $ba) { //echo "<br>" . $ba->_explicitType; //echo "<br>" . $key; $data = $ba->data; //echo "<br>" . $data; $data = gzuncompress($data); //echo "<br>" . $data; $deserializer = new AMFDeserializer($data); // deserialize the data $obj = $deserializer->readAmf3Data(); //echo "<br>" . $obj; $args[$key] = $obj; } $amfbody->setValue($args); // return true; }
<?php /* This file will be use to decode Evony Packets for creating classes. * Out put should be in the form of array('cmd' => '', 'data' => array()) */ require_once 'amfphp/core/amf/app/Gateway.php'; require_once AMFPHP_BASE . 'amf/io/AMFSerializer.php'; require_once AMFPHP_BASE . 'amf/io/AMFDeserializer.php'; $packet = "0A 0B 01 09 64 61 74 61 0A 01 11 63 61 73 74 6C 65 49 64 04 C5 F6 6B 09 74 79 70 65 04 01 01 07 63 6D 64 06 25 71 75 65 73 74 2E 67 65 74 51 75 65 73 74 54 79 70 65 01 "; $Data = pack("H*", str_replace(" ", "", $packet)); $amf = new AMFObject($Data); $deserializer = new AMFDeserializer($amf->rawData); var_dump((object) $deserializer->readAmf3Data());
public function destructAMF($data) { $amf = new AMFObject($data); $deserializer = new AMFDeserializer($amf->rawData); return (object) $deserializer->readAmf3Data(); }
public static function decode($raw) { $amf = new \AMFObject($raw); $des = new \AMFDeserializer($raw); return $des->readAmf3Data(); }