0

以 w3wp.exe 为例。哪个 Windows API 或 Windows COM 函数调用用于在 svchost.exe 和 w3wp.exe 之间进行通信?用于在 HTTP.sys 和 w3wp.exe 之间进行通信的函数调用怎么样?见图表:http: //i.stack.imgur.com/cyN2W.png

4

2 回答 2

2

如果您只想查看函数调用并获取作为参数传入的数据,我强烈推荐API Monitor。它使您可以直接连接到 Windows 中内置的大多数 DLL,并让您监视传递给函数的参数和函数的返回值。

在此处输入图像描述

如果您想观看程序不知道的 dll,您可以将其添加到程序中。但是,要将其添加到程序中,您需要为 dll 编写一个 XML 描述符文件,该文件描述 dll 包含的函数的数据类型和参数。描述符文件相当简单,它基本上只是将.h您已经拥有的 dll 转换为 XML 格式(如果您没有头文件,这将更加困难)。例如,这里的描述符Loadperf.dll

<!--
    API Monitor Definitions
    (c) 2010-2012, Rohitab Batra <rohitab@rohitab.com>
    http://www.rohitab.com/apimonitor/
-->
<ApiMonitor>
    <Include Filename="Headers\windows.h.xml" />
    <Module Name="Loadperf.dll" CallingConvention="STDCALL" ErrorFunc="GetLastError" OnlineHelp="MSDN">
        <!-- Performance Counters -->
        <Category Name="Diagnostics/Performance Counters" />
        <Api Name="LoadPerfCounterTextStrings" BothCharset="True">
            <Param Type="LPCTSTR" Name="commandLine" />
            <Param Type="BOOL" Name="bQuietModeArg" />
            <Return Type="[ERROR_CODE]" />
        </Api>
        <Api Name="UnloadPerfCounterTextStrings" BothCharset="True">
            <Param Type="LPCTSTR" Name="commandLine" />
            <Param Type="BOOL" Name="bQuietModeArg" />
            <Return Type="[ERROR_CODE]" />
        </Api>
    </Module>
</ApiMonitor>

如果您想编写代码并让它拦截调用并修改传递的参数或返回的结果,我推荐EasyHook。做起来一点都不难。这是一个很好的描述以及如何使用它。

于 2013-08-13T03:35:06.830 回答
0

DeviceIOControl也许在 w3wp.exe 和 http.sys 之间?我没有这些模块的源代码。但是,您可以获得各种 Windows 组件的调试符号,并熟练调试,并使用其他调试器/实用程序,例如Dependency Walker。如果这是你的最终目标,这是一个很好的学习练习。

您的问题有点模糊,不确定您要达到的目标。

于 2013-08-13T03:25:53.220 回答