Sentinel Kernel v6.0 l-am gândit să fie ușor de folosit pentru oricine. Practic, scanează fișierele .cpp, .h și .lua și vă scoate un raport cu locurile unde codul pare dubios.
Ce caută mai exact:
- [] Backdoor-uri: Verificări de nume sau ID-uri băgate direct în sursă (if name == 'cineva').
[] Crash-uri (Null Pointer): Locurile unde lipsește verificarea de siguranță și din cauza cărora pot pica core-urile de game.
[] SQL Injection: Comenzi DirectQuery prin quest-uri care nu sunt filtrate.
[] Comenzi de sistem: Utilizarea funcției system() care poate fi periculoasă pentru VPS.
*Poze / Video:
*Link download / Code: m2audit.py
Code:
import os
import re
import sys
import time
import ctypes
from datetime import datetime
# Configurare Culori Terminal
def enable_ansi():
try:
kernel32 = ctypes.windll.kernel32
kernel32.SetConsoleMode(kernel32.GetStdHandle(-11), 7)
except: pass
enable_ansi()
class Color:
R, G, Y, B, C, W = '\033[91m', '\033[92m', '\033[93m', '\033[94m', '\033[96m', '\033[0m'
BOLD, UNDR = '\033[1m', '\033[4m'
BG_R = '\033[41m'
# Motorul de Reguli (Heuristic Scan)
# Aici am adaugat pattern-uri pentru comenzi ascunse si privilegii hardcodate
RULES = [
{
"id": "HIDDEN_GM_BY_NAME",
"regex": r'GetName\(\)\s*==\s*".*"|strcmp\(.*GetName\(\).*,.*".*"\)',
"severity": "ULTRA-CRITICAL",
"title": "BACKDOOR: PRIVILEGIU HARDCODAT PE NUME",
"desc": "S-a gasit o verificare de nume fix (ex: if name == 'Hacker'). Aceasta este metoda clasica de backdoor unde cineva isi da permisiuni fara sa aiba nevoie de gmlist.",
"impact": "Un jucator cu acel nume specific poate executa comenzi de admin sau accesa meniuri secrete."
},
{
"id": "COMMAND_BYPASS",
"regex": r'void\s*do_.*\s*\(.*\)\s*\{[\s\S]*?IsGM\(\)\s*==\s*false',
"severity": "CRITICAL",
"title": "COMMAND BYPASS: COMANDA ASCUNSA",
"desc": "O comanda de tip 'do_exec' sau similara care verifica daca cineva NU este GM pentru a rula cod sensibil.",
"impact": "Jucatorii pot rula comenzi destinate exclusiv staff-ului."
},
{
"id": "SQL_INJECTION_RAW",
"regex": r'DirectQuery\s*\(\s*".*%s.*"\s*,\s*.*lua_tostring',
"severity": "CRITICAL",
"title": "SQL EXPLOIT: INJECTIE PRIN LUA",
"desc": "Input-ul din joc (quest) pleaca direct in baza de date fara filtrare.",
"impact": "Stergere totala DB / Modificare monede."
},
{
"id": "SHELL_EXECUTION",
"regex": r'\bsystem\s*\(\s*".*"\s*\)',
"severity": "HIGH",
"title": "HACKER TOOL: EXECUTE SYSTEM COMMAND",
"desc": "Executie de comenzi la nivel de sistem de operare (Linux Bash).",
"impact": "Atacatorul poate prelua controlul asupra intregului VPS."
},
{
"id": "NULL_POINTER_CRASH",
"regex": r'CHARACTER_MANAGER::instance\(\)\.Find\(.*\)\s*->',
"severity": "MEDIUM",
"title": "CRASH VULNERABILITY: NULL POINTER",
"desc": "Se acceseaza un pointer fara a verifica daca personajul exista (IsNULL).",
"impact": "Un jucator poate trimite un pachet care sa inchida (crash) game-ul pentru toti ceilalti."
}
]
def get_context(lines, idx):
start = max(0, idx - 3)
end = min(len(lines), idx + 7)
return "".join(lines[start:end])
def sentinel_scan():
os.system('cls')
print(f"{Color.B}{'='*100}")
print(f" {Color.BOLD}SENTINEL KERNEL v6.0 - MOTOR DE AUDIT ABSOLUT (BACKDOOR & CRASH DETECTION){Color.W}")
print(f"{Color.B}{'='*100}{Color.W}\n")
path = input(f"{Color.C}[>] CALEA CATRE SURSA: {Color.W}").strip('"')
if not os.path.exists(path):
print(f"{Color.R}[!] EROARE: Locatie invalida.{Color.W}")
return
findings = []
file_count = 0
start_time = time.time()
print(f"{Color.Y}[*] Analiza profunda initiata... Asteptati.{Color.W}")
for root, _, files in os.walk(path):
for file in files:
if file.endswith((".cpp", ".h", ".lua", ".py")):
file_count += 1
f_path = os.path.join(root, file)
try:
with open(f_path, 'r', encoding='utf-8', errors='ignore') as f:
content = f.read()
lines = content.splitlines(True)
# Verificam fiecare regula din motor
for rule in RULES:
matches = re.finditer(rule["regex"], content, re.MULTILINE)
for match in matches:
# Calculam linia
line_no = content.count('\n', 0, match.start()) + 1
findings.append({
"rule": rule,
"file": f_path,
"line": line_no,
"snippet": get_context(lines, line_no - 1)
})
except Exception as e:
continue
# Generare Raport ULTRA-DETALIAT
report_name = f"SENTINEL_AUDIT_FULL_{int(time.time())}.txt"
with open(report_name, "w", encoding='utf-8') as r:
r.write(f"SENTINEL KERNEL SECURITY REPORT\n")
r.write(f"TIMESTAMP: {datetime.now()}\n")
r.write(f"FILES SCANNED: {file_count}\n")
r.write(f"TOTAL VULNERABILITIES: {len(findings)}\n")
r.write("="*100 + "\n\n")
for f in findings:
r.write(f"[{f['rule']['severity']}] {f['rule']['title']}\n")
r.write(f"FILE: {f['file']}\n")
r.write(f"LINE: {f['line']}\n")
r.write("-" * 50 + "\n")
r.write(f"DESCRIPTION: {f['rule']['desc']}\n")
r.write(f"IMPACT: {f['rule']['impact']}\n")
r.write(f"CODE BLOCK:\n{f['snippet']}\n")
r.write("-" * 50 + "\n")
r.write(f"REMEDIATION: Verificati daca logica permite acces neautorizat si curatati codul.\n")
r.write("\n" + "#"*100 + "\n\n")
duration = time.time() - start_time
print(f"\n{Color.G}[+] SCANARE FINALIZATA IN {duration:.2f} secunde.")
print(f"[+] S-au verificat {file_count} fisiere.")
print(f"{Color.BG_R if findings else Color.G}[!] S-au gasit {len(findings)} puncte critice.{Color.W}")
print(f"[+] Raport detaliat generat: {Color.BOLD}{report_name}{Color.W}")
if __name__ == "__main__":
sentinel_scan()
Code:
python m2audit.py*Link scanare VirusTotal (obligatoriu):
https://www.virustotal.com/
(Fiind cod sursă deschis, oricine poate citi liniile înainte să îl ruleze pentru siguranță.)


