qq安全原理
故事总要有缘由,那么这个故事的缘由就是,当我以前写了一个获取其它进程密码框密码的时候(前几篇博客中有描述),我抱着试一试的心情去试探了一下能不能得到 QQ 的密码,当我抓到密码框的句柄,然后输入给程序的时候,结果令人失望,并没有任何结果,或许这根本就是一个假的密码框。这便激发了我的兴趣,便有了这次探究。
QQ 的安全密码框果然是下了功夫的。网上搜索相关内容,才发现,以前腾讯用了韩国的技术来保证密码的安全性,但由于涉及到驱动,造成了一部分的不稳定性,所以最后取消掉了这种方法,那么最新的方法是如何做到密码安全呢?这种密码安全是否还有提升的空间呢?我决定试一试。
首先想到的办法便是键盘钩子,大家都知道,键盘钩子可以监听系统中所有的击键信息,马上编码实现,主要调用为:
- HHOOK SetWindowsHookEx( int idHook,
- HOOKPROC lpfn,
- HINSTANCE hMod,
- DWORD dwThreadId
- );
传入的参数是:WH_KEYBOARD
打开程序监听,目标程序选择了大家不太关注的QQMusic(手头上暂时只有这个程序),打开密码框输入我的密码,结果没有任何有用信息,为什么呢?我们知道如果在钩子链中前面的钩子没有显示调用后面的钩子,后面是得不到信息的,我们能不能把自己的钩子放到最前面呢。有两点需要注意,一,后安装的钩子会在钩子链的最前面,二,我们安装的是普通钩子,还有一种低级的键盘钩子会在其前面执行。那我们直接安装低级钩子并且尽量迟的调用不就行了么。
程序完成后,我发现,确实可以收到键盘信息了,不过在收到的信息中有许多干扰信息,基于纯理论分析这一做法,可以猜测,肯定有一个定时发送模拟按键消息的 Timer 在执行,去掉这个 Timer,当然就没有了干扰信息。但事情进行的不是那么简单,我发现,每次我接收到的键盘消息并不是我真正按下去的按键,莫非它安装了一个在我前面的钩子,改掉了按键信息?于是我便写了一个程序,去分析当前系统中的钩子的信息,结果如下:
- 0x64b012d 0xc2cbf81 QQMusic.exe
- 0x64b012d 0xc2cbf81 QQMusic.exe
- 0x64c012d 0xc2cbf81 QQMusic.exe
- 0x64c012d 0xc2cbf81 QQMusic.exe
- 0x64c012d 0xc2cbf81 QQMusic.exe
- 0x64d012d 0xc2cbf81 QQMusic.exe
- 0x64d012d 0xc2cbf81 QQMusic.exe
- 0x64d012d 0xc2cbf81 QQMusic.exe
- 0x64e012d 0xc2cbf81 QQMusic.exe
- 0x64e012d 0xc2cbf81 QQMusic.exe
- 0x64e012d 0xc2cbf81 QQMusic.exe
- 0x64f012d 0xc2cbf81 QQMusic.exe
- 0x64f012d 0xc2cbf81 QQMusic.exe
- 0x64f012d 0xc2cbf81 QQMusic.exe
- 0x650012d 0xc2cbf81 QQMusic.exe
- 0x650012d 0xc2cbf81 QQMusic.exe
- 0x650012d 0xc2cbf81 QQMusic.exe
- 0x651012d 0xc2cbf81 QQMusic.exe
- 0x651012d 0xc2cbf81 QQMusic.exe
- 0x652012d 0xc2cbf81 QQMusic.exe
- 0x652012d 0xc2cbf81 QQMusic.exe
- 0x652012d 0xc2cbf81 QQMusic.exe
- 0x652012d 0xc2cbf81 QQMusic.exe
- 0x652012d 0xc2cbf81 QQMusic.exe
- 0x652012d 0xc2cbf81 QQMusic.exe
第一列便是钩子的句柄值,我是每隔一秒钟扫描一次的,可以清楚的发现,值在不断的变化,那么很容易便可以猜想到,它肯定在不断去设置新的钩子来达到使其在钩子最前端这一效果。那么去掉这个钩子,我们便能够使自己的钩子监听到键盘信息了。
本文只给出了思路,可以看出,在密码安全这一方面,还是做了不少工夫的,现在密码的安全也越来越受到各个公司的重视,希望能够以此文互相交流,使我们的密码安全做到更好。
qq安全原理的更多相关文章
- 使用Javascript无限添加QQ好友原理解析
做QQ营销的朋友都知道,QQ加好友是有诸多限制的,IP限制,次数限制,二维码限制,人数限制,使用软件自动加好友会遇到各种各样的问题,很多软件通过模拟人工添加QQ号码,在添加几个之后就会遇到腾讯规则限制 ...
- QQ聊天原理初识
1:qq之间文件的传输是通过p2p通信进行的. 2:qq之间的表情发送实际上就是文字的发送,是client再接受到文字之后在本地自己进行转换 3:qq之间的通信既能够通过udp也能够通过Tcp 尽管u ...
- 不要再被骗了------QQ盗号原理大揭秘
前言 相信大家在懵懂无知的时候都有被盗号的经历吧,QQ胡乱的加好友,突然有个好友传了个文件给你,打开以后发现QQ竟然显示强制下线,然后再也上不去了QAQ,很明显,QQ号被人盗了.最近也是很多小伙伴私信 ...
- Q-Q图原理详解及Python实现
[导读]在之前的<数据挖掘概念与技术 第2章>的文章中我们介绍了Q-Q图的概念,并且通过调用现成的python函数, 画出了Q-Q图, 验证了Q-Q图的两个主要作用,1. 检验一列数据是否 ...
- QQ通信原理及QQ是怎么穿透内网进行通信的? (转)
原:http://f543711700.iteye.com/blog/978044#bc2344608 QQ是一个基于TCP/UDP协议的通讯软件 发送消息的时候是UDP打洞,登陆的时候使用HTTP~ ...
- [转载]QQ通讯原理及QQ是怎么穿透内网的
QQ是一个基于TCP/UDP协议的通讯软件 发送消息的时候是UDP打洞,登陆的时候使用HTTP~因为登陆服务器其实就是一个HTTP服务器,只不过不是常用的那些,那个服务器是腾讯自行开发的!!! 一.登 ...
- QQ通信原理及QQ是怎么穿透内网进行通信的?
http://blog.csdn.net/frank_good/article/details/51160027 ******************************************* ...
- QQ网页链接打开本地QQ.exe原理
一.观察现象 QQ推广上有相关文档 http://shang.qq.com/v3/widget.html 新建一个html,点击链接就会启动本地QQ. <html> <body> ...
- QQ通信原理
转载自http://blog.csdn.net/li_xiao_ming/article/details/8106857 下面有4个基本的问答: 问题一:为什么只要可以连上互联网的计算机都可以用QQ相 ...
随机推荐
- Mysql之使用Mysql运算符
Mysql运算符: 1.算术运算符 加减乘除与求模 SELECT 6+4 加法操作, 6-4 减法操作, 6*4 乘法操作, 6/2 除法操作, 6 DIV 2 除 ...
- [SHOI 2011]双倍回文
Description 题库链接 记一个字符串为 \(X\) ,它的倒置为 \(X^R\) .现在给你一个长度为 \(n\) 的字符串 \(S\) ,询问其最长的形同 \(XX^RXX^R\) 的子串 ...
- Passward
问题 A: Passward 时间限制: 1 Sec 内存限制: 512 MB 题目描述 你来到了一个庙前,庙牌上有一个仅包含小写字母的字符串 s. 传说打开庙门的密码是这个字符串的一个子串 t,并 ...
- bzoj 3924: [Zjoi2015]幻想乡战略游戏
Description 傲娇少女幽香正在玩一个非常有趣的战略类游戏,本来这个游戏的地图其实还不算太大,幽香还能管得过来,但是不知道为什么现在的网游厂商把游戏的地图越做越大,以至于幽香一眼根本看不过来, ...
- ●BZOJ 3561 DZY Loves Math VI
题链: http://www.lydsy.com/JudgeOnline/problem.php?id=3561 题解: 莫比乌斯反演 $$\begin{aligned}ANS&=\sum_{ ...
- hzoj 2301(莫比乌斯反演)
题意 对于给出的n个询问,每次求有多少个数对(x,y),满足a≤x≤b,c≤y≤d,且gcd(x,y) = k,gcd(x,y)函数为x和y的最大公 数. 思路: 与先前的那个相比,这次a,c并不一定 ...
- JVM学习记录-对象已死吗
前言 先来回顾一下,在jvm运行时数据区,分为两部分,一个部分是线程共享区,主要包括堆和方法区,另一部是线程私有区分包括本地方法栈,虚拟机栈和程序计数器.在线程私有部分的三个区域是随着线程生和灭的.栈 ...
- 勤拂拭软件 java web 开发教程(1) - 开发环境搭建
勤拂拭软件系列教程 之 Java Web开发之旅(1) Java Web开发环境搭建 1 前言 工作过程中,遇到不少朋友想要学习jsp开发,然而第一步都迈不出,连一个基本的环境都没有,试问,如何能够继 ...
- 使用jquery.qrcode.js生成二维码
通常生成二维码的方式有两种:第一种是java代码的形式,第二种是通过Js方式. 在这里我做个记录,用js生成二维码,可以在官网下载源码:http://jeromeetienne.github.io/j ...
- [ Java学习基础 ] Java的继承与多态
看到自己写的东西(4.22的随笔[ Java学习基础 ] Java构造函数)第一次达到阅读100+的成就还是挺欣慰的,感谢大家的支持!希望以后能继续和大家共同学习,共同努力,一起进步!共勉! ---- ...