Codefreigabe zur PHP-Trojaner-Erkennung
In diesem Artikel stellen wir Ihnen einen Code vor, den PHP-Web-Trojaner-Scanner. Freunde, die es brauchen, können den Code einfach kopieren und verwenden. Der Code ist supereinfach und kommt mit Kommentaren. Ich hoffe, es hilft allen.
Kein Unsinn mehr, einfach den Code posten.
Der Code lautet wie folgt:
<?php header('content-type:text/html;charset=gbk'); set_time_limit(0);//防止超时 /** * * php目录扫描监控增强版 * * @version 1.0 * 下面几个变量使用前需要手动设置 * **/ /*===================== 程序配置 =====================*/ $pass="test";//设置密码 $jkdir="."; //设置监控扫描的目录,当前目录为'.',上一级目录为'..',也可以设置绝对路径,后面不要加斜杠,默认为当前目录 $logfilename="./m.log";//设置存储log的路径,可以放置在任意位置 $exclude=array('data','images');//排除目录 $danger='eval|cmd|passthru|gzuncompress';//设置要查找的危险的函数 以确定是否木马文件 $suffix='php|inc';//设置要扫描文件的后缀 /*===================== 配置结束 =====================*/ $filename=$_GET['filename']; $check=$_GET['check']; $jumpoff=false; $url = $_SERVER['PHP_SELF']; $thisfile = end(explode('/',$url)); $jump="{$thisfile}|".implode('|',$exclude); $jkdir_num=$file_num=$danger_num=0; define('M_PATH',$jkdir); define('M_LOG',$logfilename); if ($check=='check') { $safearr = explode("|",$jump); $start_time=microtime(true); safe_check($jkdir); $end_time=microtime(true); $total=$end_time-$start_time; $file_num=$file_num-$jkdir_num; $message= " 文件数:".$file_num; $message.= " 文件夹数:".$jkdir_num; $message.= " 可疑文件数:".$danger_num; $message.= " 执行时间:".$total; echo $message; }else{ if ($_GET['m']=="del") Delete();//处理文件删除 //读取文件内容 if(isset($_GET['readfile'])){ //输出查看密码,密码校验正确以后输出文件内容 if(empty($_POST['passchack'])){ echo"<form id=\"form1\" name=\"form1\" method=\"post\">" . " <label>pass" . " <input type=\"text\" name=\"passchack\" />" . " </label>" . " <input type=\"submit\" name=\"Submit\" value=\"提交\" />" . "</form>" .""; exit; }elseif(isset($_POST['passchack'])&&$_POST['passchack']==$pass){ $code=file_get_contents($_GET['readfile']); echo"<textarea name=\"code\" cols=\"150\" rows=\"30\" id=\"code\" style='width:100%;height:450px;background:#cccccc;'>{$code}</textarea>"; exit; }else{ exit; } }else{ record_md5(M_PATH); if(file_exists(M_LOG)){ $log = unserialize(file_get_contents(M_LOG)); }else{ $log = array(); } if($_GET['savethis']==1){ //保存当前文件md5到日志文件 @unlink(M_LOG); file_put_contents(M_LOG,serialize($file_list)); echo "<a href='scandir.php'>保存成功!点击返回</a>"; exit; } if(empty($log)){ echo "当前还没有创建日志文件!点击[保存当前]创建日志文件!"; }else{ if($file_list==$log){ echo "本文件夹没有做过任何改动!"; }else{ if(count($file_list) > 0 ){ foreach($file_list as $file => $md5){ if(!isset($log[$file])){ echo "新增文件:<a href={$file} target='_blank'>".$file."</a>"." 创建时间:".date("Y-m-d H:i:s",filectime($file))." 修改时间:".date("Y-m-d H:i:s",filemtime($file))." <a href=?readfile={$file} target='_blank'>源码</a><a href='?m=del&filename={$file}' target='_blank'>删除</u></a><br />"; }else{ if($log[$file] != $md5){ echo "修改文件:<a href={$file} target='_blank'>".$file."</a>"." 创建时间:".date("Y-m-d H:i:s",filectime($file))." 修改时间:".date("Y-m-d H:i:s",filemtime($file))." <a href=?readfile={$file} target='_blank'>源码</a><br />"; unset($log[$file]); }else{ unset($log[$file]); } } } } if(count($log)>0){ foreach($log as $file => $md5){ echo "删除文件:<a href={$file} target='_blank'>".$file."</a><br />"; } } } } } } //计算md5 function record_md5($jkdir){ global $file_list,$exclude; if(is_dir($jkdir)){ $file=scandir($jkdir); foreach($file as $f){ if($f!='.' && $f!='..' && !in_array($f, $exclude)){ $path = $jkdir.'/'.$f; if(is_dir($path)){ record_md5($path); }else{ $file_list[$path]=md5_file($path); } } } } } function Safe_Check($jkdir)//遍历文件 { global $danger ,$suffix ,$jkdir_num ,$file_num ,$danger_num; ) or die('文件夹不存在') ; while ($file=$hand->read()) { $filename=$jkdir.'/'.$file; if (!$jumpoff) { if(Jump($filename))continue; } if(@is_dir($filename) && $file != '.' && $file!= '..'&& $file!='./..') { $jkdir_num++; Safe_Check($filename); } if (preg_match_all ("/\.($suffix)/i",$filename,$out)) { $str=''; $fp = @fopen($filename,'r')or die('没有权限'); while(!feof($fp)) { $str .= fgets($fp,1024); } fclose($fp); if( preg_match_all ("/($danger)[ \r\n\t]{0,}([\[\(])/i",$str,$out)) { echo "<font color='green' style='font-size:14px'>可疑文件:{$filename}</font>"." 创建时间:".date("Y-m-d H:i:s",filectime($filename))." 修改时间:".date("Y-m-d H:i:s",filemtime($filename))." <a href='?readfile={$filename}' target='_blank'><u>查看代码</u></a> <a href='?m=del&filename=$filename' target='_blank'>删除</u></a><br>"; $danger_num++; } } $file_num++; } } function Edit()//查看可疑文件 { global $filename; $filename = str_replace("..","",$filename); $file = $filename; $content = ""; if(is_file($file)) { $fp = fopen($file,"r")or die('没有权限'); $content = fread($fp,filesize($file)); fclose($fp); $content = htmlspecialchars($content); } echo "<textarea name='str' style='width:100%;height:450px;background:#cccccc;'>$content</textarea>\r\n"; exit(); } function Delete()//删除文件 { global $filename,$pass; if(empty($_POST['passchack'])){ echo"<form id=\"form1\" name=\"form1\" method=\"post\">" . " <label>pass" . " <input type=\"text\" name=\"passchack\" />" . " </label>" . " <input type=\"submit\" name=\"Submit\" value=\"提交\" />" . "</form>" .""; exit; }elseif(isset($_POST['passchack'])&&$_POST['passchack']==$pass){ (is_file($filename))?($mes=unlink($filename)?'删除成功':'删除失败 查看权限'):''; echo $mes; exit(); }else{ echo '密码错误!'; exit; } } function Jump($file)//跳过文件 { global $jump,$safearr; if($jump != '') { foreach($safearr as $v) { if($v=='') continue; if( eregi($v,$file) ) return true ; } } return false; } ?> <a href="scandir.php">[查看文件改动]</a>|<a href="scandir.php?savethis=1">[保存当前文件指纹]</a>|<a href="scandir.php?check=check">[扫描可疑文件]</a>
Verwandte Empfehlungen:
Beispielcode für die Beurteilung des PHP-Dateityps
ist Sie stellen 5 PHP-Sicherheitsmaßnahmen vor_PHP-Tutorial
Das obige ist der detaillierte Inhalt vonCodefreigabe zur PHP-Trojaner-Erkennung. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Heiße KI -Werkzeuge

