Я пробую это с помощью простого приложения Hello World:
Код: Выделить всё
#include
int main()
{
std::cout lm
start end module name
00100000 00122000 HelloWorld (deferred)
Код: Выделить всё
bu kernelbase!heapcreate
- Изначально мы не знаем наверняка, потому что !heap может вообще не работать.
Код: Выделить всё
0:000> !heap Invalid type information
- Подождите, пока ntdll загрузится. (Мы установили sxe ld *)
Код: Выделить всё
0:000> g ModLoad: 77940000 77ae4000 ntdll.dll [...]
- Убедитесь, что кучи отсутствуют.
Код: Выделить всё
0:000> !heap Heap Address NT/Segment Heap
Однако при следующем загруженном модуле , куча уже есть, хотя точка останова не была достигнута (а база ядра даже не была загружена, поэтому она даже не разрешена):
Код: Выделить всё
0:000> g
ModLoad: 76540000 76630000 C:\Windows\SysWOW64\KERNEL32.DLL
[...]
0:000> !heap
Heap Address NT/Segment Heap
012d0000 NT Heap
Подробнее здесь: https://stackoverflow.com/questions/793 ... p-creation