找回密码
 加入我们

QQ登录

只需一步,快速开始

搜索
查看: 16541|回复: 24

[原创]子类应用---保护你的密码框

[复制链接]

275

主题

3017

回帖

1

精华

管理员

嗷嗷叫的老马

积分
17064

论坛牛人贡献奖关注奖最佳版主进步奖人气王疯狂作品奖精英奖赞助论坛勋章乐于助人勋章

QQ
发表于 2005-4-22 12:21:55 | 显示全部楼层 |阅读模式
<P>
VB的密码框是很脆弱的,如果操作系统是WIN98时更是如此,一行代码就可以得到星号下的密码.


怎么办?


还好,我们有子类技术!


以下是我写的一个简单例子,使用子类过程把取得密码的消息给过滤了.

其中也包含一个用ASM编写的星号查看器,很好用的哦!!(均有源码)</P>
<P>
r4WHMNTm.rar (11.27 KB, 下载次数: 25568)
</P>
我就是嗷嗷叫的老马了......

54

主题

345

回帖

0

精华

铂金会员

天马行空

积分
2205
发表于 2005-4-22 13:25:26 | 显示全部楼层
<P>好东西就别让它沉了 </P><P>支持!</P>
爱情是狗屁,不如好好去努力, 享受生活才是快乐的真谛! 本人比较菜,多多指教!

275

主题

3017

回帖

1

精华

管理员

嗷嗷叫的老马

积分
17064

论坛牛人贡献奖关注奖最佳版主进步奖人气王疯狂作品奖精英奖赞助论坛勋章乐于助人勋章

QQ
 楼主| 发表于 2005-4-24 18:20:50 | 显示全部楼层
建议学习一下子类技术,相当有用的
我就是嗷嗷叫的老马了......

275

主题

3017

回帖

1

精华

管理员

嗷嗷叫的老马

积分
17064

论坛牛人贡献奖关注奖最佳版主进步奖人气王疯狂作品奖精英奖赞助论坛勋章乐于助人勋章

QQ
 楼主| 发表于 2005-4-24 18:21:51 | 显示全部楼层
建议学习一下子类技术,相当有用的
我就是嗷嗷叫的老马了......

54

主题

345

回帖

0

精华

铂金会员

天马行空

积分
2205
发表于 2005-4-24 18:50:20 | 显示全部楼层
<P>但我还是不怎么懂这个字类的含义</P><P>马哥多说点以后让我好好学学</P>
爱情是狗屁,不如好好去努力, 享受生活才是快乐的真谛! 本人比较菜,多多指教!

275

主题

3017

回帖

1

精华

管理员

嗷嗷叫的老马

积分
17064

论坛牛人贡献奖关注奖最佳版主进步奖人气王疯狂作品奖精英奖赞助论坛勋章乐于助人勋章

QQ
 楼主| 发表于 2005-4-25 21:53:20 | 显示全部楼层
<P>每个控件,窗体等,其实都有一个背后的程序负责处理一些标准的事件,如最大化,最小化,关闭等.</P><P>而在VB里,这这个过程被封装了,我们看不到的.</P><P>使用自己定义的过程去代替这个VB默认的过程,就称为子类处理.</P><P>比如,你可以用子类过程代替你的窗体原处理过程,把最大化按钮变成关闭,把最小化按钮变最大化,哈哈.</P>
我就是嗷嗷叫的老马了......

54

主题

345

回帖

0

精华

铂金会员

天马行空

积分
2205
发表于 2005-4-25 21:58:41 | 显示全部楼层
<P>理解拉 哈哈</P>
爱情是狗屁,不如好好去努力, 享受生活才是快乐的真谛! 本人比较菜,多多指教!

1

主题

22

回帖

0

精华

金牌会员

伊儿

积分
1074
QQ
发表于 2005-5-3 21:13:58 | 显示全部楼层
加油加油,支持in

275

主题

3017

回帖

1

