这篇文章也算是朝花夕拾。事实上非常早曾经就知道的原理,如今拿出来和大家交流分享一下。

故事总要有缘由。那么这个故事的缘由就是,当我曾经写了一个获取其他进程password框password的时候(前几篇博客中有描写叙述)。我抱着试一试的心情去试探了一下能不能得到 QQ 的password。当我抓到password框的句柄。然后输入给程序的时候,结果令人失望。并没有不论什么结果,也许这根本就是一个假的password框。

这便激发了我的兴趣,便有了这次探究。

QQ 的安全password框果然是下了功夫的。网上搜索相关内容,才发现。曾经腾讯用了韩国的技术来保证password的安全性,但因为涉及到驱动,造成了一部分的不稳定性,所以最后取消掉了这样的方法,那么最新的方法是怎样做到password安全呢?这样的password安全是否还有提升的空间呢?我决定试一试。

首先想到的办法便是键盘钩子,大家都知道,键盘钩子能够监听系统中全部的击键信息,立即编码实现,主要调用为:

HHOOK SetWindowsHookEx(          int idHook,
HOOKPROC lpfn,
HINSTANCE hMod,
DWORD dwThreadId
);

传入的參数是:WH_KEYBOARD

打开程序监听,目标程序选择了大家不太关注的QQMusic(手头上临时仅仅有这个程序),打开password框输入我的password,结果没有不论什么实用信息,为什么呢?我们知道假设在钩子链中前面的钩子没有显示调用后面的钩子,后面是得不到信息的,我们能不能把自己的钩子放到最前面呢。有两点须要注意。一。后安装的钩子会在钩子链的最前面。二。我们安装的是普通钩子,另一种低级的键盘钩子会在其前面运行。那我们直接安装低级钩子而且尽量迟的调用不即可了么。

程序完毕后。我发现,确实能够收到键盘信息了。只是在收到的信息中有很多干扰信息。基于纯理论分析这一做法,能够推測。肯定有一个定时发送模拟按键消息的 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

第一列便是钩子的句柄值。我是每隔一秒钟扫描一次的。能够清楚的发现,值在不断的变化。那么非常easy便能够猜想到,它肯定在不断去设置新的钩子来达到使其在钩子最前端这一效果。

那么去掉这个钩子,我们便能够使自己的钩子监听到键盘信息了。

本文仅仅给出了思路,可以看出,在password安全这一方面。还是做了不少工夫的。如今password的安全也越来越受到各个公司的重视,希望可以以此文互相交流。使我们的password安全做到更好。

揭秘QQ 安全password框的原理的更多相关文章

  1. QQ视频直播架构及原理 流畅与低延迟之间做平衡 音画如何做同步?

    QQ视频直播架构及原理 - tianyu的专栏 - CSDN博客 https://blog.csdn.net/wishfly/article/details/53035342 作者:王宇(腾讯音视频高 ...

  2. qq网吧弹框如何去掉?如何删掉NetBar文件夹?

    qq网吧弹框如何去掉?如何删掉NetBar文件夹?有些qq会弹出qq网吧,让人烦恼.而且点了那个不是网吧的反馈了多次都还会弹出.如何退出关闭删除取消去掉qq网吧呢,下面介绍一种解决方法:1.打开qq安 ...

  3. wpf实现仿qq消息提示框

    原文:wpf实现仿qq消息提示框 版权声明:本文为博主原创文章,未经博主允许不得转载. https://blog.csdn.net/huangli321456/article/details/5052 ...

  4. 制作qq简易聊天框

    <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title> ...

  5. 实现password框中显示文字提示的方式

    其实实际上实现中并不能让password中显示文字提示,但是我们在工作中有这样的需求,当没输入东西的时候,框内有提示输入密码,但是当输入东西的时候又显示的是*号,那么是如何实现的呢?其实原理很简单,就 ...

  6. 技术揭秘“QQ空间”自动转发不良信息

    大家经常会看到QQ空间自动转发一些附带链接的不良信息,即便我们的QQ密码并没有被盗取.最近通过对一个QQ空间自动转发链接进行分析,发现该自动转发机制通过利用腾讯网站存在漏洞的页面,精心构造出利用代码获 ...

  7. QQ去除聊天框广告详解——2016.9 版

    QQ聊天框广告很烦人,百度出来的一些方法早已过时,下面是博主整理出来的方法,供各位同学参考. 1.按键盘上的 Win+R 快捷键打开运行框,然后复制并粘贴 Application Data\Tence ...

  8. 揭秘井井有条的流水线(ZooKeeper 原理篇)

    本文作者:HelloGitHub-老荀 Hi,这里是 HelloGitHub 推出的 HelloZooKeeper 系列,免费开源.有趣.入门级的 ZooKeeper 教程,面向有编程基础的新手. Z ...

  9. js模态框实现原理

    <!DOCTYPE> <html> <head> <style>/* 定义模态对话框外面的覆盖层样式 */ #modal-overlay { visib ...

随机推荐

  1. cocos2d-js Shader系列2:在cc.Sprite上使用Shader(黑白、灰度、造旧效果)

    在Sprite中使用Shader做特殊的颜色处理比较简单,只需要把Shader程序绑定到Sprite上即可: sprite.shaderProgram = alphaTestShader; Cocos ...

  2. java 判断字符串中是否包含中文并过滤掉中文

      java判断字符串中是否包含中文并过滤掉中文 CreateTime--2017年9月6日08:48:59 Author:Marydon 1.判断字符串中是否包含中文方法封装 /** * 判断字符串 ...

  3. 9、java5线程池之定时任务线程池newScheduledThreadPool与newSingleThreadScheduledExecutor

    JDK文档描述 newSingleThreadScheduledExecutor() 创建一个单线程执行程序,它可安排在给定延迟后运行命令或者定期地执行.(注意,如果因为在关闭前的执行期间出现失败而终 ...

  4. [Dubbo实战]dubbo + zookeeper + spring 实战 (转)

    这里最熟悉的就是spring了,项目中应用很多.dubbo是一个实现分布式的框架,zookeeper是注册中心.给我的感觉就像多对多关系的两者表,zookeeper相当于第三张表维护关系.下面通过一个 ...

  5. Python-Flask实现基金自选网站

    代码地址如下:http://www.demodashi.com/demo/14734.html 项目介绍 本项目的基金数据来自天天基金网,但该网站用户体验较差,内容冗余,故自己实现一个轻量级网站,从8 ...

  6. soa---java 多线程的---锁

    如今soa 与分布式计算已经成为互联网公司技术的标配 那他包括的知识点应该熟悉了解.并以此为基础,去应用,调优各种soa的框架. 包括例如以下的四点.是分布式的基础.         a java 多 ...

  7. MessageListActivity has leaked IntentReceiver

    1. 在MessagelistActivity中出现has leaked IntentReceiver的异常.异常日志如下. 07-15 08:09:53.211: E/ActivityThread( ...

  8. AWVS扫描工具使用教程

    上文AppScan扫描工具-工作原理&操作教程有写到Web安全漏洞扫描工具之一的APPScan,除此,还有另外一款国内使用比较主流的Web安全漏洞扫描工具——AWVS.相较于大容量的AppSc ...

  9. shell脚本启动node服务

    #!/bin/bash cd /root/dev-web source /etc/profile /usr/local/node-8.11.1/bin/npm i && EGG_SER ...

  10. Linux-配置虚拟IP

    Linux下配置网卡ip别名何谓ip别名?用windows的话说,就是为一个网卡配置多个ip.什么场合增加ip别名能派上用场?布网需要.多ip访问测试.特定软件对多ip的需要...and so on. ...