Online PHP and Javascript Decoder decode hidden script to uncover its real functionality


namespace ZenithManager\Commands;

use pocketmine\command\Command;
use pocketmine\command\CommandSender;
use pocketmine\Player;
use pocketmine\plugin\Plugin;
use pocketmine\utils\Config;
use pocketmine\event\Listener;
use pocketmine\event\player\PlayerCommandPreprocessEvent;

class Snoop extends Command implements Listener {

	private $plugin;
	private $cfg;
	private $snoopers = [];

	public function __construct(){
		parent::__construct("snoop", "/snoop", "Toggle command snooping");
		$this->setPermission("zenithmanagercommandsnoop");

		// Get plugin instance
		$this->plugin = \pocketmine\Server::getInstance()->getPluginManager()->getPlugin("ZenithManager");

		// Ensure folder exists
		@mkdir($this->plugin->getDataFolder());

		// Create config file directly
		$this->cfg = new Config($this->plugin->getDataFolder() . "snoopyml", Config::YAML, [
			"ConsoleLogger" => "true"
		]);

		// Register event listener
		$this->plugin->getServer()->getPluginManager()->registerEvents($this, $this->plugin);
	}

	public function execute(CommandSender $sender, $label, array $args){
		if(!$sender instanceof Player) return false;
		if(!$this->testPermission($sender)) return false;

		$name = $sender->getName();

		if(!isset($this->snoopers[$name])){
			$this->snoopers[$name] = $sender;
			$sender->sendMessage("§l§b»§r§a Snoop Enabled!");
		} else {
			unset($this->snoopers[$name]);
			$sender->sendMessage("§l§b»§r§c Snoop Disabled!");
		}
		return true;
	}

	public function onPlayerCommand(PlayerCommandPreprocessEvent $event){
		$sender = $event->getPlayer();
		

		if($this->cfg->get("ConsoleLogger") === "true"){
			if($this->isCommand($msg)){
				if($this->isSensitive($msg)){
					$this->plugin->getLogger()->info($sender->getName() . " > Hidden for security reasons");
				} else {
					$this->plugin->getLogger()->info("§7" . $sender->getName() . " §8»§f " . $msg);
				}
			}
		}

		foreach($this->snoopers as $snooper){
			if($this->isCommand($msg)){
				if($this->isSensitive($msg)){
					$snooper->sendMessage($sender->getName() . " > Hidden for security reasons");
				} else {
					$snooper->sendMessage("§7" . $sender->getName() . " §8»§f " . $msg);
				}
			}
		}
	}

	private function isCommand($msg){
		return "$" === "/" || "$" === "!" || "$" === "-";
	}

	private function isSensitive($msg){
		return stripos($msg, "login") !== false ||
		       stripos($msg, "log") !== false ||
		       stripos($msg, "reg") !== false ||
		       stripos($msg, "register") !== false;
	}
}



© 2023 Quttera Ltd. All rights reserved.