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

C/C++代码 blackfeather

 

 

测试平台:安卓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://www.fenlog.com/post/82.html

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

 

 

评论列表:

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

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

blackfeather2013/5/11 14:33:07 回复

发表评论: