モジュール情報の表示(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 更新)

本ドキュメントの内容は保証しません。本ドキュメントによって生じた結果について、一切の責任を負いません。