我想挂钩所有正在运行的进程的所有函数调用。我可以通过以下方式使用 deviare 挂钩所有进程的某些函数(“ws2_32.dll!recv”):
CreateSpyMgr(out mgr);
hook = mgr.CreateHook("ws2_32.dll!recv");
hook.Attach(mgr.get_Processes(0));
mgr.set_ReportProcessCreation(DeviareCommonLib.ReportMethod._create_process_hook_and_polling, 0);
hook.set_HookNewProcesses(0, 1);
hook.OnFunctionCalled += new DHookEvents_OnFunctionCalledEventHandler(hook_OnFunctionCalled);
hook.Hook();
如何挂钩所有函数调用而不仅仅是一个?可能吗?
或者我应该使用 INktSpyMgr::CreateHooksCollection 创建钩子集合(所有函数都很难)并向其添加钩子,然后调用钩子方法并将 INktHooksEnum 对象作为参数传递。这是唯一的方法吗?
我的目标是制作一个工具来计算每个正在运行的进程的所有系统调用。随时提出任何建议。