PHP malware scanner
===================
Tra directories for files with php extensions and testing files against text or regexp rules, the rules based on self gathered samples and publicly a malwares/webshells.
The goal is to find infected files and fight against kiddies, because to easy to bypass rules.
How to install?
---
Simply clone the repository or with composer install globally composer global require scr34m/php-malware-scanner.
How to use?
-----------
Ignore argument could be used multiple times and accept glob style matching ex.: "cache*", "??-cache.php" or "/cache" etc.
Extension argument defaults to ".php" and also can be used multiple times too.
* --base64 is an alternative scan mode which ignores the main pattern files and uses a large list of php keywords and functions that have been con to base64. Slower and prone to false positives, but gi base64 scanning co. These pattern files are located in base64_patterns and were derived from php 7 keywords and functions. Not many PHP extensions are included.
* --comment flag will display the last comment to appear in the pattern file before the matched pattern, so documenting the pattern files is important.
Output formatting
-----------------
Default output depending on the specified parameters, but the full format is "%S %T %M # {%F} %C %P # %L" and using ANSI coloring too.
Possible are:
* %S - matching indicator, possible are OK, ER, WL
* %T - file change time
* %M - file md5 hash value
* %F - file with path
* %P - pattern
* %C - pattern comment
* %L - matching pattern line number
Patterns
--------
There are three main pattern files the co types of pattern matching. There is one pattern per line. All lines where the very first character is a "#" is considered a comment and not used as a pattern. Whitespace in the pattern files is not used.
* patterns_raw.txt - Raw string matching
* patterns-iraw.txt - Case insensitive raw string matching
* patterns-re.txt- Regular expression matching.
Whitelisting
------------
See whitelist.txt file for a predefined MD5 hash list. Only the first 32 characters are used, rest of the line ignored so feel free to leave a comment.
Wordpress md5 sum whitelisting
-------------
You can automatically add md5sum from wordpress core files by specifing as argument to --wordpress- or -j.
Example:
That will automatically get md5sums from wordpress api () and add it to whitelist. To check your simply check wp-includes/.php file of your wordpress
Combined whitelist
---
This list is a pre generated database for opensource projects more information at site.
The scanner check for database hash and only download if it is different and of course when argument used.
Tools
-----
text2base64.py
Takes a plaintext string as input and returns 3 base64 string equi.
Python script that needs to be executed from the terminal to be used.
It is worth noting that the presence of one of the three output strings in a block of text does not 100% guarantee that the string was
present in the original code. It is guaranteed that IF the subject string was present in the original code, then one of the three
output strings will be present in the base64 .
An example: The presence of 'YmFzZTY0X2RlY29kZ' does not guarantee that 'base64_decode' is in the plain text code.
It is guaranteed that IF 'base64_decode' was present in the plain text code, then one of these three base64 strings WILL be present.
The presence of 'YmFzZTY0X2RlY29kZ' in a block of code may be because 'ase64_decod' was in the original code.
ote the missing edge characters which is due to bit misalignment and character bleed.
Using as library
----------------
The scan.php perform a check, that it's called by commandline or not, so to use as library use different directory than scan.php it self.
Resources
---------
* PHPScanner
* PMF - PHP Malware Finder
* check regexp online
* malware samples 1
* malware samples 2
* malware samples 3
* malware samples 4
Licensing
---------
PHP malware scanner is licensed under the GNU General Public License v3.
Docker Usage
-----------
You can also run the scanner using Docker:
1. Build the image:
2. Scan a directory:
For example, to scan a WordPress installation:
Common usage with flags:
The /code directory inside the container is where your files will be mounted for scanning.
开发语言:PHP
Star 数:605
该项目属于病毒分析方向的开源资源,代码结构清晰,适合安全研究人员学习参考。项目围绕Scans PHP files for malwares and known threats展开,提供了可运行的实现,对理解相关安全机制、工具原理与攻防技术具有较高的研究价值。
从技术实现角度看,此类项目的核心在于对底层原理的深入理解与工程化落地。开发者在研究过程中可以结合官方文档与社区讨论,梳理项目的初始化流程、核心模块职责与数据流转,逐步掌握其中的技术细节与设计思路。
1. 下载源码压缩包,解压到本地环境。
2. 根据项目类型准备对应的运行环境与依赖。
3. 按照 README 中的步骤完成配置与部署。
4. 在隔离的测试环境中运行验证,避免影响生产系统。
本资源来源于开源社区,仅供安全研究、技术学习与合法授权范围内的攻防演练使用,请勿用于任何非法或侵害他人权益的用途。使用本项目产生的一切后果由使用者自行承担。
| 资源标题 | php-malware-scanner - Scans PHP files for malwares and known threats |
| 所属分类 | 病毒分析 |
| 发布作者 | admin |
| 发布时间 | 2026-10-05 23:16:47 |
| 下载权限 | 免费下载 |
| 附件数量 | 2 个下载链接 |
| 浏览次数 | 320 |
| 讨论数量 | 0 |
| 主题状态 | 正常讨论中 |