ScyllaHide - Cheatsheet Anti-Anti-Debug in Usermode
ScyllaHide è una libreria open-source usermode anti-anti-debug avanzata per Windows (x86/x64). Malware e packers commerciali rivelano debugger attraverso un insieme ben noto di API call e flag; ScyllaHide aggancia quelle funzioni così ritornano “nessun debugger presente,” permettendo a un analyst di debuggare codice protetto senza attivare la sua evasione. Viene fornito come plugin per x64dbg, IDA, e OllyDbg, ed inoltre può essere eseguito standalone iniettando in un target.
Per authorized malware analysis e software research solamente. ScyllaHide è uno strumento di defensive-research; usalo su campioni e software che sei autorizzato ad analizzare.
Installazione
| Metodo | Come |
|---|
| x64dbg | Rilascia gli DLL plugin in x64dbg/plugins/ |
| IDA | Copia l”IDA plugin nella cartella plugins/ dell”IDA |
| Standalone (injector) | Usa InjectorCLIx64.exe / InjectorGUI.exe |
| Source | build dal repo x64dbg/ScyllaHide |
| Verifica | Il menu del plugin appare nel debugger |
Cosa Nasconde
| Tecnica | ScyllaHide contrasta |
|---|
IsDebuggerPresent | Ritorna false |
CheckRemoteDebuggerPresent | Riporta no debugger |
PEB BeingDebugged flag | Cleared |
NtGlobalFlag | Normalized |
NtQueryInformationProcess | ProcessDebugPort/Flags spoofed |
| Heap flags | Normalized |
NtSetInformationThread (HideFromDebugger) | Blocked |
Timing checks (GetTickCount, rdtsc) | Opzionalmente mitigati |
OutputDebugString / hardware breakpoints | Handled/hidden |
Usando il Plugin (x64dbg)
| Passo | Azione |
|---|
| Apri target | Carica il binario packed/protected in x64dbg |
| Opzioni | Plugins → ScyllaHide → Options |
| Scegli un profilo | Scegli o sintonizza un hook profile |
| Allega hooks | Abilita prima di eseguire past anti-debug checks |
| Esegui | Continua l”esecuzione; i checks ora passano |
Profili
| Profilo | Usa |
|---|
| Preset templates | Packers comuni (e.g. VMProtect, Themida-style) |
| Custom | Toggle dei singoli hook per un target testardo |
| Save/load | Persisti un profilo per campione/packer |
Iniezione Standalone
# Inietta ScyllaHide in un processo già-running (o spawned)
InjectorCLIx64.exe <pid|path> HookLibraryx64.dll <profile>
| Opzione | Scopo |
|---|
| Spawn vs attach | Avvia il target sotto ScyllaHide o allega dopo |
| Hook library | La DLL che installa gli hook |
| Profile | Quali anti-debug hook applicare |
Tipico Workflow di Unpacking
ScyllaHide è solitamente una pezzo di un toolkit di unpacking insieme ai suoi tool fratelli.
| Tool | Ruolo |
|---|
| ScyllaHide | Sconfiggi anti-debug così puoi eseguire all”OEP |
| x64dbg | Debugga e raggiungil”Original Entry Point |
| Scylla | Ricostruisci l”Import Address Table, dumpa il PE |
| Detect It Easy | Identifica il packer / verifica il file unpacked |
# Concetto: unpacka un campione protetto
1. Carica campione in x64dbg con ScyllaHide abilitato
2. Esegui past il packer stub all''OEP (anti-debug è neutralizzato)
3. Dumpa il processo e ricostruisci l''IAT con Scylla
4. Verifica il dump con Detect It Easy
| Aspetto | ScyllaHide | TitanHide | Manual patching |
|---|
| Layer | Usermode hooks | Kernel-mode driver | Per-check patches |
| Coverage | Broad API set | Kernel-level stealth | Solo quello che patchi |
| Setup | Plugin/inject | Driver install | Tedioso |
| Best for | Everyday RE debugging | Deeper stealth needs | One-off checks |
Risorse