如何挂钩到Windows中的其他程序?

时间:2010-06-25 21:25:41

标签: windows api hook

任何人都可以解释一个程序如何挂钩并修改Windows中其他程序的行为?

怎么可能呢? Windows程序不能保护自己免受进入其内存的其他程序的影响吗? (我不知道内部是如何工作的所以我只是说“进入他们的记忆” - 我敢打赌它比那更复杂。)

像Windows 7这样的现代Windows是否仍然允许它?

谢谢,Boda Cydo

2 个答案:

答案 0 :(得分:5)

有几种不同的方法可以挂钩和修改其他程序的行为。

例如,您可以直接写入另一个程序的内存(WriteProcessMemory),也可以将一个线程注入另一个程序的内存(CreateRemoteThread)。这假设您有权控制其他程序。

您还可以通过SetWindowsHookEx注入窗口挂钩。这假设您正在用户的会话中以与您注入的程序相同或更高的完整性级别运行。

由于多种原因,仍然允许这样做。如果没有办法修改其他程序的行为,您将无法实现调试器。 Windows挂钩用于测试程序,辅助功能程序,改变Windows外观的程序等。

答案 1 :(得分:0)

想象一下将数据保存到文件X.txt的应用程序 您可以获取x.txt内容,并尝试在保存的x.txt中找到当前x.txt的差异,一旦它发生更改,您就可以知道程序X修改了其x.txt文件。 p>

您可以在较低级别执行此操作,但概念保持不变,(监视某些内容以进行更改)。