2013-06-02 57 views
3

是否有可能在win32 API中调用ReadProcessMemory()?我想用C或C++来做。可能挂钩ReadProcessMemory()的事件?

我的意思是,任何时候任何其他进程使用该函数,它都会绕过我的回调函数,并在所有信息的某个时间点回调。

+0

[我会说是的。](http://www.rohitab.com/apimonitor) – chris

回答

1

你可以注入代码到每一个正在运行的进程和调用进程挂钩ReadProcessMemory,就像你将任何其他功能,但没有办法让你从目标过程中把它捞起来。

或者,也可以使用obRegisterCallbacks()从内核通过PsProcessType对象类型和OB_OPERATION_HANDLE_CREATE滤波操作以检测OpenProcess()。这将向您显示任何需要处理的进程以致电ReadProcessMemory()。当这些事件由内核触发时,您将有能力执行自己的代码。您也可以通过obRegisterCallbacks例程与用户模式进程通话。

+0

你有这样的例子吗?你需要管理员访问来实现这一目标吗? – rolls

+0

好吧,它似乎使用obRegisterCallbacks你必须有一个有效的签名驱动程序。对大多数人来说这是不可行的。 – rolls