Undresser.AI Undress
KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover
Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Undress AI Tool
Ausziehbilder kostenlos

Clothoff.io
KI-Kleiderentferner

AI Hentai Generator
Erstellen Sie kostenlos Ai Hentai.

Heißer Artikel

Heiße Werkzeuge

Notepad++7.3.1
Einfach zu bedienender und kostenloser Code-Editor

SublimeText3 chinesische Version
Chinesische Version, sehr einfach zu bedienen

Senden Sie Studio 13.0.1
Leistungsstarke integrierte PHP-Entwicklungsumgebung

Dreamweaver CS6
Visuelle Webentwicklungstools

SublimeText3 Mac-Version
Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

Heiße Themen



PHP 8.4 bringt mehrere neue Funktionen, Sicherheitsverbesserungen und Leistungsverbesserungen mit einer beträchtlichen Menge an veralteten und entfernten Funktionen. In dieser Anleitung wird erklärt, wie Sie PHP 8.4 installieren oder auf PHP 8.4 auf Ubuntu, Debian oder deren Derivaten aktualisieren. Obwohl es möglich ist, PHP aus dem Quellcode zu kompilieren, ist die Installation aus einem APT-Repository wie unten erläutert oft schneller und sicherer, da diese Repositorys in Zukunft die neuesten Fehlerbehebungen und Sicherheitsupdates bereitstellen.

Um in cakephp4 mit Datum und Uhrzeit zu arbeiten, verwenden wir die verfügbare FrozenTime-Klasse.

CakePHP ist ein Open-Source-Framework für PHP. Es soll die Entwicklung, Bereitstellung und Wartung von Anwendungen erheblich vereinfachen. CakePHP basiert auf einer MVC-ähnlichen Architektur, die sowohl leistungsstark als auch leicht zu verstehen ist. Modelle, Ansichten und Controller gu

Um am Datei-Upload zu arbeiten, verwenden wir den Formular-Helfer. Hier ist ein Beispiel für den Datei-Upload.

Der Validator kann durch Hinzufügen der folgenden zwei Zeilen im Controller erstellt werden.

Die Anmeldung bei CakePHP ist eine sehr einfache Aufgabe. Sie müssen nur eine Funktion verwenden. Sie können Fehler, Ausnahmen, Benutzeraktivitäten und von Benutzern durchgeführte Aktionen für jeden Hintergrundprozess wie Cronjob protokollieren. Das Protokollieren von Daten in CakePHP ist einfach. Die Funktion log() wird bereitgestellt

Visual Studio Code, auch bekannt als VS Code, ist ein kostenloser Quellcode-Editor – oder eine integrierte Entwicklungsumgebung (IDE) –, die für alle gängigen Betriebssysteme verfügbar ist. Mit einer großen Sammlung von Erweiterungen für viele Programmiersprachen kann VS Code c

CakePHP ist ein Open-Source-MVC-Framework. Es erleichtert die Entwicklung, Bereitstellung und Wartung von Anwendungen erheblich. CakePHP verfügt über eine Reihe von Bibliotheken, um die Überlastung der häufigsten Aufgaben zu reduzieren.
