Windows Memory Read/Write Lib
Windows Memory Read[MSDN]
Memory Read Function
BOOL ReadProcessMemory( HANDLE hProcess, LPCVOID lpBaseAddress, LPVOID lpBuffer, SIZE_T nSize, SIZE_T* lpNumberOfBytesRead );
함수명 : ReadProcessMemory
인자명 : hProcess, lpBaseAddress, lpBuffer, nSize, lpNumberOfBytesRead
분석
인자명 | 자료형 | 설명 | 비고 |
hProcess |
HANDLE |
[_In_] OpenProcess() 함수를 통해 Process의 메모리를 제어하는 Handle |
단순 읽기위해선 PROCESS_VM_READ, |
lpBaseAddress |
LPCVOID |
[_In_] 읽을 메모리 주소를 가르키는 포인터 |
|
lpBuffer |
LPVOID |
[_Out_] 읽어낸 데이터를 저장할 포인터 |
|
nSize |
SIZE_T |
[_In_] 읽은 내용을 저장할 Buffer의 크기 |
|
lpNumberOfBytesRead |
SIZE_T* |
[_Out_] 쓰거나, 읽은 메모리의 크기 |
만약 NULL일 경우 해당 인자는 무시된다. |
반환
자료형 : BOOL
Memory Read Success != 0
Memory Read Fail == 0
Windows Memory Write[MSDN]
Memory Write Function
BOOL WriteProcessMemory( HANDLE hProcess, LPVOID lpBaseAddress, LPCVOID lpBuffer, SIZE_T nSize, SIZE_T* lpNumberOfBytesWritten );
함수명 : WriteProcessMemory
인자명 : hProcess, lpBaseAddress, lpBuffer, nSize, lpNumberOfBytesRead
분석
인자명 | 자료형 | 설명 | 비고 |
hProcess |
HANDLE |
[_In_] OpenProcess() 함수를 통해 Process의 메모리를 제어하는 Hendle |
단순 읽기위해선 PROCESS_VM_READ, |
lpBaseAddress |
LPVOID |
[_In_] 쓴 메모리 주소를 가르키는 포인터 |
|
lpBuffer |
LPCVOID |
[_In_] 쓸 데이터가 저장된 포인터 |
|
nSize |
SIZE_T |
[_In_] 쓸 내용을 저장한 Buffer의 크기 |
|
lpNumberOfBytesRead |
SIZE_T* |
[_Out_] 쓰거나, 읽은 메모리의 크기 |
WriteProcessMemory에선 옵션이다. |
반환
자료형 : BOOL
Memory Write Success != 0
Memory Write Fail == 0