
Introspecção de Máquina Virtual, Rastreio e Depuração
O Icebox é uma solução de Introspecção de Máquinas Virtuais que permite rastrear e depurar furtivamente qualquer processo (kernel ou usuário). É baseado no projeto Winbagility.
Arquivos que podem ser úteis:
Um guia completo de primeiros passos foi escrito aqui.
Caso contrário, consulte nossa pasta de exemplos. Você pode compilar esses exemplos com estas instruções após instalar os requisitos.
Se você estiver usando um convidado Windows, pode ser útil definir a variável de ambiente _NT_SYMBOL_PATH para uma pasta que contenha os pdbs do seu convidado. Observe que a configuração do icebox falhará se não encontrar o pdb do kernel do seu convidado.
vm_resume:
vm_resume apenas pausa e depois retoma sua VM.
cd icebox/bin/$ARCH/
./vm_resume <vm_name>
nt_writefile:
nt_writefile interrompe quando um processo chama ntdll!NtWriteFile e despeja o que foi escrito em um arquivo no seu host no diretório atual.
cd icebox/bin/$ARCH/
./nt_writefile <vm_name> <process_name>
heapsan:
heapsan interrompe as alocações de memória ntdll de um processo e adiciona padding antes e depois de cada ponteiro. Ainda está incompleto e não realiza nenhuma verificação.
cd icebox/bin/$ARCH/
./heapsan <vm_name> <process_name>
wireshark:
wireshark interrompe quando o driver ndis lê ou envia pacotes de rede e cria um trace do wireshark (.pcapng). Cada pacote enviado é associado a um callstack do kernel ao userland, se necessário.
cd icebox/bin/$ARCH/
./wireshark <name> <path_to_capture_file>