首页
新闻
小组
威客
人才
下载
博客
代码贴
在线编程
论坛
注册
|
登录
QQ 防盗
作者在 2008-09-28 10:31:33 发布以下内容
QQ对 QQ聊天登录框中的 密码框做了特殊处理(Nprotect键盘加密技术),这能保证使用HOOK方法也是读取不到密码的,而且即使使用键盘hOOK也不能得到在密码框上的输入,而不是如之前网上看到说返回的是键值的加密码 。但QQ游戏登录时却没有这样的保护。
交际
| 阅读 4181 次
收藏
文章评论,共1条
vfdff
(作者)
2008-09-28 10:59
1
[转]如何破解QQ键盘加密技术?<br />
<br />
今天升级QQ,发现登陆界面的软键盘没有了,取而代之的是一个带金锁图标的密码框。试了两个键盘记录工具,原理分别是GetAsyncKeyState和键盘类过滤驱动,发现无效,恩,有点意思,正好用来打发时间。 <br />
先看腾讯是怎么吹的:“QQ2005 Beta3采用了国际先进的nProtect键盘加密保护技术,能最大限度地防止用户的密码输入不被病毒、键盘记录程序所窃取,大大提高了QQ用户的帐号安全性。” <br />
nProtect 是什么?从来没听过。还是老老实实看代码吧。既然能对付驱动级的嗅探,显然也用了驱动。对比QQ启动前后的驱动列表,很容易就定位到 npkcrypt.sys。光凭这一点就让我不看好这个功能,这么容易就找到研究目标,设计者的反破解意识实在不怎么样。把驱动改名,重启系统,然后保护功能就失效了!当然,事情可没这么简单,因为这时那把金锁上多了个“禁用”图标,提醒用户保护功能已失效。 <br />
明的不行就来暗的——代码级破解。首先看导入函数,用到了IoAttachDeviceToDeviceStack,似乎走的还是设备栈的老路。于是祭出WinDbg查看 KeyboardClass0/1的设备栈,居然没有异常,那八成就是挂键盘中断了,导入的函数HalGetInterruptVector就是用来干这个的。列出所有中断向量(WinDbg没有类似SoftICE的idt命令,不爽的很),一眼就发现n个80开头的地址中有个f7开头的,哈,就是它。 <br />
再次重启系统,先列出原先的IDT,启动QQ后还原被修改的条目,然后尝试键盘记录,无效。再看IDT,靠,又被改回去了!在这个中断向量的地址上设内存读写断点,只断到了读操作,却没有写操作。但明明就被改回去了啊。郁闷了一分钟之后,我开始看驱动的反汇编代码。从被断到的读操作开始跟踪,我发现读到的值被保存在全局变量里,而所有对这个变量的操作中,几乎都是赋值,只有一个cmp指令,比较保存的值和读取的值,如果不同就关中断,然后修改成 QQ自己的中断服务地址(难怪断不到,关中断了嘛)。 <br />
到这里问题就算解决了,把紧随cmp之后的jz改为jnz,中断向量再也不会被改回去啦,键盘记录(不管是哪种)当然也有效了,金锁还是老样子。所谓的“国际先进技术”原来只是从DOS时代就被大玩特玩的中断挂钩,钩住键盘中断后直接把 ScanCode传给应用程序。如果QQ能绕过Windows的中断映射机制,控制PIC或APIC重新映射键盘中断,那还有点看头。(一个聊天工具而已,至于吗?)当然至于,因为她也许是世界上使用人数最多的聊天工具啊。 <br />
详细的破解过程就不说了(我只是打发时间,不是存心和腾讯过不去哦),只说说一字节补丁的位置:npkcrypt.sys驱动模块(文件版本2005.6.22.1,大小20,386字节)加载基址偏移0x14b3,从0x74(jz)改为0x75(jnz),当然键盘中断向量也要还原。还有一种改法更简单,直接在QQ的键盘中断服务入口添加跳转指令,跳回到原服务地址。注意,这些都只是内存补丁,文件补丁比较麻烦,QQ似乎会在加载驱动前先对文件做校验。这就不是我所感兴趣的了,闪人。
赞
回复
游客请输入验证码
vfdff的博客
vfdff
浏览1970344次
文章分类
默认分类(6)
技术(102)
基础知识(71)
实例(7)
编码(9)
生活(4)
数据结构(7)
未验证(9)
交际(5)
晋级(1)
图像(6)
软件(16)
资料(9)
DOS 命令(1)
经验(23)
算法(12)
感情(1)
汇编(6)
MFC(3)
求职(2)
专业术语(4)
linux(10)
协议(7)
脚本语言(2)
matlab(1)
文章归档
2022年06月(1)
2013年06月(1)
2013年01月(2)
2012年08月(4)
2012年07月(1)
2011年12月(2)
2011年08月(2)
2011年04月(2)
2011年01月(2)
2010年11月(1)
2010年10月(1)
2010年09月(5)
2010年08月(14)
2010年07月(18)
2010年06月(10)
2010年05月(3)
2010年01月(3)
2009年10月(8)
2009年09月(11)
2009年08月(7)
2009年07月(8)
2009年06月(7)
2009年05月(4)
2009年04月(1)
2009年03月(9)
2009年02月(6)
2009年01月(4)
2008年12月(11)
2008年11月(20)
2008年10月(37)
2008年09月(26)
2008年08月(17)
2008年07月(4)
2008年06月(21)
2008年05月(18)
2008年04月(31)
2007年08月(1)
2007年07月(1)
展开
收起
最新评论
言察它季
:将mpc, mpfr, gmp 等放到gcc目录下后,可以一键式构建配置 Configure...
vfdff
:~/.i18n文件: LANG=zh_CN.GB18030 LANGUAGE=en_U...
qq372505855
:很好的一篇文,希望能写个全局注入
vfdff
:http://ftp.gnu.org/gnu/gcc/gcc-4.7.2/
vfdff
:Angelo Graziosi schrieb: I want to flag that ...
vfdff
:D:\Program_Files\cygwin\bin\ash.exe 并输入:/bin/r...