|
막연한 질문입니다.
책없이 단순히 인터넷으로만 공부하다보니 기본이 없어서..
프로그램을 제대로 이해하지 못하고 있습니다.
직장에서는 코볼하구요. -.-
메모리상에 상주하고 있는 어떤 프로그램의 메모리를 읽어서
원하는 값을 찾는 프로그램을 만들어 보고 있습니다.
델마당 등에서 알아낸 정보를 바탕으로 여기까진 만들었는데..
뭐가 잘못됐는지 알고 싶습니다.
1. 캡션으로 해당 pg 핸들을 찾는다
HWND handle = FindWindow(0,"계산기");
2. 해당 pg의 프로세스 ID를 얻는다.
GetWindowThreadProcessId(handle, &processID );
3. 프로세스 오픈
processHandle = OpenProcess(PROCESS_ALL_ACCESS,FALSE,processID);
4. pg 싸이즈를 파악한다.
GetSystemInfo(&sysInfo);
baddr = sysInfo.lpMinimumApplicationAddress;
memset(&mbi,0,sizeof(MEMORY_BASIC_INFORMATION));
VirtualQueryEx(processHandle,badd....)
memoryStart=sysInfo.lpMinimumApplicationAddress ;
memorySize=sysInfo.lpMaximumApplicationAddress ;
5. for문으로 해당 pg에서 원하는 부분을 찾는다.
ReadProcessMemory(processHandle,(void *)i,(LPVOID)&v,4,&size);
6. close 핸들
틀린부분이나 쓸데없는 코드..를 알고 싶습니다.
그리고, 프로세스가 멀티쓰레드를 가지고 실행될때도
위 코드에서 어떻게 동작될지 알고 싶습니다. 처리되는지요..
snapshot이라는게 멀티쓰레드를 처리하기 위한 방법인지...
더불어.. win32 api 전 함수가 설명과 함께 망라된 홈페이지 좀 알려주시면 매우
감사하겠습니다. 리소스에서 받아 설치한 6버젼에는 오류가 발생하거나 없는 함수가 있네요.
|