繁体   English   中英

使用 Module32First/Next 从 64 位进程枚举 32 位进程模块

[英]Using Module32First/Next to Enumerate 32bit Process Modules from 64bit Process

这是代码:

 hModuleSnap = CreateToolhelp32Snapshot( TH32CS_SNAPMODULE32, dwPID ); 
  if( hModuleSnap == INVALID_HANDLE_VALUE ) 
  { 

    return( r_mi ); 
  } 


  me32.dwSize = sizeof( MODULEENTRY32 ); 

  if( !Module32First( hModuleSnap, &me32 ) ) 
  { 

    CloseHandle( hModuleSnap );
    return( r_mi ); 
  } 

  do 
  { 
      MessageBoxA(0,me32.szModule,0,0);

  } while( Module32Next( hModuleSnap, &me32 ) );

问题是,当尝试从 64 位进程枚举 32 位进程的模块时,只列出了 x64 模块。

来自 MSDN for TH32CS_SNAPMODULE32:当从 64 位进程调用时,包括快照中 th32ProcessID 中指定的进程的所有 32 位模块。

但是,它仍然只列出了 x64 模块

任何人都知道解决这个问题?

你必须使用TH32CS_SNAPMODULE32 | TH32CS_SNAPMODULE感谢Hans Passant解决这个问题。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM