Zum Inhalt springen

ScyllaHide - Usermode Anti-Anti-Debug-Spickzettel

ScyllaHide - Usermode Anti-Anti-Debug-Spickzettel

ScyllaHide ist eine fortgeschrittene quelloffene Usermode-Anti-Anti-Debug-Bibliothek für Windows (x86/x64). Malware und kommerzielle Packer erkennen Debugger durch einen wohlbekannten Satz von API-Aufrufen und Flags; ScyllaHide hookt diese Funktionen, sodass sie “kein Debugger vorhanden” zurückgeben, was es einem Analyst ermöglicht, geschützten Code zu debuggen, ohne seine Ausweichvorkehrungen zu aktivieren. Es ist als Plugin für x64dbg, IDA und OllyDbg verfügbar und kann auch eigenständig durch Injizieren in ein Ziel ausgeführt werden.

Nur für autorisierte Malware-Analyse und Softwareforschung. ScyllaHide ist ein Defensive-Research-Tool; verwenden Sie es nur auf Samples und Software, die Sie analysieren dürfen.

Installation

MethodeWie
x64dbgPlugin-DLLs in x64dbg/plugins/ ablegen
IDAIDA-Plugin in IDA’s plugins/-Ordner kopieren
Standalone (Injector)InjectorCLIx64.exe / InjectorGUI.exe verwenden
QuelleAus dem x64dbg/ScyllaHide-Repo bauen
VerifizierenPlugin-Menü erscheint im Debugger

Was es verbirgt

TechnikScyllaHide-Gegenmittel
IsDebuggerPresentGibt false zurück
CheckRemoteDebuggerPresentMeldet keinen Debugger
PEB BeingDebugged-FlagGelöscht
NtGlobalFlagNormalisiert
NtQueryInformationProcessProcessDebugPort/Flags gefälscht
Heap-FlagsNormalisiert
NtSetInformationThread (HideFromDebugger)Blockiert
Timing-Checks (GetTickCount, rdtsc)Optional gemindert
OutputDebugString / Hardware-BreakpointsBearbeitet/verborgen

Verwendung des Plugins (x64dbg)

SchrittAktion
Ziel öffnenLade die gepackte/geschützte Binärdatei in x64dbg
OptionenPlugins → ScyllaHide → Optionen
Profil wählenEin Hook-Profil wählen oder optimieren
Hooks anhängenVor dem Durchlaufen von Anti-Debug-Checks aktivieren
AusführenFortführung der Ausführung; Checks gehen jetzt vorbei

Profile

ProfilVerwendung
VorgabevorlagenHäufige Packer (z.B. VMProtect, Themida-Stil)
BenutzerdefiniertIndividuelle Hooks für ein stures Ziel umschalten
Speichern/ladenProfil pro Sample/Packer beibehalten

Standalone-Injektion

# ScyllaHide in einen bereits laufenden (oder gestarteten) Prozess injizieren
InjectorCLIx64.exe <pid|path> HookLibraryx64.dll <profile>
OptionZweck
Spawn vs. anhängenZiel unter ScyllaHide starten oder später anhängen
Hook-BibliothekDie DLL, die die Hooks installiert
ProfilWelche Anti-Debug-Hooks angewendet werden sollen

Typischer Unpacking-Workflow

ScyllaHide ist normalerweise ein Teil eines Unpacking-Toolkits zusammen mit seinen Geschwister-Tools.

ToolRolle
ScyllaHideAnti-Debug besiegen, damit Sie zum OEP laufen können
x64dbgDebuggen und den Original Entry Point erreichen
ScyllaImport Address Table neu aufbauen, PE dumpen
Detect It EasyPacker identifizieren / gechecktes Unpacking-File überprüfen
# Konzept: geschütztes Sample auspacken
1. Sample in x64dbg mit aktiviertem ScyllaHide laden
2. Packer-Stub zum OEP durchlaufen (Anti-Debug ist neutralisiert)
3. Prozess dumpen und IAT mit Scylla neu aufbauen
4. Dump mit Detect It Easy überprüfen

ScyllaHide im Vergleich zu verwandten Tools

AspektScyllaHideTitanHideManuelles Patching
EbeneUsermode-HooksKernel-Mode-TreiberPro-Check-Patches
AbdeckungBreite API-MengeKernel-Level-StealthNur was Sie patchen
EinrichtungPlugin/InjektionTreiberinstallationMühsam
Best fürAlltägliches RE-DebuggingTiefere Stealth-AnforderungenOne-Off-Checks

Ressourcen