【问题标题】:View Windows activation context of a running process?查看正在运行的进程的 Windows 激活上下文?
【发布时间】:2017-08-08 13:18:05
【问题描述】:

有什么方法可以查看正在运行的 Windows 进程的激活上下文

理想情况下,当我说“视图”时,我是指以人类可读的方式检查它,例如查看/确认已加载哪些 DLL,等等。

我的想象是某种调试器可能会附加到正在运行的进程,然后显示该信息。但任何类型的工具都可能有用 - 调试器、日志文件,甚至使用激活上下文 API 来检查事物等等。

【问题讨论】:

    标签: winsxs activation-context-api


    【解决方案1】:

    检索激活上下文详细信息的基本方法之一是使用QueryActCtxW() API。这个 API 可以用来查询一堆细节。 here 提供了一个很好的示例。

    在示例代码中,请注意下面一行。

    // Request the first file in the root assembly
    QueryIndex.ulAssemblyIndex = 1;
    

    QueryActCtxW() API 可以通过增加ulAssemblyIndex 的值来重复调用,只要返回成功即可。每个成功的调用都将返回由ulAssemblyIndex 表示的程序集的请求详细信息。

    当从进程中调用QueryActCtxW() 时,上述方法将起作用。

    现在,如果您想获取另一个进程的详细信息,一个想法是将激活上下文检索逻辑包装在 DLL 中。 DLL 可以将详细信息转储到磁盘文件或通过管道将其传送到查看器。然后通过DLL Injection 等技术或利用CreateRemoteThread() API 将这个DLL 注入给定进程。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2017-10-20
      • 1970-01-01
      • 2017-10-20
      • 2015-01-09
      • 2010-09-18
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多