WinDBG -! Vad, что значение столбца "Старт" и "Конец"

54
4

Я использую WinDBG латентно, и я нашел это полезное расширение vad. Я конвертирую виртуальные в физические адреса.

Во всяком случае, я не понял значения столбца "Старт" и "Конец", что это значит?

Если кто-нибудь сможет мне объяснить, это будет потрясающе. Я не могу найти ничего об этом на других сайтах, это может быть слишком очевидно...

Вот пример вывода:

kd> !vad 824bc2f8 VAD level start end commit 82741bf8 ( 1) 78000 78045 8 Mapped Exe EXECUTE_WRITECOPY 824ef368 ( 2) 7f6f0 7f7ef 0 Mapped EXECUTE_READ 824bc2f8 ( 0) 7ffb0 7ffd3 0 Mapped READONLY 8273e508 ( 2) 7ffde 7ffde 1 Private EXECUTE_READWRITE 82643fc8 ( 1) 7ffdf 7ffdf 1 Private EXECUTE_READWRITE

Извлечено из: https://docs.microsoft.com/en-us/windows-hardware/drivers/debugger / -vad

спросил(а) 2018-04-17T18:19:00+03:00 1 год, 7 месяцев назад
1
Решение
55

VAD = виртуальный дескриптор адреса

Vpn = номер виртуальной страницы

Размер страницы = 0x1000 обычно (используйте API GetSystemInformation())

0x01 й страницы начинается с 0x00 и заканчивается в 0x1000 (1 * 0x1000)

0x10- я страница начинается с 0x10 и заканчивается на 0x10000 (0x10 * 0x1000)
и так далее до 0xffffffff максимум для 32-битного адресного пространства процесса

вот объяснение

искать процесс пользовательского режима

kd> !process 0 0 explorer.exe
PROCESS 853bbd40 SessionId: 1 Cid: 0754 Peb: 7ffd5000 ParentCid: 072c
DirBase: 17632000 ObjectTable: 8a0fda28 HandleCount: 687.
Image: explorer.exe

установить контекст процесса _EPROCESS в приведенных выше результатах

kd> .process /p /r /P /i 853bbd40
You need to continue execution (press 'g' <enter>) for the context
to be switched. When the debugger breaks in again, you will be in
the new process context.

kd> g

Break instruction exception - code 80000003 (first chance)
nt!RtlpBreakWithStatusInstruction:
82897d00 cc int 3

проверьте, соответствует ли cr3 базе баз данных, чтобы мы смотрели на виртуальный адрес в надлежащем контексте

kd> r cr3
cr3=17632000

kd> !process @$proc 1
PROCESS 853bbd40 SessionId: 1 Cid: 0754 Peb: 7ffd5000 ParentCid: 072c
DirBase: 17632000 ObjectTable: 8a0fda28 HandleCount: 687.
Image: explorer.exe
VadRoot 8497e218 Vads 337 Clone 0 Private 2275. Modified 19. Locked 0.

проверьте вад, используя Вадрод из результатов выше
для имени основного модуля, и вы можете заметить начало

kd> .shell -ci "!vad  8497e218" grep -i explorer.exe
85416348 2 c10 e90 4 Mapped Exe EXECUTE_WRITECOPY \Windows\explorer.exe

проверьте peb для основного модуля, чтобы увидеть, что он соответствует ! vad-> start * PageSize

kd> .shell -ci "!peb " grep -i c10000.*explorer.exe

c10000 4ce796f3 Nov 20 15:07:55 2010 C:\Windows\Explorer.EXE

см. концевые совпадения соответствуют значению! vad-> End * pageSize

kd> lma 0xc10000 

start end module name
00c10000 00e91000 Explorer (pdb symbols)

e:\symbols\explorer.pdb\57A762C063044F9C81BC4B8895FBF1AB2\explorer.pdb

ответил(а) 2018-04-17T21:18:00+03:00 1 год, 7 месяцев назад
Ваш ответ
Введите минимум 50 символов
Чтобы , пожалуйста,
Выберите тему жалобы:

Другая проблема