ScyllaHide - Cheatsheet Anti-Anti-Debug Usermode
ScyllaHide est une bibliothèque usermode anti-anti-debug open-source avancée pour Windows (x86/x64). Les malwares et les packers commerciaux détectent les debuggers grâce à un ensemble bien connu d”appels API et de drapeaux ; ScyllaHide hook ces fonctions pour qu”elles retournent « pas de debugger présent », permettant à un analyste de déboguer le code protégé sans déclencher son évasion. Il est livré en tant que plugin pour x64dbg, IDA et OllyDbg, et peut aussi fonctionner de manière autonome en injectant dans une cible.
Pour l”analyse de malwares autorisée et la recherche logicielle uniquement. ScyllaHide est un outil de recherche défensive ; utilisez-le sur des échantillons et des logiciels que vous êtes autorisé à analyser.
Installation
| Méthode | Comment |
|---|
| x64dbg | Déposer les DLL du plugin dans x64dbg/plugins/ |
| IDA | Copier le plugin IDA dans le dossier plugins/ d”IDA |
| Standalone (injecteur) | Utiliser InjectorCLIx64.exe / InjectorGUI.exe |
| Source | compiler depuis le dépôt x64dbg/ScyllaHide |
| Vérification | Le menu des plugins apparaît dans le debugger |
Ce qu”It Cache
| Technique | ScyllaHide contrecarre |
|---|
IsDebuggerPresent | Retourne faux |
CheckRemoteDebuggerPresent | Signale pas de debugger |
Drapeau PEB BeingDebugged | Effacé |
NtGlobalFlag | Normalisé |
NtQueryInformationProcess | ProcessDebugPort/Flags usurpés |
| Drapeaux de heap | Normalisés |
NtSetInformationThread (HideFromDebugger) | Bloqué |
Vérifications de timing (GetTickCount, rdtsc) | Optionnellement atténuées |
OutputDebugString / breakpoints matériels | Gérés/cachés |
Utiliser le Plugin (x64dbg)
| Étape | Action |
|---|
| Ouvrir cible | Charger le binaire empaqueté/protégé dans x64dbg |
| Options | Plugins → ScyllaHide → Options |
| Choisir un profil | Choisir ou régler un profil de hook |
| Attacher hooks | Activer avant d”exécuter les vérifications anti-debug |
| Exécuter | Continuer l”exécution ; les vérifications passent maintenant |
Profils
| Profil | Utilisation |
|---|
| Modèles prédéfinis | Packers courants (ex. VMProtect, style Themida) |
| Personnalisé | Basculer les hooks individuels pour une cible têtue |
| Enregistrer/charger | Persister un profil par échantillon/packer |
Injection Autonome
# Injecter ScyllaHide dans un processus déjà en cours d''exécution (ou lancé)
InjectorCLIx64.exe <pid|path> HookLibraryx64.dll <profile>
| Option | Objectif |
|---|
| Spawn vs attach | Démarrer la cible sous ScyllaHide ou attacher plus tard |
| Bibliothèque de hook | La DLL qui installe les hooks |
| Profil | Quels hooks anti-debug appliquer |
Flux de Travail Typique de Déballage
ScyllaHide est généralement un élément d”une boîte à outils de déballage aux côtés de ses outils frères.
| Outil | Rôle |
|---|
| ScyllaHide | Vaincre anti-debug pour pouvoir exécuter jusqu”au OEP |
| x64dbg | Déboguer et atteindre le Point d”Entrée Original |
| Scylla | Reconstruire la Table d”Adresses d”Importation, dumper le PE |
| Detect It Easy | Identifier le packer / vérifier le fichier déballé |
# Concept : déballer un échantillon protégé
1. Charger l''échantillon dans x64dbg avec ScyllaHide activé
2. Exécuter au-delà du stub du packer jusqu''au OEP (anti-debug est neutralisé)
3. Dumper le processus et reconstruire l''IAT avec Scylla
4. Vérifier le dump avec Detect It Easy
ScyllaHide vs Outils Connexes
| Aspect | ScyllaHide | TitanHide | Correctif manuel |
|---|
| Couche | Hooks usermode | Pilote mode noyau | Correctifs par vérification |
| Couverture | Ensemble API large | Furtivité au niveau noyau | Uniquement ce que vous patchéz |
| Configuration | Plugin/injection | Installation du pilote | Fastidieux |
| Meilleur pour | Débogage RE quotidien | Besoins de furtivité plus profonds | Vérifications ponctuelles |
Ressources