注入进程实现星号查看

2008-7-21 Nie.Meining Coding

前段时间做了个查看星号密码框的工具。本以为挺简单的向星号密码文本框控件发送一个WM_GETTEXT消息就行了。这也是网上关于星号查看最流行的一种说法。然而根据我的测试这种方法是错误的!根本得不到任何内容,我猜测如果获得WM_GETTEXT消息的是一个星号密码框,Windows便会检测该消息的来源,若来自其它进程只则返回一个空字符串。
在Win98的时代这个方法也许会有效吧……
另外网上还有一种比较流行的说法是先向目标文本框发送EM_SETPASSWORDCHAR消息,以0作为wParam,去掉其密码遮盖符,再发送WM_GETTEXT消息取得文本框的内容,最后再次发送EM_SETPASSWORDCHAR消息恢复目标文本框的密码遮盖符。我测试该方法时不知为什么成功率非常非常低,大家可以去试试。
虽然向别的进程发送WM_GETTEXT消息不成功,但是通过WM_GETTEXT消息是肯定可以获得自己进程的文本框的内容的,于是我产生了一个想法:我们可以先注入文本框所属的进程,再通过该进程本身向文本框发送WM_GETTEXT消息,取得文本框内容后再将此内容发回给我们的程序!

阅读全文>>

评论(0) 浏览(2643)

字符串处理心得

2008-7-14 Nie.Meining Coding

貌似不少人刚开始做windows程序时都会纠结在字符串处理上,所以我把关于字符串处理的个人心得总结一下。

首先,char是ascii编码,wchar_t是unicode,这是大家都知道的,但是这也是纠结所在。所以个人经验,在做windows程序时,最好是忘记这两种变量的存在,而记住windows里只有一种字符变量,那就是TCHAR。(虽然TCHAR只不过是对char或tchar的宏定义而已)
也就是说,程序里既不要出现char也不要出现wchar,只能出现TCHAR,这样就把纠结统一起来了。这也是程序通用性的要求。

接下来,还必须注意以下几点:
1、既然程序里不能出现char,那表示字符串时,就不能再习惯性的用char*了。应该改为TCHAR*,或者是PTSTR。后一种是windows的变量,类似的有:PSTR、PTSTR、LPTSTR、LPSTR、PCTSTR等等等等。这也是让人一开始接触会头大的地方。

阅读全文>>

评论(0) 浏览(13911)

Powered by emlog