IceBox
Это решение для самоанализа виртуальной машины, которое позволяет вам незаметно отслеживать и отлаживать любой процесс (ядро или пользователь).
Инструмент основан на проекте Winbagility.
Организация проекта
- fdp: исходники протокола быстрой отладки
- Icebox: исходники Icebox
- icebox: Icebox lib (ядро, os-помощники, плагины…)
- icebox_cmd: программа, которая тестирует несколько функций
- samples: куча примеров
- winbagility: заглушка для подключения WinDBG к FDP
- virtualbox: исходники VirtualBox пропатченные для FDP.
Скачать
git clone https://github.com/thalium/icebox.git
Использование
Некоторые шаблоны есть папке 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>
./wireshark <name> <path_to_capture_file>
Дэмо