首页
社区
课程
招聘
[旧帖] 我想研究一个Win32程序包含了哪些控件?控件是动态生成的。怎么做? 0.00雪花
发表于: 2010-3-5 09:49 4190

[旧帖] 我想研究一个Win32程序包含了哪些控件?控件是动态生成的。怎么做? 0.00雪花

2010-3-5 09:49
4190
是这样的个程序,类似XUL,是通过XML描述界面,然后用Win32生成界面的,作为初学的我,想研究研究它的实现机制,比如XML里面的某个节点在生成为界面之后成为了哪些控件。

开始我用了Spy++查看,发现不行时才反应过来是由于控件是动态生成的原因,所以Spy++是不能显示地。

想了想,应该还是要在界面显示之后,抓取当前内在加以分析估计可行,但不知道怎么做。也不知我想的这种方法是不是最简单可行的,有没有其它的途径呢?
请各位前辈指教一下。如果各位都认为要用Windbg来分析的话,那我有以下几个问题:

1、在界面显示之后,是直接attach process呢还是dump当前窗体的内存再用windbg分析?

2、重点:我不知道应该用哪些命令做这些事情

3、能否简单给个分析示例?比如获取Win32窗口内的控件信息,或者获取到win32窗口的标题或者其它内容等等,让我有个感性认识。

万分感谢!我会努力学习的!

[课程]FART 脱壳王!加量不加价!FART作者讲授!

收藏
免费 0
支持
分享
最新回复 (7)
雪    币: 285
活跃值: (16)
能力值: ( LV3,RANK:20 )
在线值:
发帖
回帖
粉丝
2
DllGetClassObject这是加载组件的函数,你可以拦截这函数
2010-3-5 20:11
0
雪    币: 285
活跃值: (16)
能力值: ( LV3,RANK:20 )
在线值:
发帖
回帖
粉丝
3
不过它的参数是组件的ID,不是组件名
2010-3-5 20:12
0
雪    币: 285
活跃值: (16)
能力值: ( LV3,RANK:20 )
在线值:
发帖
回帖
粉丝
4
还有QueryInterface这函数也是加载组件
2010-3-5 20:16
0
雪    币: 190
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
5
楼上说的不是很明白
2010-3-8 09:25
0
雪    币: 6772
活跃值: (3689)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
6
界面显示之后,用Spy++查看
2010-3-8 09:37
0
雪    币: 285
活跃值: (16)
能力值: ( LV3,RANK:20 )
在线值:
发帖
回帖
粉丝
7
实践机制我来告诉你吧。
控件实现步骤:
1、注册窗口类(RegisterClassEx),如果是组件,则要先用控件的注册ID得到组件对象
2、创建窗口(CreateWindow)
窗口中可以包含子窗口,子窗口中还可以有子窗口(类推),子窗口默认在窗口的WM_CREATE事件中创建。
2010-3-8 09:50
0
雪    币: 285
活跃值: (16)
能力值: ( LV3,RANK:20 )
在线值:
发帖
回帖
粉丝
8
不论是com还是windows直接提供的控件,它们都会调用CreateWindow,以此判断创建了多少窗口(控件)
2010-3-8 09:51
0
游客
登录 | 注册 方可回帖
返回
//