精华

管理员

嗷嗷叫的老马

积分
17064

论坛牛人贡献奖关注奖最佳版主进步奖人气王疯狂作品奖精英奖赞助论坛勋章乐于助人勋章

QQ
 楼主| 发表于 2005-5-5 23:49:00 | 显示全部楼层
...........大家多多学习类与子类哦~~~
我就是嗷嗷叫的老马了......

54

主题

345

回帖

0

精华

铂金会员

天马行空

积分
2205
发表于 2005-5-6 02:15:28 | 显示全部楼层
呵呵 学习中 ................
爱情是狗屁,不如好好去努力, 享受生活才是快乐的真谛! 本人比较菜,多多指教!

275

主题

3017

回帖

1

精华

管理员

嗷嗷叫的老马

积分
17064

论坛牛人贡献奖关注奖最佳版主进步奖人气王疯狂作品奖精英奖赞助论坛勋章乐于助人勋章

QQ
 楼主| 发表于 2005-5-10 23:49:28 | 显示全部楼层
好啊,先做做这个"EXE捆绑机"吧,呵呵.
我就是嗷嗷叫的老马了......

54

主题

345

回帖

0

精华

铂金会员

天马行空

积分
2205
发表于 2005-5-13 01:32:40 | 显示全部楼层
<P>看了马哥关于这个和滚轮的例子,有点明白了!</P><P>其实呢,字类的处理就是通过对windows的消息进行一些处理,而实现我们想达到的效果!! </P><P>其实任何的程序都是这样,系统有n多消息,只要把我们想要的进行个性处理,就会得到想要的效果拉!!</P><P>所以理解了系统的消息机制才是关键··</P><P>呵呵  不知道自己理解的对不对 ,大家再帮俺这个小菜菜解释解释哈!!!</P>
爱情是狗屁,不如好好去努力, 享受生活才是快乐的真谛! 本人比较菜,多多指教!

275

主题

3017

回帖

1

精华

管理员

嗷嗷叫的老马

积分
17064

论坛牛人贡献奖关注奖最佳版主进步奖人气王疯狂作品奖精英奖赞助论坛勋章乐于助人勋章

QQ
 楼主| 发表于 2005-5-23 17:40:11 | 显示全部楼层
<P>差不多是这样.</P><P>因为VB对我们的封装太严了,所以搞得VB程序员很多都不知道还有WndProc这个过程.</P><P>其实在窗体,按钮,以及任何的控件里,都有这样一个过程,负责处理控件的各种消息,比如,窗体的最大化,最小化,创建与关闭等.</P><P>而子类方式,就是用我们自己的过程来处理这些消息中的一部分.</P>
我就是嗷嗷叫的老马了......

60

主题

358

回帖

0

精华

铂金会员

哈家军团

积分
2248
发表于 2005-6-10 20:16:57 | 显示全部楼层
<P>猫````看不懂~!</P><P>[em04][em04]</P>
我是哈哥哥的妹妹哈~! 不准欺负我哈~! 童年時,希望自己快點長大 现現在長大了 覺得世界雖然繁華美麗 對我而言 卻是朦朧不真實 時常有這樣的感覺 童年真的很好 可以在开满山花的季节玩耍 唉~!人还是不要这么快长大的好~!! 所以我是哈哥哥永远的妹妹~!

54

主题

345

回帖

0

精华

铂金会员

天马行空

积分
2205
发表于 2005-6-13 02:53:33 | 显示全部楼层
<P>我想到了钩子 !!</P>
爱情是狗屁,不如好好去努力, 享受生活才是快乐的真谛! 本人比较菜,多多指教!

275

主题

3017

回帖

1

精华

管理员

嗷嗷叫的老马

积分
17064

论坛牛人贡献奖关注奖最佳版主进步奖人气王疯狂作品奖精英奖赞助论坛勋章乐于助人勋章

QQ
 楼主| 发表于 2005-8-19 16:50:51 | 显示全部楼层
