ReadProcessMemory 함수(memoryapi.h)
BOOL ReadProcessMemory(
[in] HANDLE hProcess,
[in] LPCVOID lpBaseAddress,
[out] LPVOID lpBuffer,
[in] SIZE_T nSize,
[out] SIZE_T *lpNumberOfBytesRead
);
[in] hProcess
읽는 메모리가 있는 프로세스에 대한 핸들입니다. 핸들에는 프로세스에 대한 PROCESS_VM_READ 액세스 권한이 있어야 합니다.
[in] lpBaseAddress
읽을 지정된 프로세스의 기본 주소에 대한 포인터입니다. 데이터 전송이 발생하기 전에 시스템은 지정된 크기의 기본 주소 및 메모리에 있는 모든 데이터에 읽기 액세스에 액세스할 수 있는지 확인하고 액세스할 수 없는 경우 함수가 실패하는지 확인합니다.
[out] lpBuffer
지정된 프로세스의 주소 공간에서 콘텐츠를 받는 버퍼에 대한 포인터입니다.
[in] nSize
지정된 프로세스에서 읽을 바이트 수입니다.
[out] lpNumberOfBytesRead
지정된 버퍼로 전송되는 바이트 수를 수신하는 변수에 대한 포인터입니다. lpNumberOfBytesRead가 NULL이면 매개 변수는 무시됩니다.
함수가 성공하면 반환 값이 0이 아닙니다.
함수가 실패하면 반환 값은 0입니다. 확장 오류 정보를 가져오려면 GetLastError를 호출합니다.
요청된 읽기 작업이 액세스할 수 없는 프로세스 영역으로 넘어가면 함수가 실패합니다.
ReadProcessMemory 는 지정된 주소 범위의 데이터를 지정된 프로세스의 주소 공간에서 현재 프로세스의 지정된 버퍼로 복사합니다. PROCESS_VM_READ 액세스 권한이 있는 핸들이 있는 모든 프로세스는 함수를 호출할 수 있습니다.
읽을 전체 영역에 액세스할 수 있어야 하며 액세스할 수 없는 경우 함수가 실패합니다.
지원되는 최소 클라이언트 | Windows XP [데스크톱 앱만 해당] |
지원되는 최소 서버 | Windows Server 2003 [데스크톱 앱만 해당] |
대상 플랫폼 | Windows |
헤더 | memoryapi.h(Windows.h 포함) |
라이브러리 | onecore.lib |
DLL | Kernel32.dll |
디버깅 함수, OpenProcess, 디버깅을 위한 프로세스 함수, VirtualAllocEx, WriteProcessMemory