오늘 확인할 API는 GetModuleFileNameA API이다
GetModuleFileNameA(
_In_opt_ HMODULE hModule,
_Out_writes_to_(nSize,((return < nSize) ? (return + 1) : nSize)) LPSTR lpFilename,
_In_ DWORD nSize
);
해당 API는 세개의 인자를 받는다.
첫번째 인자는 HMODULE이다. 현재 실행되고 있는 모듈의 핸들 또는 NULL이 온다.
두번째 인자는 LPSTR형으로, 실행 경로를 받을 버퍼를 명시한다.
typedef _Null_terminated_ CHAR *NPSTR, *LPSTR, *PSTR;
LPSTR형은 char*와 똑같다고 보면 된다.
세번째 인자는 두번째 인자 버퍼의 길이를 나타낸다.
#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
#include <string.h>
#include <windows.h>
int main() {
int len = 0, res = 0;
char path[1024];
res = GetModuleFileNameA(0, path, 1024);
len = strlen((char *)path);
printf("실행된 위치 >> %s\n", (char *)path);
printf("GetModuleFileName return >> %d\n", res);
}
위와 같이 현재 실행중인 프로세스의 풀 경로를 받아올 수 있다.
'Reversing > Win API' 카테고리의 다른 글
LoadLibraryA API (0) | 2020.06.02 |
---|