
Интроспекция, трассировка и отладка виртуальных машин
Icebox — это решение для виртуального машинного интроспекции (VMI), которое позволяет скрытно отслеживать и отлаживать любой процесс (ядро или пользовательский). Оно основано на проекте Winbagility.
Файлы, которые могут оказаться полезными:
Полное руководство по началу работы написано здесь.
В противном случае ознакомьтесь с нашей папкой samples. Вы можете собрать эти примеры по этим инструкциям после установки зависимостей.
Если вы используете гостевую Windows, возможно, вам потребуется установить переменную окружения _NT_SYMBOL_PATH в папку, содержащую PDB вашей гостевой системы. Обратите внимание, что настройка icebox завершится ошибкой, если он не найдет PDB ядра вашей гостевой системы.
vm_resume:
vm_resume просто приостанавливает, а затем возобновляет вашу виртуальную машину.
cd icebox/bin/$ARCH/
./vm_resume <vm_name>
nt_writefile:
nt_writefile прерывается, когда процесс вызывает ntdll!NtWriteFile, и сохраняет записанные данные в файл на вашем хосте в текущем каталоге.
cd icebox/bin/$ARCH/
./nt_writefile <vm_name> <process_name>
heapsan:
heapsan прерывает выделения памяти ntdll из процесса и добавляет отступы до и после каждого указателя. Он все еще не завершен и пока не выполняет никаких проверок.
cd icebox/bin/$ARCH/
./heapsan <vm_name> <process_name>
wireshark:
wireshark прерывается, когда драйвер ndis читает или отправляет сетевые пакеты, и создает трассировку wireshark (.pcapng). Каждый отправленный пакет связывается со стеком вызовов от уровня ядра до пользовательского, если это необходимо.
cd icebox/bin/$ARCH/
./wireshark <name> <path_to_capture_file>