BlackFeather'S Blog 我的技术小博 -- C/C++,Python,Golang

QQ和微信聊天内容读取解密

 

 

测试平台:安卓4.1 & 2.3

测试软件:手机QQ2012 & 手机QQ2013 & 微信4.5 to 微信5.2

测试目的:获取聊天记录

 

1.手机QQ

据说手机QQ2012之前都是明文的,这个没测试,不细说了,有兴趣的朋友自己搜索下。2012之后使用记录保存的sqliteDB内容加密,库没有设置密码,直接用sqliteadmin之类的软件打开之后可以看到一堆歪七扭八的字符。

2013的最新版本的手机QQ数据库的表名调整为:mr_friend_MD5(QQ)_New ,比原来的多了一个_New。这里先讲解一下utf8编码,utf8的中文是3字节,之前的算法根据代码可以看出来,前两字节原封不对,只对最后一个字节进行异或。新版本的不在区分中文和英文,直接对每个字节进行疑惑加密。

使用了15位的手机串号作为key,依次做异或运算。。。这个尿性,就算没有手机串号也能碰撞出来的。。。这个加密算是形式吧。。。。

注意:从字段里读取内容的时候要使用sqlite3_column_blob函数获取内容缓冲区,使用sqlite3_column_bytes获取出来缓冲区长度,因为使用sqlite3_column_text会有\0字符干扰导致数据不全;所有的中文使用utf8编码,需要转下。

 

2.微信

微信貌似4.0之前也木有加密,没有测试,4.5版本以后使用了sqlite加密数据库,数据没有加密但是数据库文件加密了。

通过反编译逆向+调试,这个数据库的密码加密方式为MD5(手机串号+微信uin).substring(0,7),md5的字符均为小写。

例如我的串号为3535xxxxx....,uin为168150735,key为"2be3aa8"。

 

有了key,用sqlite数据库查看器打开即可看到内容。mssage表里是普通微信聊天的记录,qmessage是QQ离线消息的记录,其他的木有细看,测试基本结束。

 

 

更多疑问解答:http://fenlog.com/post/82.html

此方法有一定危害性,故代码不公开了,有需要联系本人。

 

 

2013年4月25日 | 发布:blackfeather | 分类:C/C++代码 | 评论:21

