首页
社区
课程
招聘
[求助]如何通过DLL注入获取宿主的窗体内变量
发表于: 2014-9-27 21:46 6338

[求助]如何通过DLL注入获取宿主的窗体内变量

2014-9-27 21:46
6338
准备寄宿的对象是一个C#开发的应用程序,手上没有它的源代码,想通过DLL注入的方式获取该程序正在运行的窗体实例内的一个变量值,各位大侠有没有办法,最好能教教这个DLL怎么写?或者有其它方法也行,先跪谢

[注意]传递专业知识、拓宽行业人脉——看雪讲师团队等你加入!

收藏
免费 0
支持
分享
最新回复 (5)
雪    币: 440
活跃值: (893)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
2
如果想获取方法中的临时变量,请抄起mdbg单步
如果想获取字段或属性,往下面看
http://msdn.microsoft.com/zh-cn/library/01918c6x%28v=vs.110%29.aspx
远线程注入一个dll,用上面的方法取到ICLRRuntimeHost 接口
http://msdn.microsoft.com/zh-cn/library/ms164411%28v=vs.110%29.aspx
通过ICLRRuntimeHost 接口在默认应用程序域中加载一个托管dll并调用指定方法
dll里面调用System.Windows.Forms.Application.OpenForms 获取所有Form的集合,遍历全部从中找到指定的Form实例
对这个Form执行反射调用,获取指定的字段或属性
2014-9-28 10:09
0
雪    币: 200
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
3
非常感谢!请问能给出一个具体代码范例吗?例如一个.net 3.5 FORM窗体内有label,button,然后还有一个public int count变量,每点击BUTTON一次,对count进行累加,并显示在label中,如何取得count的值?
2014-9-28 12:31
0
雪    币: 440
活跃值: (893)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
4
能显示出来的话用UISPY看类名,之后直接FindWindow+EnumChildWindows+SendMessage取text
代码示例网上一大堆,搜索c++注入托管dll就能找到。反射的知识msdn讲的很详细,也有示例代码。
最后,用reflector找到那个变量的名称,例如你上面所说的count,不然会报找不到字段
2014-9-29 10:16
0
雪    币: 200
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
5
大侠,我已经尝试了看了MSDN的例子,但是还是不太明白将system.windows.from.application.openforms与反谢回调获取变量结合起来,能否给个代码片段,同时如果我想要调用的DataTable的变量,有没有其它要求???同时根据观察,估计目标程序的变量名是中文的,有没有其它办法解决?
2014-10-4 18:30
0
雪    币: 200
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
6
如果是界面元素的值,而且是C#,请使用UIAutomation~如果你使用c++,请通过COM方式使用UIAutomation
2014-10-11 10:59
0
游客
登录 | 注册 方可回帖
返回
//