ScyllaHide - Cheatsheet de Anti-Anti-Debug para Modo Usuário
ScyllaHide é uma biblioteca avançada de código aberto usermode anti-anti-debug para Windows (x86/x64). Malware e empacotadores comerciais detectam debuggers através de um conjunto bem conhecido de chamadas de API e flags; ScyllaHide enganha essas funções para que retornem “nenhum debugger presente,” permitindo que um analista depure código protegido sem ativar suas evasões. Funciona como um plugin para x64dbg, IDA e OllyDbg, e também pode executar como standalone injetando-se em um alvo.
Apenas para análise de malware autorizada e pesquisa de software. ScyllaHide é uma ferramenta de pesquisa defensiva; use-a em amostras e software que você tenha permissão para analisar.
Instalação
| Method | Como |
|---|
| x64dbg | Solte os DLLs do plugin em x64dbg/plugins/ |
| IDA | Copie o plugin IDA para a pasta plugins/ da IDA |
| Standalone (injector) | Use InjectorCLIx64.exe / InjectorGUI.exe |
| Source | construa a partir do repositório x64dbg/ScyllaHide |
| Verificar | O menu de plugin aparece no debugger |
O Que Ele Oculta
| Técnica | ScyllaHide counters |
|---|
IsDebuggerPresent | Retorna falso |
CheckRemoteDebuggerPresent | Relata nenhum debugger |
PEB BeingDebugged flag | Limpado |
NtGlobalFlag | Normalizado |
NtQueryInformationProcess | ProcessDebugPort/Flags falsificados |
| Heap flags | Normalizado |
NtSetInformationThread (HideFromDebugger) | Bloqueado |
Timing checks (GetTickCount, rdtsc) | Opcionalmente mitigado |
OutputDebugString / hardware breakpoints | Tratado/ocultado |
Usando o Plugin (x64dbg)
| Step | Ação |
|---|
| Abra alvo | Carregue o binário empacotado/protegido no x64dbg |
| Opções | Plugins → ScyllaHide → Options |
| Escolha um profile | Escolha ou ajuste um perfil de hook |
| Ative hooks | Ative antes de rodar após verificações anti-debug |
| Execute | Continue a execução; as verificações agora passam |
Perfis
| Perfil | Uso |
|---|
| Preset templates | Empacotadores comuns (ex. VMProtect, estilo Themida) |
| Custom | Alterne hooks individuais para um alvo teimoso |
| Save/load | Persista um perfil por amostra/empacotador |
Injeção Standalone
# Injete ScyllaHide em um processo já em execução (ou inicializado)
InjectorCLIx64.exe <pid|path> HookLibraryx64.dll <profile>
| Option | Propósito |
|---|
| Spawn vs attach | Inicie o alvo sob ScyllaHide ou anexe depois |
| Hook library | A DLL que instala os hooks |
| Profile | Quais hooks anti-debug aplicar |
Fluxo de Trabalho Típico de Unpacking
ScyllaHide é geralmente uma peça de um toolkit de unpacking ao lado de suas ferramentas irmãs.
| Ferramenta | Papel |
|---|
| ScyllaHide | Derrote anti-debug para que você possa rodar para o OEP |
| x64dbg | Depure e chegue ao Original Entry Point |
| Scylla | Reconstrua a Import Address Table, dump do PE |
| Detect It Easy | Identifique o empacotador / verifique o arquivo desempacotado |
# Conceito: desempacote uma amostra protegida
1. Carregue amostra em x64dbg com ScyllaHide ativado
2. Execute além do stub do empacotador para o OEP (anti-debug foi neutralizado)
3. Dump do processo e reconstrua a IAT com Scylla
4. Verifique o dump com Detect It Easy
ScyllaHide vs Ferramentas Relacionadas
| Aspecto | ScyllaHide | TitanHide | Manual patching |
|---|
| Camada | Usermode hooks | Kernel-mode driver | Per-check patches |
| Cobertura | Amplo conjunto de API | Stealth de nível kernel | Apenas o que você patch |
| Setup | Plugin/inject | Driver install | Tedioso |
| Melhor para | Depuração RE cotidiana | Necessidades de stealth mais profundas | Verificações pontuais |
Recursos