您的位置:首页 > 移动开发 > 微信开发

Android 获取取手机中微信聊天记录

2016-04-06 11:15 651 查看
关于如何在 Android 手机上窃取微信聊天记录。

这几天事情比较多,可还是想尽快写下这篇文章。

本以为微信的聊天记录以我本人现存能力获取不到,但经过一番尝试,还是成功了。前提:手机需要已经
root


在我的直觉里,微信的聊天记录一定会是加密的,而且是用了现代密码学中的加密算法,只要官方保存好密钥那么我等平民不可能获取得到。而接下来,我想说的是我等平民如何能够获取到微信的所有聊天记录。

一般来说,Android 应用程序的数据库文件会保存在
/data/data/packagename/database
文件夹下,而微信稍稍有些不同,但也不难发现其数据库文件保存位置,位于:
/data/data/com.tencent.mm/MicroMsg
路径下,注意这里有两个像是乱码的很长名字的文件夹,这两个文件夹正是用户的个人信息保存的位置(我这里有两个,估计是之前谁用我的手机登录过微信。。。),再看这个文件夹里面有一个很显眼的数据库文件
EnMicroMsg.db
,凭猜测也可以感觉到前缀
En 应该是 Encrypt 的缩写,果然,用 SQLite Professional 打开提示该数据库文件被加密,具体如下几幅图







说实话,给 SQLite 加密,我还是第一次遇到。于是放狗搜,发现有一个软件叫做 sqlcipher.exe,在有密钥的情况下可以打开被加密的 db 文件(这个软件国内很难找,我放在了我的七牛云存储上,点此下载)。那么问题来了,密钥是什么?

不懂微信为何要这样做,密钥是当前手机的
IMEI
+ 微信UIN 的 MD5值(32位小写)前7位
。(注:此处信息不是自己发现的,是无意中在网上搜到的)分别说如何获得如上内容:

获取 IMEI 码 :

手机拨号输入
*#06#
显示出来的即是所需
IMEI

获取微信 UIN 码 :

相信大家都用过微信的网页版,我们就通过它来获取。首先登录微信版网页,再新建一个标签页
chrome://net-internals/#events
,这个是
chrome 内置的抓包工具,所有进出的数据包都能看到,所以类似于下面这样



之后在网页聊天界面随意给某个联系人发送一条消息,回到抓包标签页,按 Ctrl + F 全局搜索
uin
,这个时候就会看到下图中的
uin 码,我这里是 9 位



到此为止,我们获取了设备的 IMEI(如12345) 和 微信账号的 UIN(如67890) 码,下面来计算
32
位 MD5 消息摘要值
,使用 MD5 在线加密的网站就可以,则要加密的字符串为
IMEI+UIN
,即
1234567890
,加密后就会得到四种
MD5 值,我们需要的是32位长度小写的,如图



取该
MD5
值前 7 位
,即为密钥。接下来,打开 sqlcipher.exe ,File->Open Database, 选择 EnMicroMsg.db 文件,打开后就可以看到让我们输入密钥,输入刚才的7位密钥,点击OK,如图



如果你成功看到了下图的界面,则说明99%已经成功了。



那如何能看到真正的聊天记录内容呢,点击 Browse Data,再筛选 message ,看吧,赤裸裸的聊天记录赫然摆在眼前。。。



最后,想跟各位说的是,手机千万不要交给程序员。。。

原文地址:http://blog.csdn.net/icodeyou/article/details/49556547
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: