跟踪所有进程的 Windows API 调用
Posted
技术标签:
【中文标题】跟踪所有进程的 Windows API 调用【英文标题】:Tracing Windows API calls over all processes 【发布时间】:2015-07-11 12:03:20 【问题描述】:我正在尝试编写一个应用程序,该应用程序将对 所有正在运行的进程(以及在我的应用程序启动后创建的进程)的某些函数和 Windows API 的 DLL 的使用进行静态分析)。
在网上搜索后,我发现了几个可能有帮助的工具——例如WinAPIOverride
、EasyHook
和ProcMon
,它们使用不同类型的钩子。不幸的是,在我看来,他们无法完全满足我的需求:WinAPIOverride
、EasyHook
只能挂钩应该选择的某些进程,而ProcMon
没有我可以使用的接口跟踪我需要的 API 调用。
我还想知道这种挂钩是否可以与 Python 代码或至少 C# 环境交互。
我想听听一些关于如何做到这一点的建议。
【问题讨论】:
有一个procmon钩子,2秒 我该如何使用它? 【参考方案1】:这篇文章可能不是你想要做的事情的圣杯,但肯定会让你在你的追求中走得更远:
http://www.codeproject.com/Articles/2082/API-hooking-revealed
我不能 100% 确定那是我想要利用 ProcMon 的文章。经过进一步研究,我很确定我正在考虑的是 EasyHook:http://www.codeproject.com/Articles/27637/EasyHook-The-reinvention-of-Windows-API-hooking
ETW 也可能是另一种调查途径:http://www.codeproject.com/Articles/570690/Application-Analysis-with-Event-Tracing-for-Window
【讨论】:
以上是关于跟踪所有进程的 Windows API 调用的主要内容,如果未能解决你的问题,请参考以下文章