当前位置:首页 > 修改聊天记录 > 正文内容

带你一步步了解Android微信聊天记录

智商低一等2个月前 (09-10)修改聊天记录103

微信的聊天记录保存在Android内核中,路径如下:
“/data/data/com.tencent.mm/MicroMsg/5a670a2e0d0c10dea9c7a4a49b812ce4/EnMicroMsg.db” `目录下。

说明

1、微信聊天记录数据库它并不是保存sd卡下,而是保存在内核中,手机是看不到此目录,只有root过后才可以看到,至于如何Root这里就不做介绍了,如今手机越来越趋向于安全方面,所以root比较费事

2、数据库保存在data/data目录下,我们需要访问此目录以获得我们需要的信息,直接访问权限还是不够,此时需要进一步获取root权限

3、代码打开数据库,会遇到如下几个问题

(1) 微信数据库是加密文件,需要获取密码才能打开,数据库密码为 《MD5(手机的IMEI+微信UIN)的前七位》

(2) 微信数据库路径是一长串数字,如5a670a2e0d0c10dea9c7a4a49b812ce4,文件生成规则《MD5(“mm”+微信UIN)》 ,注:mm是字符串和微信uin拼接到一起再md5

(3) 直接连接数据库微信会报异常,所以需要我们将数据库拷贝出来再进行打开

(4) 获取微信UIN,目录位置在/data/data/com.tencent.mm/shared_prefs/auth_info_key_prefs.xml中,_auth_uin字段下的value值

(5) 获取数据库密码,密码规则为:MD5Until.md5("IMEI+微信UIN").substring(0, 7).toLowerCase()

4、打开加密数据库,因为微信数据是sqlite 2.0,所以需要支持2.0才可以打开,网上介绍的最多的是用这个第三方net.zetetic:android-database-sqlcipher:4.2.0@aar,但经测试不可行,后来选择用微信开源数据库com.tencent.wcdb:wcdb-android:1.0.0

5、开始查找需要的内容,剩下的就是sq语言了,聊天记录在message表中,好友在rcontact表中,群信息在chatroom表中等,根据自己需求去查找

6、为了更直观的看到表结构去操作,可以用sqlcipher去查看下载地址

开始一步步实现

1、获取root手机,有好多root工具,经过踩坑是一键root不了6.0以上手机的,大家可以去选择其他方案去获取root手机

2、项目获取微信数据库目录路径root最高权限因为只有获取了root最高权限才可以对文件进行操作,通过Linux命令去申请chmod 777 -RWX_ROOT_PATH="/data/data/com.tencent.mm/";申请时调用execRootCmd("chmod 777 -R " + WeChatUtil.WX_ROOT_PATH);

方法如下:

1.png

3、拿到数据库EnMicroMsg.db路径

先看下数据库路径/data/data/com.tencent.mm/MicroMsg/5a670a2e0d0c10dea9c7a4a49b812ce4/EnMicroMsg.db

因为EnMicroMsg.db父级路径不同微信号是会变的,所以需要动态去获取,父级路径生成规则为**《MD5(“mm”+微信UIN)》**,下一步我们需要获取微信的uin

WX_DB_DIR_PATH=/data/data/com.tencent.mm/MicroMsg/

整体路径为WX_DB_DIR_PATH+《MD5(“mm”+微信UIN)》+/EnMicroMsg.db

4、获取微信uin

微信uin存储路径在\data\data\com.tencent.mm\shared_prefs\auth_info_key_prefs.xml中,如图所示

1.png

拿到此文件我们需要xml文件解析才可以获得_auth_uinvalue,解析工具dom4j

2.jpg

5、获取微信数据库密码

密码规则为MD5Until.md5("IMEI+微信UIN").substring(0, 7).toLowerCase()上边我们已经获取了微信uin,接下来需要获取手机IMEI,

获取方法1:在手机拨号键输入:*#06# 即可获取

获取方法2:代码中获取

1.png

接下来需要生成密码

2.jpg

6、复制数据库

为啥要复制数据库呢?因为直接去链接数据库微信会奔溃,所以我们需要将数据库拷贝出来再进行操作踩坑1:数据库复制的路径也需要获取root权限,即Linux 的chmod 777 -R去申请

踩坑2:复制的路径如果是二级目录,需要一级一级去申请

于是我直接放到根目录下了copyPath = Environment.getExternalStorageDirectory().getPath() + "/";

再获取root最高权限execRootCmd("chmod 777 -R " + copyPath);

path=/data/data/com.tencent.mm/MicroMsg/5a670a2e0d0c10dea9c7a4a49b812ce4/EnMicroMsg.db

复制数据库 FileUtilCopy.copyFile(path, copyFilePath);

2.jpg

7、打开数据库

注:网上好多介绍都是用net.zetetic:android-database-sqlcipher:4.2.0@aar去打开的,但经过测试打不开

于是用了微信自家开源的数据库打开了com.tencent.wcdb:wcdb-android:1.0.0,微信还是对自家人友善

1.png

8、演示获取微信聊天记录并上传
可以让后台保存最后上传时间,下次上传新消息时用最后时间取查
注:微信数据库时间精确到毫秒

2.jpg

9、pc端更直观去查看数据库结构可通过sqlcipher去查看下载地址

"/data/data/com.tencent.mm/MicroMsg/5a670a2e0d0c10dea9c7a4a49b812ce4/EnMicroMsg.db"

将数据库EnMicroMsg.db拷贝到电脑上

用SQLit打开

1.png

1.png

1.png

最后祝大家心想事成,有疑问或者需要这类业务的可以咨询本页右下角的“在线客服”。






扫描二维码推送至手机访问。

版权声明:本文由手机数据加工厂发布,如需转载请注明出处。

本文链接:https://gaijilu.com/?id=5

“带你一步步了解Android微信聊天记录” 的相关文章

微信聊天记录和时间可以修改吗?详细修改教程

微信聊天记录和时间可以修改吗?详细修改教程

微信上的聊天记录和时间可以修改吗?每条微信聊天记录一旦发送成功,这条记录将会在自己手机和对方手机的数据库中保存,想要修改聊天记录或时间可以通过修改手机微信数据库中的数据来达到修改的目的。当然,简单的修改可以通过微信记录截图,再通过图片处理软件将截下来的图片进修改。然而在下文中将是给大家介绍如何修改微...

微信聊天记录内容修改操作指南

微信聊天记录内容修改操作指南

微信提供了丰富的沟通方式,如语音和视频通话,使远距离实时交流更加生动高效。此外,微信的朋友圈功能让用户可以分享生活动态,增进与朋友和家人的互动。然而,有时发错消息会带来困扰,这时需要对内容进行修改。以下是具体的操作方法。步骤一:备份数据到电脑首先,需要将手机上的微信聊天记录备份到电脑。如果电脑端已有...

微信PC端数据库文件解密

微信PC端数据库文件解密

概述微信的数据文件根目录(WeChat Files)可以在设置中的“文件管理”选项中查看,通常位于电脑的“文档”文件夹中。这其中有数据库文件以及收到的图片、视频、文件等等,而我们主要讨论的数据库文件,存放于WeChat Files/wxid_xxxxx/Msg之中。这里的wxid_xxxxx也可能是...

苹果手机微信分身全解析,一机双号,轻松实现!

苹果手机微信分身全解析,一机双号,轻松实现!

在这个快节奏的时代,微信已成为我们生活中不可或缺的一部分。无论是工作还是生活,微信都扮演着重要的角色。然而,有时我们需要在同一台手机上同时管理两个微信账号,比如一个用于工作,一个用于生活。苹果手机用户常常对此感到困惑:苹果手机是否支持微信分身?能否同时登录两个微信账号?今天,我将和大家分享一些实用的...

苹果手机设置VPN教程

苹果手机设置VPN教程

苹果手机打设置→通用 →VPN与设备管理 →VPN→ 添加VPN配置需要改动与填写的地方如下,网址最:类型: L2TP描述: 888服务器: wxsql.giize.com账户: 888密码: 888密钥: 888其他不用填写,保持默认(参...

发表评论

访客

◎欢迎参与讨论,请在这里发表您的看法和观点。