프로세스 메모리 관련 소스
#include "windows.h"
#include "iostream"
void main()
{
 char inputt; //switch문을 통해 입력 받을 변수
 HWND hWnd; // 윈도우창
 DWORD ProcessID;  //프로세스id변수
 HANDLE Handle;//핸들변수
DWORD Value=NULL; //벨류 저장할 초기값
hWnd = ::FindWindow(NULL, "메모장"); // 창을 찾는다.
 if(!IsWindow(hWnd)) // 만약 창을 찾지 못했다면
 {
  AfxMessgeBox("창을 찾을 수 없습니다.");
  return; // 프로그램 종료
 }
 GetWindowThreadProcessId(hWnd, &ProcessID); // ProcessID를 구한다.
 Handle = OpenProcess(PROCESS_ALL_ACCESS, false, ProcessID); // Handle을 구한다.
 if(Handle == NULL) // 만약 Handle을 얻어오는데 실패하면
 {
  AfxMessgeBox("Handle을 얻어오는데 실패하였습니다.");
  return; // 프로그램 종료
 }
while(1)
{
ReadProcessMemory(Handle, (LPCVOID)0x41C18B, (LPVOID)&Value, 2, NULL);
start:              // goto문 start시작
scanf(%c,inputt);   //문자 입력 받음.
switch(inputt){
case 1:                    
AfxMessgeBox("적용준비.....");
if(Value==99)
WriteProcessMemory(Handle, (LPVOID)0x41C18B, (LPVOID)&Value, 2, NULL); // 읽어온 주소 벨류값이 99면  적용
Sleep(300);
AfxMessgeBox("적용");
goto start   //처음 입력상태로 돌아간다.
break;
case 2:
if(Value==100)
WriteProcessMemory(Handle, (LPVOID)0x41C18B, (LPVOID)&Value, 2, NULL);   //읽어온 주소 벨류값이 100이면 해제
Sleep(300);
AfxMessgeBox("해제");
goto start  //처음 입력상태로 돌아간다.
break;
}
}
}