加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

聊聊微信、qq数据库解密

发布时间:2020-12-13 00:08:03 所属栏目:百科 来源:网络整理
导读:《聊聊微信、qq数据库解密》要点: 本文介绍了聊聊微信、qq数据库解密,希望对您有用。如果有疑问,可以联系我们。 最近看到网上有人专门针对如何破解qq、微信数据库,本身也想试试,于是就有了此文,主要讲下如何读取聊天信息,前提是需要一部 root 过的手机.

《聊聊微信、qq数据库解密》要点:
本文介绍了聊聊微信、qq数据库解密,希望对您有用。如果有疑问,可以联系我们。

最近看到网上有人专门针对如何破解qq、微信数据库,本身也想试试,于是就有了此文,主要讲下如何读取聊天信息,前提是需要一部 root 过的手机.

概述:

  • 微信数据库加密方式;

  • 微信多账户数据读取;

  • 微信石友消息以及群消息;

  • QQ 消息加密方式;

  • QQ 讨论组消息;

  • QQ 群消息;

  • QQ 多账户数据读取;

1.微信数据库加密方式:

微信数据库加密方式已经有高人研究过了,就不细说了,主要是:

String password = [1,7]md5(imei + uin)

其中 imei 是手机的 IMEI 号,在拨号界面输入 *#06# 即可看到,有手机有两个 IMEI 号,选择第一个 IMEI 号,关于双 IMEI 号如何读取,请自行 google,不消重复造轮子了;uin 是微信为每个用户分配的 id,可以在如下路径找到

datadatacom.tencent.mmshared_prefsauth_info_key_prefs.xml

此中具体的信息如下:

<?xml version='1.0' encoding='utf-8' standalone='yes' ?>

<map>

<boolean name="key_auth_info_prefs_created" value="true" />

<int name="key_auth_update_version" value="637864511" />

<int name="_auth_uin" value="*********" />

......

</map>

2.微信多账户数据读取:_auth_uin 的值 value 即为 uin 值,在代码中可以通过解析 xml 来读取 uin 的值;然后将 imei 和 uin 相加计算 md5 的结果,取前 7 位的值即为暗码.

当多个账户在同一个手机上使用时,就会存在多个账户的数据库文件,但是在 auth_info_key_prefs 中只有当前用户的 uin 的值,无法获取到历史的 uin 数据,不外仔细分析下数据库目录的父目录:

/data/data/com.tencent.mm/MicroMsg/c8201023c5887895fabf25da90b5fab8/EnMicroMsg.db

经验证,确实如此,知道了文件名的构成,可以逆推 uin 的值,只不过是个计算的问题.那么话说回来,只有逆推才能得出 uin 的值吗?逆推有些繁琐,那么有没有简单的办法得到登录过的所有的 uin 的值呢? 答案是肯定的,经过一番搜索,把每个目录都翻遍了,终于发现了 app_brand_global_sp.xml.xml 文件,打开一看,大吃一惊,原来就是你,其中的具体信息如下:c8201023c5887895fabf25da90b5fab8 可以看出来是个 md5 值,这个已经有人研究过了.

文件名 = md5(mm + uin)

有了所有用户的 uin,imei 号也知道了,还有什么不知道呢,剩下的便是撸代码了.找的便是你,这个只是最新版微信测试的,之前的版本未测试.

3.微信石友消息及群消息读取:

既然暗码知道了,那么就开始解密数据库了,工具 sqlcipher.exe,这个已经有前人编译好的,直接下载用,打开数据库,聊天消息尽收眼底.

  • 3.1 好友消息与群消息的区别主要是 message 表中 talker 字段是否包含 @chatroom 字样:

  • 3.2 好友,包含群聊昵称、id 在 rcontact 表中可以查到;

  • 3.3 在 message 表中可以提取以下几个字段,根本上就可知道,聊天的内容了:

4.QQ消息加密方式

qq 数据库并没有全库加密,而是对每条消息进行加密,加密的方式便是 uin 的 md5 值,uin 便是用户的 qq 号码,每个聊天都会对应一个表,表名命名规则:

mr_friend_New 石友聊天

mr_discussionuin_New 讨论组聊天

mr_troop_New 群聊

其中大部分字段都是加密的,必要对应的 uin 的 md5 来解密.每张表里面只必要提取以下字段就够了:

selfuin 本人的 uin | senderuin 发消息的 uin | msgtype 消息类型 | msgData 消息内容 | issend 是否为本人发送 | time 光阴

5.QQ讨论组消息:

所有的讨论组信息都在 discussionInfo 表中,可以找到讨论组的 uin,然后根据 uin 构造表名称,根据表名称去核对应的表信息

6.群消息;

所有群的相关信息都记录在 TroopInfo 中,并且在 TroopStatisticsInfo 中记录了群的总数,这样一来就可以构造出每个群聊的表名称,根据表名称去查找对应的表信息即可

7.多账户数据读取;

  • QQ 当前账户的号码存储在 datadatacom.tencent.mobileqqshared_prefsLast_Login.xml 中:

<map>

<set name = "uin_set">

<string>-123847323</string>

<string>-923847323</string>

</set>

</map>

其中 uin 便是当前登录的 qq 号码

  • 相比微信来说,QQ 多账户记录读取简单很多,在 QQ 数据库目录中的所有的账号数据库都在此,一目了然,并无什么特其余技巧.

基本上就这么些东西了,借助前人的研究做起来还是比拟顺畅,如果真要整理出每条聊天消息,还是需要花些功夫的.

好了,就写到这里了,有什么不明确的可以留言!谢谢!

欢迎参与《聊聊微信、qq数据库解密》讨论,分享您的想法,编程之家PHP学院为您提供专业教程。

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读