以 w3wp.exe 为例。哪个 Windows API 或 Windows COM 函数调用用于在 svchost.exe 和 w3wp.exe 之间进行通信?用于在 HTTP.sys 和 w3wp.exe 之间进行通信的函数调用怎么样?见图表:http: //i.stack.imgur.com/cyN2W.png
问问题
400 次
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 回答