32bit인 process의 정보를 가져올때 사용하는 함수


성공시 생선된 스냅샷의 정보의 핸들 리턴

실패시 INVALID_HANDLE_VALUDE(-1) 리턴


HANDLE WINAPI CreateToolhelp32Snapshot(

 _In_ DWORD dwFlags,

 _In_ DWORD th32ProcessID

);


- dwFlags : 어떤 정보를 가져올것인가를 정하는 것(주로 사용 :  TH32CS_SNAPMODULE32으로 모듈정보 가져옴)

(3번째 인자를 0으로 해서  TH32CS_SNAPPROCESS 를 사용해 process정보를 가져옴)

- th32ProcessID : 프로세스의 ID


------------------------------------------------------------------------------------------------

http://jrich.tistory.com/38

출처


스냅샷 정보에서 첫번째 모듈의 정보를 읽어올때 사용하는 함수


BOOL WINAPI Module32First(

 _In_ HANDLE hSnapshot,

 _Inout_ LPMODULEENTRY32 lpme

);


- hSnapshot : CreateToolhelp32Snapshot 함수 호출의 반환 값인 스냅샷 정보의 핸들

- lpme : 읽어온 모듈의 정보를 저장 할 MODULEENTRY32 구조체 변수의 주소

(구조체의 크기를 나타내는 dwSize의 멤버는 sizeof 연산자로 크기를 구하여 반드시 설정 해야한다.)


typedef struct tagMODULEENTRY32 {


  DWORD   dwSize;    // 구조체 크기


  DWORD   th32ModuleID;    // 사용하지 않음, 1로 설정


  DWORD   th32ProcessID;    // 모듈이 속해있는 프로세스의 식별자


  DWORD   GlblcntUsage;    // 모듈의 로드 횟수, 일반적으로 -1로 설정


  DWORD   ProccntUsage;    // 모듈의 로드 횟수, 일반적으로 -1로 설정


  BYTE    *modBaseAddr;    // 프로세스 메모리 공간에서의 모듈의 기준 주소


  DWORD   modBaseSize;    // 모듈의 크기(바이트 단위)


  HMODULE hModule;    // 프로세스 메모리 공간에서의 모듈의 핸들


  TCHAR   szModule[MAX_MODULE_NAME32 + 1];    // 모듈 이름


  TCHAR   szExePath[MAX_PATH];    // 경로를 포함한 모듈 이름


} MODULEENTRY32, *PMODULEENTRY32;


------------------------------------------------------------------------------------------------


http://jrich.tistory.com/39

출처


Module32First 호출 이후 스냅샷 정보에서 다음 프로세스의 정보를 읽어온다.


BOOL WINAPI Module32Next(

 _In_ HANDLE hSnapshot,

 _Out_ LPMODULEENTRY32 lpme

)l;


- hSnapshot :  CreateToolhelp32Snapshot 함수 호출의 반환 값인 스냅샷 정보의 핸들

- lpme : 읽어온 프로세스의 정보를저장할 MODULEENTRY32 구조체 변수의 주소 


------------------------------------------------------------------------------------------------

http://jrich.tistory.com/27

출처


스냅샷 정보에서 첫 번째 프로세스의 정보를 읽어올때 사용하는 함수


BOOL WINAPI Process32First(

 _In_ HANDLE hSnapshot,

 _Inout_ LPPROCESSENTRY32 lppe

);


- hSnapshot : CreateToolhelp32Snapshot 함수 호출의 반환 값

- lppe : 읽어온 프로세스의 정보를 저장할 PROCESSENTRY32 구조체 변수의 주소


typedef struct tagPROCESSENTRY32 {


  DWORD     dwSize;    // 구조체의 크기


  DWORD     cntUsage;    // 사용하지 않음, 0으로 설정


  DWORD     th32ProcessID;    // 프로세스 식별자


  ULONG_PTR th32DefaultHeapID;    //  사용하지 않음, 0으로 설정


  DWORD     th32ModuleID;    // 사용하지 않음, 0으로 설정


  DWORD     cntThreads;    // 프로세스의 스레드 개수


  DWORD     th32ParentProcessID;    // 부모 프로세스 식별자


  LONG      pcPriClassBase;    // 프로세스의 기본 우선 순위


  DWORD     dwFlags;    // 사용하지 않음, 0으로 설정


  TCHAR     szExeFile[MAX_PATH];    // 프로세스의 실행 파일 이름


} PROCESSENTRY32, *PPROCESSENTRY32;



------------------------------------------------------------------------------------------------

SetPrivilege 함수 설명


+ Recent posts