留言列表:

  • 1 发布于 2017/11/28 3:02:21  回复
  • 122207899@qq.com
  • 1 发布于 2017/11/28 3:02:04  回复
  • 能把微信和qq的解密代码发给我吗?邮箱是122207899@qq.com
  • YJ 发布于 2016/12/21 16:20:08  回复
  • 能把微信和qq的解密代码发给我吗?邮箱是1031021707@qq.com
  • vincenthust 发布于 2016/4/28 21:03:23  回复
  • 可否帮忙发一下qq解密的代码,谢谢,邮箱(zhangjie247@hotmail.com)
  • HANNATECH 发布于 2015/6/2 14:18:35  回复
  • 怎么联系你? 请加我QQ:2303929193
  • xsq125 发布于 2015/4/9 15:38:15  回复
  • 问一下,我从微信网页版F12搜索uin得到的UIN是10位的数字(网上写的是9位的啊),这个是正确的UIN吗?
  • ken 发布于 2014/12/5 15:12:59  回复
  • 看得云里雾里啊,能否说一下微信uin是什么啊,在哪能看到
  • administration 发布于 2014/4/25 21:32:10  回复
  • 能否给一份QQ/微信的代码,最近在研究这个,不胜感激,fujiahua@qq.com
    • fenlog 发布于 2014/4/27 0:28:31  回复
    • 请点击页面顶部链接联系博主。
  • gowos 发布于 2013/11/1 15:02:20  回复
  • 请问可以把微信查看的代码发给我吗?我的邮箱是dev@gowos.com,不甚感激!!!
    • blackfeather 发布于 2013/11/1 17:34:10  回复
    • 可以,请点击页面顶部的红色按钮联系博主
  • mingios 发布于 2013/8/31 10:10:07  回复
  • 博主,qq 4.2的加密算法貌似改了,中文utf8前两个字节没加密,最后一个字节低4位用imei异或,高四位不知道怎么加密的。我搞到这里搞不下去了,求博主出手相助啊
    • blackfeather 发布于 2014/1/26 16:56:49  回复
    • 确实改了,代码已经更新!
  • 宝贝儿 发布于 2013/8/7 17:22:25  回复
  • 请问博主QQ2013手机中的聊天记录怎么删除?
    • blackfeather 发布于 2013/8/7 19:45:18  回复
    • 卸载了再重装,基本可以保证彻底清掉。
  • Evil0r 发布于 2013/8/2 16:15:52  回复
  • 博主这QQ解密的函数有些错误吧。。。
    • blackfeather 发布于 2013/8/4 17:08:39  回复
    • 好久前研究的,不排除版本更新了导致解密错误。
      当然也可能是某些地方没写正确导致的异常,很多人都解出来了。
  • ss 发布于 2013/7/23 15:57:05  回复
  • 楼主我导出的数据直接用sqlite可以打开,不过打开的东西看不懂啊,可能版本不一样,现在的数据给你发的图片很不一样,还有就是你说的那个key用在哪儿的?是打开db的时候需要key吗?我导出的没有提示要key 啊,,只是里面内容看不懂。。也有乱码。。可否发点源代码参考一下,谢谢 邮箱774559308@qq.com
    • blackfeather 发布于 2013/7/23 16:18:37  回复
    • QQ的可以直接打开,里面却是都是乱码,然后用我贴出来的那段代码+key解密出来,就是明文数据了。注意是UTF8的编码。
    • ss 发布于 2013/7/24 14:07:38  回复
    • 那我如果要打开微信的呢,如何得到uin,或者怎么找到key呢,,谢谢
    • blackfeather 发布于 2013/7/25 17:11:14  回复
    • 请联系博主:345382462
  • luty1989 发布于 2013/7/23 11:22:58  回复
  • 能否给一份QQ的代码,最近在研究这个,不胜感激,qigang1989@126.com
    • blackfeather 发布于 2013/7/23 18:19:01  回复
    • QQ的就写了一段函数,你用sqlite打开读取出来数据后,直接用那段函数就能解密了,完整代码好像都删掉了,没事研究的时候顺手码的,没测试过各种设备的兼容性
  • lee 发布于 2013/7/8 17:49:00  回复
  • 请问可以把微信查看的代码发给我吗?我的邮箱是jack1872@qq.com,不甚感激!!!
  • LZ 发布于 2013/7/1 11:23:46  回复
  • 这个。。。记不大清楚了。。。
    印象中聊天内容存储在/data/data/com.xxx/里面 涉及到的资源什么图片语音放在/sdcard/tencent/mobileqq里面,都找找吧
  • LZ 发布于 2013/6/29 1:48:37  回复
  • /data/data/com.tencent.mobileqq_app
    • Li 发布于 2013/6/29 11:37:13  回复
    • 谢谢,但为什么我手机上找不到哦。我手机QQ有和别人聊天,并且手机也root了,系统文件(非存储卡)里面的data文件夹是空的,设置了显示隐藏文件,也一样找不到。
    • hkey 发布于 2013/10/6 0:04:17  回复
    • 你没有获取root权限
  • Li 发布于 2013/6/28 17:09:25  回复
  • 请问手机QQ2013聊天记录保存在哪个文件夹呢?我root了手机,所有文件夹找了,貌似找不到。
  • Li 发布于 2013/6/28 17:08:25  回复
  • 请问手机QQ2013保存在哪里呢?
  • blackfeather 发布于 2013/5/11 14:33:07  回复
  • __int64 t = mQuery.getInt64Field(4);
    t = t / 1000;
    CTime cm(t);

    cm.Format("%Y-%#m-%#d %H:%M:%S");

发表留言: