首页
社区
课程
招聘
[求助]关于MFC自绘控件的修改问题
发表于: 2015-10-27 13:09 5033

[求助]关于MFC自绘控件的修改问题

bxc 活跃值
6
2015-10-27 13:09
5033
最近分析一个程序,发现是基于MFC的,但是部分控件不美观,想要修改一下。
由于没有没有源码,所以想以dll的形式hook关键函数,来实现由dll自绘控件。
不过本人对MFC不熟悉,网上查了下资料:
给初学者的一点提示,希望大家能得到一点收获

构建步骤:
1.从CWnd派生一个新类比如CMyCtrl
2.重载Create函数,传参更改成自己需要的数据,注册并创建子类化窗口
3.在OnPaint()里随心所欲画自己要的东西
4.响应鼠标消息,得到信息后向父窗口发送消息


我利用OD已经跟到了程序的目标控件调用CWnd::Create的地方了。
但是不知如何下手,想知道调用CWnd::Create的地方是重载了CWnd的自绘控件类的Create函数吗?
如果我直接在调用CWnd::Create的地方hook,然后修改CCreateContext参数可行否呢?

[招生]科锐逆向工程师培训(2024年11月15日实地,远程教学同时开班, 第51期)

收藏
免费 0
支持
分享
最新回复 (8)
雪    币: 4560
活跃值: (1002)
能力值: ( LV4,RANK:50 )
在线值:
发帖
回帖
粉丝
2
用skinh很简单
2015-10-27 13:23
0
雪    币: 7048
活跃值: (3527)
能力值: ( LV12,RANK:340 )
在线值:
发帖
回帖
粉丝
3
不是,如果有源码用现成的库当然好了;目前是没有源码,打算patch exe文件,屏蔽掉原自绘控件,改成自己的,就是不知怎么hook掉原控件的类。
2015-10-27 14:19
0
雪    币: 786
活跃值: (3435)
能力值: ( LV7,RANK:140 )
在线值:
发帖
回帖
粉丝
4
没做过,假如我做的话,我会尝试这样做:
SetWindowLong设置目标控件的GWL_WNDPROC回调函数,在自己的回调函数里处理绘制消息
2015-10-28 11:40
0
雪    币: 7048
活跃值: (3527)
能力值: ( LV12,RANK:340 )
在线值:
发帖
回帖
粉丝
5
如果是WIn32的我会考虑这样做,但是MFC这样做可能会有其他问题吧0.0
2015-10-28 12:58
0
雪    币: 786
活跃值: (3435)
能力值: ( LV7,RANK:140 )
在线值:
发帖
回帖
粉丝
6
MFC只是封装了一些东西而已,并不会改变windows原有的套路吧
2015-10-28 15:38
0
雪    币: 7048
活跃值: (3527)
能力值: ( LV12,RANK:340 )
在线值:
发帖
回帖
粉丝
7
主要是本人对mfc不了解,担心修改后引起其他的问题.
2015-10-28 18:31
0
雪    币: 53
活跃值: (528)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
8
http://bbs.pediy.com/showthread.php?p=1003694
2015-10-28 22:26
0
雪    币: 16
活跃值: (430)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
9
MFC的也可以HOOK的,原理正如4楼所说,之前做过,不会有问题的
2015-11-11 14:59
0
游客
登录 | 注册 方可回帖
返回
//