как наилучшим образом вызвать эту функцию, или её аналог. ntoskrnl не экспортирует. нужно для сканирования юзермодной памяти процесса из ядра
Возьми адрес из 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
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