728x90
현재 프로세스의 시작 주소 값은 GetModuleHandle(NULL)을 사용하여 바로 가져올수있습니다.
다른 프로세스의 시작 주소 값을 가져오고 싶었습니다.
.. 이게 너무너무 너무 오래 걸렸습니다.
일단, getprocaddress() 이거를 쓰면 되는 줄 알았더니, 이게 다른 프로세스만 들어가면 값이 안 나옵니다..
구글링 끝에,, 다른 프로세스의 주소 값은 못 가져오는 걸 알아냈습니다..
그래서 찾은 방법이 프로세스를 캡처하는 C언어 코드!!
코드는 일단 아래와 같습니다.
DWORD GetModuleAddress(const char* moduleName)
{
HANDLE snapshot = CreateToolhelp32Snapshot(TH32CS_SNAPMODULE, dwPid);
MODULEENTRY32 moduleEntry;
moduleEntry.dwSize = sizeof(MODULEENTRY32);
Module32First(snapshot, &moduleEntry);
do
{
if (!strcmp(moduleName, moduleEntry.szModule))
{
CloseHandle(snapshot);
printf("%p\n", moduleEntry.modBaseAddr);
return (DWORD)moduleEntry.modBaseAddr;
}
} while (Module32Next(snapshot, &moduleEntry));
CloseHandle(snapshot);
}
다른 거 다 빼고 딱! baseaddress만 가져오기!!
음 일단 프로세스의 주소 값을 가져왔으니
readprocessmemory를 이용해 값을 가져오려 합니다..
다시 삽질하러...
728x90
'고흐의 연구실 > OS' 카테고리의 다른 글
정적파일의 바이너리 값 가져오기(정적파일 hex값) ------ (0) | 2020.11.14 |
---|---|
[만들면서 배우는 OS(32bit)] 부트스트랩 (0) | 2020.10.13 |
[만들면서 배우는 OS(32bit)] 개발환경구성 NASM, Rawrite (0) | 2020.10.13 |
[디바이스 드라이버] 1. 개발환경 구축 및 Hello World 출력 (0) | 2020.08.23 |