比如system32中的kernal.dll,怎么样知道它被哪个进程给加载了?并将所有加载它的进程显示出来.

解决方案 »

  1.   

    CreateToolhelp32Snapshot 
    Process32First
    Process32Next
    枚举所有进程,然后, 根据获得的进程打开进程(OpenProcess),注意,打开进程前,用AdjustPrivillege调整权限SE_DEBUG_NAME, 接着用EnumProcessModules枚举每个进程中所有模块(dll).
      

  2.   

    DLL模块系统只有引用记数,而无引用进程名,所以你只有枚举进程之后再枚举模块来取所有进程加载的模块名作比较.
    CreateToolhelp32Snapshot 
    Process32First
    Process32Next
    Module32First
    Module32NextEnumProcessModules+GetModuleFileName也可以.
      

  3.   

    Dumpbin可以看到有那些进程引用了指定名称的模块?
    你确定吗?