<P>那个功能就需要HOOKAPI了,VB很难做到,效果也不尽人意.</P><P>一般这种程序是用C一类语言写的</P>
我就是嗷嗷叫的老马了......

24

主题

37

回帖

3

精华

钻石会员

积分
4243
发表于 2005-11-4 17:00:54 | 显示全部楼层
马兄:您好!看了您的大作后,有两个疑问:
1、您的这个精品,是否是用来实现屏蔽、不屏蔽"取得文本(WM_GETTEXT)"这个消息的?即:当处于“子类处理状态”时,在 Text1 中输入的字符,不可以在 Text2 中将 Text1 中输入字符显示出来?而处于“正常状态”时,在 Text1 中输入字符时,在 Text2 中将 Text1 中输入字符显示出来?
如果是这样的话,为什么当处于“正常状态”或“子类处理状态”时,在 Text1 中输入的字符,在 Text2 中将 Text1 中输入字符显示出来?我的环境是win-xp + office 2003

2、WM_GETTEXT 这个消息,是在什么时候发出来的?我在您的代码中,加了一句代码 MsgBox "已截获到 WM_GETTEXT 消息,准备屏蔽这个消息!" ,无论是处于“正常状态”或“子类处理状态”时,在 Text1 中输入的字符,均不见出来这个消息对话框的?换然之,在运行您的精品过程,无论是处于“正常状态”或“子类处理状态”时,根本没有 WM_GETTEXT 这个消息 ,从而也从对这个消息进行屏蔽了。

Public Function SubWndProc(ByVal Hwnd As Long, ByVal MSG As Long, ByVal wParam As Long, ByVal lParam As Long) As Long
    Select Case MSG    '在这里进行过滤.如果知道其他的消息,也可以在这里过滤.
    Case WM_GETTEXT    '因为"取得文本"都是发的这个消息,所以嘛.....
        MsgBox "已截获到 WM_GETTEXT 消息,准备屏蔽这个消息!"
        Exit Function    '一旦发现从程序外部发来的这个消息,就什么也不做,直接返回!!
    End Select
    '    MsgBox "没有截获到 WM_GETTEXT 消息!"
    SubWndProc = CallWindowProc(PrevWndProc, Hwnd, MSG, wParam, lParam)    '其它消息不管
End Function

以上两点疑惑,请马兄在百忙中抽空详细解答,谢谢!
BfjXWAQ2.rar (6.42 KB, 下载次数: 10344)
[此贴子已经被作者于2005-11-4 17:10:37编辑过]
Yi3ek2cH.gif

275

主题

3017

回帖

1

精华

管理员

嗷嗷叫的老马

积分
17064

论坛牛人贡献奖关注奖最佳版主进步奖人气王疯狂作品奖精英奖赞助论坛勋章乐于助人勋章

QQ
 楼主| 发表于 2005-11-4 18:20:22 | 显示全部楼层
"精品"不敢当.......

其实WM_GETTEXT消息一般并不需要在本程序内使用,从字面上就可以看出,它的功能是"取得文本".

而自己的程序里可以直接用属性嘛~~~

此消息一般是用于得到非本身程序内控件的文本,比如别人密码框里的密码....

由于它有这样的功能,所以我就在指定文本框的默认消息处理过程(WndProc)之前,插入一段我自己的消息处理程序,用于处理这个WM_GETTEXT消息,并把它过滤掉.

这样,无论是谁发了这个消息给文本框,我的过程都在它到达默认消息处理过程前把这个消息吃了.....那么此消息就无法达到它的目的了.(默认的处理程序里,应该是一收到这个消息,就把文本内容返回到发消息者那里去.-------不过我也是猜的)

因此,当插入了我的消息处理过程后,看星星一类软件就无效了.

不知道你注意包里的另一个用ASM写成的星号查看器没?当文本框在普通状态时,用它就可以看到星号的内容,而在子类处理状态时,就无效了------------当然,你也可以试一下其它的星号查看器

