小谈截取密码技术中的误区(已更新)

来源:百度文库 编辑:神马文学网 时间:2024/03/29 04:35:18
文章作者:xyzreg[E.S.T]
文章来源:邪恶八进制信息安全团队(www.eviloctal.com)
关于利用窗体消息或者GetWindowText 函数取得密码框密码的问题,有些朋友可能走入了误区,最近有些朋友问了,所以这里就把心得说说,但估计大家都知道的,献丑了,呵呵.
问题描述:有许多朋友从网络及杂志上得知,在NT核心的平台下,用GetWindowText 取不到其他进程窗口中具有密码属性的文本框的内容.所以为了获得其密码一般都使用如下的两种方法:
1.发送EW_SETPASSWORDCHAR消息,取消密码框属性,然后再调用GetWindowText 函数取密码,最后再恢复密码框属性
2.代码注入目标进程后调用GetWindowText 函数.
其实没必要这样大费周折,而且第一种方法隐蔽性不够好,不太适合某些要求严格的截取木马类的软件.
大家只要用SendMessage函数向目标进程窗口发送WM_GETTEXT消息就可取得密码框的内容了.NT核心的平台只对GetWindowText 函数采取了相应的安全策略,而形如SendMessage(hPassword,WM_GETTEXT,PASS_LEN,(LPARAM)szPass)的方法则仍然有效 :-)
=======================================
9月13日 更新 :
PS:
刚才仔细研究了一下,发现是这样的:
对于VC++中 Windows 标准控件集中的 Edit类的密码框用直接SendMessage的方法是不行的,
而对于BCB/Delphi中的TEdit类的密码框用直接SendMessage的方法就是可行的!