ScyllaHide - Hoja de Trucos de Anti-Anti-Debug en Modo Usuario
ScyllaHide es una librería avanzada de código abierto anti-anti-debug en modo usuario para Windows (x86/x64). El malware y los empaquetadores comerciales detectan depuradores a través de un conjunto bien conocido de llamadas a API y banderas; ScyllaHide intercepta esas funciones para que devuelvan “no hay depurador presente”, permitiendo que un analista depure código protegido sin activar sus evasiones. Se distribuye como un complemento para x64dbg, IDA y OllyDbg, y también puede ejecutarse de forma independiente inyectándose en un destino.
Solo para análisis de malware autorizado e investigación de software. ScyllaHide es una herramienta de investigación defensiva; úsala en muestras y software que tengas permiso para analizar.
Installation
| Método | Cómo |
|---|
| x64dbg | Coloca las DLL del complemento en x64dbg/plugins/ |
| IDA | Copia el complemento de IDA en la carpeta plugins/ de IDA |
| Standalone (injector) | Usa InjectorCLIx64.exe / InjectorGUI.exe |
| Código fuente | Compila desde el repositorio x64dbg/ScyllaHide |
| Verificar | El menú del complemento aparece en el depurador |
What It Hides
| Técnica | ScyllaHide counters |
|---|
IsDebuggerPresent | Returns false |
CheckRemoteDebuggerPresent | Reporta que no hay depurador |
Bandera BeingDebugged de PEB | Cleared |
NtGlobalFlag | Normalizado |
NtQueryInformationProcess | ProcessDebugPort/Flags spoofed |
| Heap flags | Normalizado |
NtSetInformationThread (HideFromDebugger) | Bloqueado |
Timing checks (GetTickCount, rdtsc) | Opcionalmente mitigado |
OutputDebugString / hardware breakpoints | Handled/hidden |
Usar el Complemento (x64dbg)
| Paso | Acción |
|---|
| Abrir destino | Carga el binario empaquetado/protegido en x64dbg |
| Opciones | Plugins → ScyllaHide → Options |
| Elegir un perfil | Elige o ajusta un perfil de interceptación |
| Activar interceptaciones | Activa antes de pasar controles anti-depuración |
| Ejecutar | Continúa la ejecución; los controles ahora pasan |
Profiles
| Perfil | Uso |
|---|
| Plantillas preestablecidas | Empaquetadores comunes (p. ej. VMProtect, estilo Themida) |
| Personalizado | Alternar interceptaciones individuales para un destino rebelde |
| Guardar/cargar | Persiste un perfil por muestra/empaquetador |
Standalone Injection
# Inyecta ScyllaHide en un proceso ya en ejecución (o iniciado)
InjectorCLIx64.exe <pid|path> HookLibraryx64.dll <profile>
| Opción | Propósito |
|---|
| Spawn vs attach | Inicia el destino bajo ScyllaHide o se adhiere después |
| Hook library | La DLL que instala las interceptaciones |
| Perfil | Qué interceptaciones anti-depuración aplicar |
Flujo de Trabajo Típico de Desempaquetado
ScyllaHide suele ser una pieza de un conjunto de desempaquetamiento junto con sus herramientas hermanas.
| Herramienta | Rol |
|---|
| ScyllaHide | Derrota la protección anti-depuración para llegar al OEP |
| x64dbg | Depura y llega al Original Entry Point |
| Scylla | Reconstruye la Import Address Table, vuelca el PE |
| Detect It Easy | Identifica el empaquetador / verifica el archivo desempaquetado |
# Concepto: desempaquetar una muestra protegida
1. Carga la muestra en x64dbg con ScyllaHide activado
2. Ejecuta pasado el stub del empaquetador al OEP (anti-depuración es neutralizado)
3. Vuelca el proceso y reconstruye la IAT con Scylla
4. Verifica el volcado con Detect It Easy
ScyllaHide vs Herramientas Relacionadas
| Aspecto | ScyllaHide | TitanHide | Parches manuales |
|---|
| Capa | Interceptaciones en modo usuario | Driver en modo kernel | Parches por control |
| Cobertura | Conjunto amplio de API | Sigilo a nivel kernel | Solo lo que parches |
| Configuración | Complemento/inyectar | Instalar driver | Tedioso |
| Mejor para | Depuración de RE cotidiana | Necesidades más profundas de sigilo | Controles únicos |
Resources