내가 0x00000001에서 RAM 데이터를 읽고는 하드 디스크에있는 파일 (단지 학습!)에 복사하려고 그래서 내가 쓴 컴파일하고드라이버를 사용하여 특정 위치에서 RAM 데이터 읽기?
#include <ntddk.h>
void DriverUnload(PDRIVER_OBJECT pDriverObject)
{
DbgPrint("Driver Unloaded!");
}
NTSTATUS DriverEntry(PDRIVER_OBJECT DriverObject, PUNICODE_STRING RegistryPath)
{
DWORD *pointer;
pointer = 0x00000001;
DriverObject->DriverUnload = DriverUnload;
DbgPrint("Driver Loaded!\n");
DbgPrint("Data at 0x00000000 is %x\n",*pointer);
return STATUS_SUCCESS;
}
그래서 난 BSOD는 다행히 내가이 실행되고있어 실행 내 Vmware 사용하기 :-) 나는 항상 앱 프로그램에만 메모리에서 직접 읽을 수있는 권한이 없다고 생각했다.
이제 내 질문은 드라이버가 직접 물리적 주소 또는 가상 주소를 사용합니까 ??? & 포인터가 드라이버 프로그래밍 (링 1 또는 2)의 경우와 같이 실제 또는 가상을 반환하는 값의 유형을 의미합니다. 링 3 앱이 가상 주소를 반환한다는 것을 알고 있습니다. 그리고 나는 이미 운전사 책을 읽기 시작하기 만하면 더 빨리 알고 싶었다.