Наблюдение за созданием кучи процесса по умолчанию (точка останова при создании кучи)C++

Программы на C++. Форум разработчиков
Ответить Пред. темаСлед. тема
Anonymous
 Наблюдение за созданием кучи процесса по умолчанию (точка останова при создании кучи)

Сообщение Anonymous »

Я хочу наблюдать, когда создается куча процесса по умолчанию, т. е. иметь точку останова и получать стек вызовов создания. Это не имеет никакой практической подоплеки. Я просто хочу понять внутреннее устройство Windows и изучить материал, описанный в книге «Внутреннее устройство Windows».
Я пробую это с помощью простого приложения 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
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «C++»