#!/bin/bash

# Répertoire à scanner (par défaut : dossier courant)
ROOT_DIR="${1:-.}"

# Fichier log de sortie
LOG_FILE="malware_scan_$(date +%F_%H-%M-%S).log"

echo "Scan malware PHP dans : $ROOT_DIR" | tee "$LOG_FILE"
echo "Log : $LOG_FILE"
echo

# Liste de patterns suspects (tu peux en ajouter/enlever)
PATTERNS=(
    # Ton malware spécifique
    'Ht5QFclHG5Ha'
    'JeaF2g9Fi2FN'
    'range\("\176", "\x20"\)'
    '32915'
    'INPUT_GET'
    'goto [A-Za-z0-9_]\{8,\};'

    # Fonctions très souvent utilisées dans les backdoors (à vérifier à la main ensuite)
    'base64_decode *\('
    'gzinflate *\('
    'str_rot13 *\('
    'eval *\('
    'assert *\('
    'create_function *\('
    'shell_exec *\('
    'system *\('
    'passthru *\('
    'proc_open *\('
    'popen *\('

    # $_GET / $_POST / $_REQUEST combinés à du code
    '\$_(GET|POST|REQUEST)\[.{0,40}\]\s*\('
    '\$_(GET|POST|REQUEST)\[.{0,40}\].*base64'
)

for P in "${PATTERNS[@]}"; do
    echo "===============================" | tee -a "$LOG_FILE"
    echo "PATTERN : $P" | tee -a "$LOG_FILE"
    echo "-------------------------------" | tee -a "$LOG_FILE"

    # -R  : récursif
    # -n  : numéro de ligne
    # -i  : insensible à la casse
    # -E  : regex étendue
    # -C5 : 5 lignes de contexte autour
    grep -RniE "$P" "$ROOT_DIR" --include="*.php" -C5 2>/dev/null | tee -a "$LOG_FILE"

    echo "" | tee -a "$LOG_FILE"
done

echo "Scan terminé. Résultats enregistrés dans : $LOG_FILE"
