如下几个问题1.知道qq密码文本框的句柄,怎么才能提取出里面的内容,我用的是 StringBuilder str=new StringBuilder(255); GetWindowText(handleusername, str, 255);可是得到的数据为空,不知道各位高手用的什么方法去数据。
2.在点击登陆的时候想弄个钩子,把密码记录下来,可是回调函数,安装,卸载钩子不会用,看了很多资料还是含糊不请,哪为高手帮忙写一段,如果能在有注释那就在好不过了,谢谢了。
2.在点击登陆的时候想弄个钩子,把密码记录下来,可是回调函数,安装,卸载钩子不会用,看了很多资料还是含糊不请,哪为高手帮忙写一段,如果能在有注释那就在好不过了,谢谢了。
对于文本框屏蔽了WM_GETTEXT消息,通过线程注入的方法可能也无济于事
不过可以监视键盘的输入
想自己实现。谢谢提供。TO:使用钩子注入技术将你的DLL注入到QQ的进程中,这样 GetWindowText(handleusername, str, 255)这个代码就和QQ处于一个进程了,就好用了.
========================================
注入? 不会啊,能详讲一下吗?TO:lovevsnet(编程一把手) 谢谢,我去试试
TO:flyskylf(天高云淡) 呵呵,哥们,别多想,只是学技术,要是盗的话也不用这么麻烦,网上有很多现成的。。
to:lovevsnet(编程一把手) StringBuilder str = new StringBuilder(255);
SendMessage(handleusername,WM_GETTEXT,255,str);
还是不行,而且我看网上有人说WM_GETTEXT也不能跨线程取数据??不知道是真的吗?
C#生成的dll不是传统意义上的dll了,是一个Accembly,没办法注入到别的程序里面去的
现在QQ的文本框好象是画上去的,是一个panel或者是picturebox,肯定已经不是textbox了
因此要获取句柄取到内容不是那么简单的了
使用键盘加密保护技术.专门保护密码的..
目前还没有被攻破吧..
这个进程不是 限制启动多个qq的吗?
好了,谢谢各位了,我先去学学注入进程,然后在问了,结贴!!
win2000以上操作系统是可以进行允许跨进程以送消息获取文本框内容的.
并且QQ的用户名也能得到,只不过你的句柄可能找的不对,因此你也得不到QQ用户名,我自己写的WINSPY程序可以检测到QQ用户名,但得不到密码框
IntPtr fnd_qqwin=IntPtr.Zero,fnd_qquser=IntPtr.Zero;
fnd_qqwin=Win32.FindWindow("#32770","QQ用户登录");
if(fnd_qqwin==IntPtr.Zero)
{
MessageBox.Show("没有找到QQ主窗口");
return;
}
fnd_qquser=Win32.FindWindowEx(fnd_qqwin,IntPtr.Zero,"ComboBox",null);
if(fnd_qquser==IntPtr.Zero)
{
MessageBox.Show("没有找到QQ用户句柄");
return;
}
string rt=Win32.GetWindowText(fnd_qquser);
MessageBox.Show(rt);
----------------------------------------------------
其中Win32.GetWindowText定义如下:
public static string GetWindowText(IntPtr hWnd)
{
StringBuilder sb = new StringBuilder(1024);
//Win32.GetWindowText(hWnd, sb, sb.Capacity);
//Win32.SendMessage(hWnd,EM_SETPASSWORDCHAR,IntPtr.Zero,IntPtr.Zero);
SendMessage(hWnd,WM_GETTEXT,sb.Capacity,sb);//这句能得到密码框的值,上一句GetWindowText(IntPtr hWnd, StringBuilder lpString, int nMaxCount)不行
return sb.ToString();
}