我们如何在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?怎么做?
答案 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