我在玩 Microsoft Spy++ 并注意到它不仅可以找到打开的进程,还可以找到每个进程中运行的各个组件。例如,这个应用程序允许您打开一个窗口,其中有一个用于 IP 地址的文本框和一个用于端口的文本框。Spy++ 可以检测到这些组件。知道 Spy++ 可以检测到它们,是否有可能在单独的 c# 应用程序中找到它们并继续修改它们的内容并以其他方式与程序交互?(例如在按钮上触发点击事件)
问问题
1627 次
2 回答
4
这是可行的。尝试使用PInvoke (InterOp) 或AutomationElement或AutomationPeer(用于 WPF 应用程序)来自动化您想做的所有事情。
于 2013-04-15T07:57:49.190 回答
1
自动化元素/对等是一种使用可访问性框架控制 UI 的非侵入式机制。Windows 的弱点之一是它缺乏对代码注入的防御。简单地说:
作为特权用户, - 您可以打开和修改正在运行的进程映像 - 使其加载您的 OWN DLL
- 使其运行您的 OWN 线程(可能侦听来自您的进程的命令)并且 - 允许您读取任何内存位想。
查看 detours ( http://research.microsoft.com/en-us/projects/detours/ ) 了解如何使用托管进程进行操作。不幸的是,Microsoft 删除了运行时注入功能。
另请查看http://msdn.microsoft.com/en-us/magazine/cc163617.aspx以了解在托管世界中的操作(像 Snoop 之类的应用程序利用它)
于 2013-04-15T08:12:02.603 回答