如何挂钩MANAGED(.NET)进程并收集该进程内的信息?

时间:2011-03-13 16:51:26

标签: .net dll hook code-injection codecave

我需要挂钩托管(C#,C ++ / CLI)进程,我需要查找并向目标应用程序发送有多少个窗口(其关联的控件及其属性)的信息,该目标应用程序是用C#托管代码编写的。

为此我需要做什么? 我是否需要探索IAT(导入地址表)&该托管流程的EAT(导出地址表)? 我需要在C ++中编写注入器DLL吗? 除了改变IAT和EAT之外,我还需要什么呢?

[编辑] 我需要将托管的运行进程附加到应用程序(它将托管或附加其他进程)。在附加进程后,我需要获取与该进程的窗口关联的所有控件的属性。

我将逐个迭代该附加过程的窗口,将枚举与该窗口关联的所有控件(将获取控件的id,名称,颜色,位置,大小等),并将此整个信息发送到其他应用程序或附加其他应用程序的应用程序(实际上该应用程序作为主机再次需要使用该信息重绘相同的控件,不要问为什么我需要这样做: - )

此致 乌斯曼

2 个答案:

答案 0 :(得分:1)

我相信这些问题的答案对您有所帮助:

How to use reflection to create a "reflection machine"

答案 1 :(得分:1)

请参阅此http://www.codeproject.com/Articles/463508/Net-CLR-Injection-Modify-IL-Codes-on-Run-time

您可以通过在运行时修改IL代码

来实现

此外,Profiler界面是另一种方式