モジュール情報の表示(C言語)
説明:
呼び出し元プロセスがロードしている全てのモジュールを列挙し、各々のモジュールの情報を表示する。
キーワード:
EnumProcessModules, GetModuleFileName, GetModuleInformation
サンプルコード:
/* 現在のプロセスがロードしているモジュールの情報を表示 */
void DispModuleInfos()
{
HANDLE hProcess;
HMODULE ModuleHandles[1000];
DWORD ModuleNum;
DWORD ReturnSize;
char FileName[1000];
MODULEINFO ModInfo;
DWORD i;
/* 現在のプロセスのハンドルを取得 */
hProcess = GetCurrentProcess();
/* 現在のプロセスにロードされているモジュールの一覧と数を取得 */
EnumProcessModules(hProcess, ModuleHandles, sizeof(ModuleHandles), &ReturnSize);
ModuleNum = ReturnSize / sizeof(HMODULE);
/* 各モジュールの情報を表示 */
for(i=0; i<ModuleNum; i++) {
/* モジュールのファイル名と情報を取得 */
GetModuleFileName(ModuleHandles[i], FileName, 1000);
GetModuleInformation(hProcess, ModuleHandles[i], &ModInfo, sizeof(ModInfo));
/* 結果を表示 */
printf("ファイル名: %s\n", FileName);
printf("\tロードアドレス: %p\n", ModInfo.lpBaseOfDll);
printf("\tサイズ: %08X\n", ModInfo.SizeOfImage);
printf("\tエントリポイント: %p\n", ModInfo.EntryPoint);
printf("\n");
}
}
(original text:1999/01/06 更新)
本ドキュメントの内容は保証しません。本ドキュメントによって生じた結果について、一切の責任を負いません。