WriteProcessMemory Function

2019. 5. 4. 22:17
728x90
728x90
728x90

출처: https://docs.microsoft.com/en-us/windows/desktop/api/memoryapi/nf-memoryapi-writeprocessmemory

 

WriteProcessMemory function (memoryapi.h)

Writes data to an area of memory in a specified process. The entire area to be written to must be accessible or the operation fails.

docs.microsoft.com

가. 지정된 프로세스에서 메모리 영역에 데이터를 write 한다. write 되어야 할 전체 영역에 접근하거나 작업이 실패해야 한다.

 

Syntax

BOOL WriteProcessMemory(
  HANDLE  hProcess,
  LPVOID  lpBaseAddress,
  LPCVOID lpBuffer,
  SIZE_T  nSize,
  SIZE_T  *lpNumberOfBytesWritten
);

 

Parameters

 (1) hProcess

  수정될 프로세스 메모리에 대한 핸들이다. 핸들은 PROCESS_VM_WRITE 및 PROCESS_VM_OPEATION 액세스 권한이 있어야 한다.

 

 (2) lpBaseAddress

  데이터가 기록되는 지정된 프로세스에서 base address에 대한 포인터. 데이터 전송이 발생하기 전에 시스템은 지정된 크기의 base address와 메모리에 있는 모든 데이터에 write access가 가능한지 확인하고, 접근할 수 없으면 함수는 실패한다.

 

 (3) lpBuffer

  지정된 프로세스의 주소 공간에 기록할 데이터가 포함된 버퍼에 대한 포인터.

 

 (4) nsize

  지정된 프로세스에 기록될 바이트 수.

 

 (5) lpNumberOfBytesWritten

  지정된 프로세스로 전송된 바이트 수를 수신하는 변수에 대한 포인터. 이 parameter는 option이다. lpNumberOfBytesWritten이 NULL인 경우, 이 parameter는 무시된다.

 

Return Value

 (1) 함수가 성공하면, return value가 0이 아니다.

 

 (2) 함수가 실패하면, return value가 0이다. extended error information을 얻으려면 GetLastError를 호출해라. 요청된 스기 작업이 접근할 수 없는 프로세스 영역과 교차하면 함수는 실패한다.

 

Remarks

 (1) WriteProcessMemory는 현재 프로세스의 지정된 버퍼에서 지정된 프로세스의 주소 범위로 데이터를 복사한다. 기록할 프로세스에 대한 PROCESS_VM_WRITE 및 PROCESS_VM_OPERATION 액세스 권한이 있는 모든 프로세스는 함수를 호출할 수 있다.

 

 (2) 기록해야할 전체 영역에 접근할 수 있어야 하며, 접근할 수 없으면 함수는 실패한다.

 

Requirements

 (1) Minimum supported client

  Windows XP [desktop apps only]

 

 (2) Minimum supported server

  Windows Server 2003 [desktop apps only]

 

 (3) Target Platform

  Windows

 

 (4) Header

  memoryapi.h (include Windows.h)

 

 (5) Library

  Kernel32.lib

 

 (6) DLL

  Kernel32.dll

728x90
728x90

'ETC > Windows API' 카테고리의 다른 글

CreateRemoteThread Function  (0) 2019.05.04
GetProcAddress Function  (1) 2019.05.04
GetModuleHandleA Function  (0) 2019.05.04
VitualAllocEx Function  (0) 2019.05.04
OpenProcess Function  (0) 2019.05.04

+ Recent posts