
Depurador que utiliza hooks furtivos para se ocultar da detecção de debuggers.
GhostDebug é um protótipo de depurador para Windows x64 composto por uma DLL de depuração nativa e um cliente de linha de comando .NET Framework. Ele é destinado à depuração de alvos que usam verificações de detecção de depurador.
Para obter contexto sobre o design, consulte Desenvolvendo um depurador indetectável no Windows.
Compile todos os projetos no Visual Studio.
Inicie o processo alvo. TestTarget é incluído como um exemplo simples.
Abra um terminal em GhostDebug/GhostDebug-CLI/bin/Release/ e inicie o
CLI:
.\GhostDebug.exe
Anexe pelo ID do processo ou pelo nome do processo e, em seguida, use os comandos interativos:
attach <pid/process name>
Attach to a process.
bp <address>
Set a breakpoint.
bp <address> <command list>
Set a breakpoint with commands that are executed automatically when it hits.
cl <address>
Clear a breakpoint.
g
Resume execution.
t
Step into one instruction.
rw <register> <value>
Queue a value to be written to a register before continuing.
help
Display the command help.
Os endereços podem ser absolutos, relativos ao módulo principal (+1234), relativos a
outro módulo (ntdll+1234) ou especificados por símbolo (!function ou
kernel32!ExitProcess). Pontos de interrupção também podem executar comandos automaticamente, por
exemplo bp 1234 rw rax 0;g.
O CLI deve ser executado a partir do diretório que contém ghostdebug-core.dll, e
o alvo e o CLI devem usar a mesma arquitetura (x64).