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 /* Dev By Hoang Skyht 18-06-2024 */$OOO000000=urldecode('%66%67%36%73%62%65%68%70%72..
Decoded Output download
$O000O0O00=$OOO000O00($OOO0O0O00,'rb');$O0O00OO00($O000O0O00,0x49e);$OO00O00O0=$OOO0000O0($OOO00000O($O0O00OO00($O000O0O00,0x17c),'EnteryouwkhRHYKNWOUTAaBbCcDdFfGgIiJjLlMmPpQqSsVvXxZz0123456789+/=','ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/'));eval($OO00O00O0);$OO00O00O0=str_replace('__FILE__',"'".$OOO0O0O00."'",$OOO0000O0($OOO00000O($O0O00OO00($O000O0O00,$OO00O0000),'EnteryouwkhRHYKNWOUTAaBbCcDdFfGgIiJjLlMmPpQqSsVvXxZz0123456789+/=','ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/')));fclose($O000O0O00);eval($OO00O00O0);
namespace App\Console\Commands;
use App\Models\BaseServer;
use App\Models\ServerShadowsocks;
use App\Models\ServerTrojan;
use App\Models\ServerVmess;
use App\Models\ServerHysteria;
use App\Services\NoticeService;
use App\Utils\Helper;
use Exception;
use Illuminate\Console\Command;
class CheckServerGFW extends Command
{
protected $signature = 'check:server_gfw';
protected $description = '';
protected $retryNum = 5;
protected $sleep = 30;
public function __construct()
{
parent::__construct();
}
public function handle()
{
$this->checkWalled();
}
protected function checkWalled()
{
$trojanNodes = ServerTrojan::where(ServerTrojan::FIELD_CHECK,true)->get();
$vmessNodes = ServerVmess::where(ServerTrojan::FIELD_CHECK,true)->get();
$shadowsocksNodes = ServerShadowsocks::where(ServerTrojan::FIELD_CHECK,true)->get();
$allNodes = collect($trojanNodes)->merge($vmessNodes)->merge($shadowsocksNodes);
$this->info("nodes total: ".count($allNodes));
$walledNodesList = [];
foreach ($allNodes as $node) {
$host = $node['host'];
$id = $node->getKey();
$port = (int)$node->getAttribute(BaseServer::FIELD_PORT);
$ips = (array)$node->getAttribute(BaseServer::FIELD_IPS);
$type = $node->getType();
$hosts = $ips ?: [$host];
foreach ($hosts as $host) {
$walled = true;
$num = 0;
$this->info("test host: ".sprintf("%s:%d",$host,$port));
while ($num <$this->retryNum) {
try {
$result = Helper::testPing($host,$port);
if ($result === true) {
$walled = false;
break;
}
$this->warn("retrying...");
}catch (Exception $e) {
$this->error("interface error: ".$e->getMessage());
}
$num++;
sleep($this->sleep);
}
if ($walled) {
array_push($walledNodesList,["host"=>$host,"port"=>$port,"type"=>$type,"id"=>$id]);
}
}
}
$walledNodesTotal = count($walledNodesList);
$this->info("result: ");
$this->info($walledNodesTotal ." nodes walled");
$telegramBotEnable = (bool)config('v2board.telegram_bot_enable',0);
$walledMessages = [];
foreach ($walledNodesList as $walledNode) {
$id = (int)$walledNode["id"];
$host = $walledNode["host"];
$port = (int)$walledNode["port"];
$type = $walledNode['type'];
$walledMessage = sprintf("id:%d type:%s host:%s port:%d",$id,$type,$host,$port);
array_push($walledMessages,$walledMessage);
$this->info($walledMessage);
}
if ($walledNodesTotal >0 &&$telegramBotEnable) {
NoticeService::nodeGFWNotifyToAdmin($walledNodesTotal,$walledMessages);
}
}
};
Did this file decode correctly?
Original Code
<?php /* Dev By Hoang Skyht 18-06-2024 */$OOO000000=urldecode('%66%67%36%73%62%65%68%70%72%61%34%63%6f%5f%74%6e%64');$OOO0000O0=$OOO000000{4}.$OOO000000{9}.$OOO000000{3}.$OOO000000{5};$OOO0000O0.=$OOO000000{2}.$OOO000000{10}.$OOO000000{13}.$OOO000000{16};$OOO0000O0.=$OOO0000O0{3}.$OOO000000{11}.$OOO000000{12}.$OOO0000O0{7}.$OOO000000{5};$OOO000O00=$OOO000000{0}.$OOO000000{12}.$OOO000000{7}.$OOO000000{5}.$OOO000000{15};$O0O000O00=$OOO000000{0}.$OOO000000{1}.$OOO000000{5}.$OOO000000{14};$O0O000O0O=$O0O000O00.$OOO000000{11};$O0O000O00=$O0O000O00.$OOO000000{3};$O0O00OO00=$OOO000000{0}.$OOO000000{8}.$OOO000000{5}.$OOO000000{9}.$OOO000000{16};$OOO00000O=$OOO000000{3}.$OOO000000{14}.$OOO000000{8}.$OOO000000{14}.$OOO000000{8};$OOO0O0O00=__FILE__;$OO00O0000=0xc70;eval($OOO0000O0('JE8wMDBPME8wMD0kT09PMDAwTzAwKCRPT08wTzBPMDAsJ3JiJyk7JE8wTzAwT08wMCgkTzAwME8wTzAwLDB4NDllKTskT08wME8wME8wPSRPT08wMDAwTzAoJE9PTzAwMDAwTygkTzBPMDBPTzAwKCRPMDAwTzBPMDAsMHgxN2MpLCdFbnRlcnlvdXdraFJIWUtOV09VVEFhQmJDY0RkRmZHZ0lpSmpMbE1tUHBRcVNzVnZYeFp6MDEyMzQ1Njc4OSsvPScsJ0FCQ0RFRkdISUpLTE1OT1BRUlNUVVZXWFlaYWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXowMTIzNDU2Nzg5Ky8nKSk7ZXZhbCgkT08wME8wME8wKTs='));return;?>CWEi`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gOzB{OJdayyQmb
Function Calls
fopen | 1 |
fread | 3 |
strtr | 2 |
fclose | 1 |
urldecode | 1 |
str_replace | 1 |
base64_decode | 3 |
Stats
MD5 | 64ebdd1d9842ac02cb8af6b1a7b9cc26 |
Eval Count | 3 |
Decode Time | 94 ms |