在windows中调试system / ole dll

时间:2013-12-29 14:31:03

标签: windows debugging

我们如何在Windows中调试系统dll? 说我的应用程序使用的是使用系统dll的第三方dll,我想知道第三方dll传递给系统dll apis的确切参数。

示例,假设myapp.exe使用名为xyz-wmi.dll的第三方dll,这使得api调用SWbemLocator.ConnectServer,这恰好在Wbemdisp.dll中。

我想检查在Wbemdisp.dll中传递给SWbemLocator.ConnectServer的确切参数。

有没有办法在Wbemdisp.dll的函数SWbemLocator.ConnectServer中设置断点并在调试器中检查params?怎么做?

2 个答案:

答案 0 :(得分:2)

使用ApiMonitor可以拦截几乎所有的Windows API。您可以查看:http://www.rohitab.com/apimonitor

它还支持COM Api监控,这正是您所追求的。它还可以在将特定值传递给API时设置断点,这使得它很容易与调试器一起使用。

答案 1 :(得分:0)

请致电:

CoInitializeEx(nil, COINIT_MULTITHREADED); // Added

WMIService = SWbemLocator.ConnectServer('localhost','root\CIMV2', '', '');

如果在DLL中调用WMI