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相 ...
随机推荐
- [HNOI 2010]Bounce 弹飞绵羊
Description 某天,Lostmonkey发明了一种超级弹力装置,为了在他的绵羊朋友面前显摆,他邀请小绵羊一起玩个游戏.游戏一开始,Lostmonkey在地上沿着一条直线摆上n个装置,每个装置 ...
- [LOJ 6249]「CodePlus 2017 11 月赛」汀博尔
Description 有 n 棵树,初始时每棵树的高度为 H_i,第 i 棵树每月都会长高 A_i.现在有个木料长度总量为 S 的订单,客户要求每块木料的长度不能小于 L,而且木料必须是整棵树(即不 ...
- [POI 2004]ZAW
Description 在 Byte 山的山脚下有一个洞穴入口. 这个洞穴由复杂的洞室经过隧道连接构成. 洞穴的入口是 1 号点.两个洞室要么就通过隧道连接起来,要么就经过若干隧道间接的相连. 现在决 ...
- [HAOI2007]覆盖问题
题目描述 某人在山上种了N棵小树苗.冬天来了,温度急速下降,小树苗脆弱得不堪一击,于是树主人想用一些塑料薄膜把这些小树遮盖起来,经过一番长久的思考,他决定 用3个L*L的正方形塑料薄膜将小树遮起来.我 ...
- ●洛谷P2664 树上游戏
题链: https://www.luogu.org/problemnew/show/P2664题解: 扫描线,线段树维护区间覆盖 https://www.luogu.org/blog/ZJ75211/ ...
- win7+Apache 设置域名指向本地文件夹
实现:浏览器地址栏输入 www.bnzoo.com 访问 D:/www 系统:win7旗舰版+Apache 步骤: 1.打开文件 C:\Windows\System32\drivers\etc\hos ...
- 认识Json解析json生成json
.markdown-body hr::after,.markdown-body::after { clear: both } .loopLine,.messageLine0 { } .markdown ...
- 数据结构 单链表&顺序表
顺序表: 一般使用数组(C语言中的数组采用顺序存储方式.即连续地址存储)来描述. 优点:在于随机访问元素, 缺点:插入和和删除的时候,需要移动大量的元素. 链表: 优点:插入或删除元素时很方便,使用灵 ...
- DDD实战进阶第一波(七):开发一般业务的大健康行业直销系统(实现产品上下文接口与测试)
前一篇文章我们介绍了如何将创建产品的领域逻辑与产品的持久化仓储通过上架产品的用例组织起来,完成了一个功能.在实际的项目中,多种前端的形态比如PC Web. 微信小程序.原生APP等要调用后端的功能,通 ...
- Python笔记(一)——打印输出
一.输出语句input 输出语句print 例:用户输入 username = input("username:") #变量名 显示的字符 password = input( ...