프로세서에서 열은 DLL과 DLL의 쓰레드 구하기

/*SysManager.dll
urlmain.dll
agent.exe*/

#define _WIN32_WINNT 0x0501

#include <windows.h>
#include <Psapi.h>
#include <iostream>

using namespace std;

int main()
{
    HWND h_window;
    HANDLE h_proc;
    HMODULE h_buf[100];
    DWORD size=0,pid;
    unsigned int counter;
    TCHAR buffer[512];

    memset(buffer,0,sizeof(buffer));

    h_window=FindWindow(NULL,TEXT("레지스트리 편집기"));
    GetWindowThreadProcessId((HWND)h_window,&pid);
    h_proc=OpenProcess( PROCESS_QUERY_INFORMATION | PROCESS_VM_READ,FALSE, pid);
    EnumProcessModules(h_proc,h_buf,sizeof(h_buf),&size);

    cout<<"핸들:"<<h_window<<"크기:"<<size<<"pid:"<<pid<<endl;

    for(counter=0;counter<size/sizeof(HMODULE);counter++)
    {
        GetModuleFileName(h_buf[counter],buffer,sizeof(buffer));
        cout<<TEXT("모듈이름:")<<buffer<<"모듈ID:"<<h_buf[counter]<<endl;
    }
    Sleep(40000);

    return 0;
}

 EnumProcessModules를 쓰면 한번에 쫙 버퍼로 옮겨준다. 프로세서의 HANDLE을 줘야해서 HWND를 쓰려면 프로세서id를 뽑은 다음에 거기서 또 핸들을 꺼내면 된다.
 아리 죽이기를 위한 시험작

이 글과 관련있는 글을 자동검색한 결과입니다 [?]

by allrelease | 2008/01/17 21:47 | 공대노트 | 트랙백 | 덧글(0)

트랙백 주소 : http://allrelease.egloos.com/tb/1303028
☞ 내 이글루에 이 글과 관련된 글 쓰기 (트랙백 보내기) [도움말]

:         :

:

비공개 덧글

◀ 이전 페이지 다음 페이지 ▶