createtoolhelp32snamshot 으로 프로세스 목록 가져오기
리버싱 2009. 11. 25. 15:32 |CreateToolhelp32Snapshot() 와 Process32First(), Process32Next() 를 사용하여 형재 실행중인 프로세서들을 확인한다
- 사용방법 -
#include <Windows.h>
#include <tlhelp32.h> // CreateToolhelp32Snapshot() 를 사용하기 위한 해더 포함
int main()
{
HANDLE hProcess = NULL;
PROCESSENTRY32 pe32 = {0};
hProcess = CreateToolhelp32Snapshot( TH32CS_SNAPPROCESS, 0 );
pe32.dwSize = sizeof( PROCESSENTRY32 );
if( Process32First( hProcess, &pe32 ) )
{
do
{
printf("%20s", pe32.szExeFile);
count++;
if(count == 3)
{
printf("\n");
count = 0;
}
else
printf("\t");
} while ( Process32Next( hProcess, &pe32 ) );
}
else
{
cout << "???" << endl;
}
CloseHandle (hProcess);
return 0;
}
- 결과 -
pe32.szExeFile 의 값을 이용하면 특정 프로세서가 실행 중인지 찾을수 있다
만약 특정 프로세서를 찾아 종료하고 싶다면..
if ( stricmp ( pe32.szExeFile, szPath ) == 0 )
{
HANDLE hProcess = NULL;
if ( hProcess = OpenProcess ( PROCESS_TERMINATE, FALSE, pe32.th32ProcessID ) )
{
TerminateProcess ( hProcess, 0 );
CloseHandle ( hProcess );
}
}
요렇게 하면 될듣??