вызвать Zw[Nt]QueryVirtualMemory из драйвера
От: Аноним  
Дата: 26.04.13 14:26
Оценка:
как наилучшим образом вызвать эту функцию, или её аналог. ntoskrnl не экспортирует. нужно для сканирования юзермодной памяти процесса из ядра
Re: вызвать Zw[Nt]QueryVirtualMemory из драйвера
От: x64 Россия http://x64blog.name
Дата: 26.04.13 23:25
Оценка:
А>как наилучшим образом вызвать эту функцию, или её аналог. ntoskrnl не экспортирует.

Возьми адрес из SDT и зови в системном потоке.
JID: x64j@jabber.ru
Re[2]: вызвать Zw[Nt]QueryVirtualMemory из драйвера
От: Аноним  
Дата: 27.04.13 12:10
Оценка:

Возьми адрес из SDT

ну допустим взял и что дальше ? нужен индекс функции. взять его можно только из ntdll ( *(PULONG)(1+(PUCHAR)ZwQueryVirtualMemory)). дальше нужно ntdll открыть, создать секцию, отмапить, найти экспорт. ну или найти
Автор: x64
Дата: 02.07.12
уже отмапленную ntdll. здесь кстати вместо

достаточно открыть ntdll.dll, создать на нём секцию вызовом ZwCreateSection()

можно чуть проще — ZwOpenSection(&hSection, SECTION_QUERY, &oa(L"\\knowndlls\\ntdll.dll"))... как то сликом сложно. кстати ZwQueryVirtualMemory уже экспортируется начиная с vista, фактически нужно решение только для xp/win2003
Re: вызвать Zw[Nt]QueryVirtualMemory из драйвера
От: anonymous185  
Дата: 27.04.13 13:37
Оценка:
ZwQueryVirtualMemory находится 'посредине' между экспортируемыми ZwQueryValueKey и ZwQueryVolumeInformationFile. поэтому можно использовать такой код в x86
extern __imp__ZwQueryValueKey@24:DWORD
extern __imp__ZwQueryVolumeInformationFile@20:DWORD

_TEXT segment

_MyQueryVirtualMemory@24 proc
    mov edx,__imp__ZwQueryValueKey@24
    mov eax,__imp__ZwQueryVolumeInformationFile@20
    add eax,edx
    shr eax,1
    bts eax,31
    jmp eax
_MyQueryVirtualMemory@24 endp

_TEXT ends
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.