如果你还不是很理解,建议你去了解一下WINDOWS系统里的消息机制,还有就是一个控件工作的过程.
我就是嗷嗷叫的老马了......

24

主题

37

回帖

3

精华

钻石会员

积分
4243
发表于 2005-11-5 12:29:28 | 显示全部楼层
谢谢马兄的详细地解答!“WM_GETTEXT消息一般并不需要在本程序内使用,从字面上就可以看出,它的功能是"取得文本"。此消息一般是用于得到非本身程序内控件的文本,比如别人密码框里的密码”,经您这么一说,我就明白了。
我对这项技术很感兴趣!我如何才能找到详尽的WINDOWS系统里的消息机制有关资料呢?
另外,请马兄能将“用子类过程代替你的窗体原处理过程,把最大化按钮变成关闭,把最小化按钮变最大化”作个示例,以便我们这些菜鸟加深对这方面的理解,谢谢!
[此贴子已经被作者于2005-11-5 12:33:49编辑过]

275

主题

3017

回帖

1

精华

管理员

嗷嗷叫的老马

积分
17064

论坛牛人贡献奖关注奖最佳版主进步奖人气王疯狂作品奖精英奖赞助论坛勋章乐于助人勋章

QQ
 楼主| 发表于 2006-1-18 05:09:04 | 显示全部楼层
如果只是想下载代码,请直接使用游客账号就行了~~~~
我就是嗷嗷叫的老马了......

275

主题

3017

回帖

1

精华

管理员

嗷嗷叫的老马

积分
17064

论坛牛人贡献奖关注奖最佳版主进步奖人气王疯狂作品奖精英奖赞助论坛勋章乐于助人勋章

QQ
 楼主| 发表于 2006-2-22 12:19:35 | 显示全部楼层
VC我不太懂,不过如果无法使用子类,在VB的里原因大约就是没有句柄,也就是说,它是一个轻量控件.

而VC中Static控件是否也是这样呢?你看看它有没有句柄吧.
我就是嗷嗷叫的老马了......

275

主题

3017

回帖

1

精华

管理员

嗷嗷叫的老马

积分
17064

论坛牛人贡献奖关注奖最佳版主进步奖人气王疯狂作品奖精英奖赞助论坛勋章乐于助人勋章

QQ
 楼主| 发表于 2006-2-22 19:58:19 | 显示全部楼层
这个我帮不了你了...我也不会那个编辑器
我就是嗷嗷叫的老马了......

275

主题

3017

回帖

1

精华

管理员

嗷嗷叫的老马

积分
17064

论坛牛人贡献奖关注奖最佳版主进步奖人气王疯狂作品奖精英奖赞助论坛勋章乐于助人勋章

QQ
 楼主| 发表于 2006-3-8 15:12:49 | 显示全部楼层
我想,你用这个方法来拦截关闭消息可能不行的吧?

我也没有试过,不太好说

不过我建议你去看看WINDOWS消息机制相关的资料,应该可以找到针对"关闭消息"的应对办法吧.
我就是嗷嗷叫的老马了......

头像被屏蔽

21

主题

33

回帖

2

精华

钻石会员

积分
3299
发表于 2006-12-19 23:00:46 | 显示全部楼层
提示: 作者被禁止或删除 内容自动屏蔽

275

主题

3017

回帖

1

精华

管理员

嗷嗷叫的老马

积分
17064

论坛牛人贡献奖关注奖最佳版主进步奖人气王疯狂作品奖精英奖赞助论坛勋章乐于助人勋章

QQ
 楼主| 发表于 2006-12-29 21:25:38 | 显示全部楼层
跨进程子类化是很麻烦.......我也在想办法中
我就是嗷嗷叫的老马了......

您需要登录后才可以回帖 登录 | 加入我们

本版积分规则

快速回复 返回顶部 返回列表