能力值:
( LV2,RANK:10 )
|
-
-
2 楼
如果想获取方法中的临时变量,请抄起mdbg单步
如果想获取字段或属性,往下面看
a37K9s2c8@1M7q4)9K6b7g2)9J5c8W2)9J5c8X3#2K6k6r3&6Q4x3X3g2E0K9h3y4J5L8%4y4G2k6Y4c8Q4x3X3g2U0L8$3#2Q4x3V1k6*7K9q4)9J5k6r3y4F1i4K6u0r3L8r3W2T1M7X3q4J5P5g2)9J5c8U0l9I4z5e0p5^5j5K6k6^5i4K6t1#2x3U0S2$3i4K6y4p5N6Y4y4Q4x3X3f1I4x3e0m8Q4x3U0f1J5z5g2)9J5k6h3q4K6M7s2R3`.
远线程注入一个dll,用上面的方法取到ICLRRuntimeHost 接口
7a1K9s2c8@1M7q4)9K6b7g2)9J5c8W2)9J5c8X3#2K6k6r3&6Q4x3X3g2E0K9h3y4J5L8%4y4G2k6Y4c8Q4x3X3g2U0L8$3#2Q4x3V1k6*7K9q4)9J5k6r3y4F1i4K6u0r3L8r3W2T1M7X3q4J5P5g2)9J5c8X3#2K6x3e0j5@1y4o6p5I4i4K6t1#2x3U0S2$3i4K6y4p5N6Y4y4Q4x3X3f1I4x3e0m8Q4x3U0f1J5z5g2)9J5k6h3q4K6M7s2R3`.
通过ICLRRuntimeHost 接口在默认应用程序域中加载一个托管dll并调用指定方法
dll里面调用System.Windows.Forms.Application.OpenForms 获取所有Form的集合,遍历全部从中找到指定的Form实例
对这个Form执行反射调用,获取指定的字段或属性
|
能力值:
( LV2,RANK:10 )
|
-
-
3 楼
非常感谢!请问能给出一个具体代码范例吗?例如一个.net 3.5 FORM窗体内有label,button,然后还有一个public int count变量,每点击BUTTON一次,对count进行累加,并显示在label中,如何取得count的值?
|
能力值:
( LV2,RANK:10 )
|
-
-
4 楼
能显示出来的话用UISPY看类名,之后直接FindWindow+EnumChildWindows+SendMessage取text
代码示例网上一大堆,搜索c++注入托管dll就能找到。反射的知识msdn讲的很详细,也有示例代码。
最后,用reflector找到那个变量的名称,例如你上面所说的count,不然会报找不到字段
|
能力值:
( LV2,RANK:10 )
|
-
-
5 楼
大侠,我已经尝试了看了MSDN的例子,但是还是不太明白将system.windows.from.application.openforms与反谢回调获取变量结合起来,能否给个代码片段,同时如果我想要调用的DataTable的变量,有没有其它要求???同时根据观察,估计目标程序的变量名是中文的,有没有其它办法解决?
|
能力值:
( LV2,RANK:10 )
|
-
-
6 楼
如果是界面元素的值,而且是C#,请使用UIAutomation~如果你使用c++,请通过COM方式使用UIAutomation
|
|
|