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

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

智商低一等2年前 (2024-09-10)修改聊天记录5657

微信的聊天记录保存在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_uin的value,解析工具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://www.gaijilu.com/?id=5

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

微信如何选择时间从手机往电脑迁移

微信如何选择时间从手机往电脑迁移

有的时候需要将记录从手机往电脑,或者电脑往手机迁移,碰到有的人数据量非大,会耗费大量时间,这个时候就可以选择性的迁移,精确到日期,这样数据量就小很多,现在就引导手机往电脑迁移。以安卓机为例第一步:在微信主页右下角-我第2步:设置第3步:聊天第4步:聊天记录迁移与备份第5步:迁移第6步:迁移到电脑微信...

修改聊天记录效果展示

这个视频是通过软件剪辑合成的,只是表明是这种效果,实际操作远比这个复杂,且过程中没有这么快捷,有一些准备工作,比方说手机的设置等,手机设置完成连接网络后,可能需要5-10分钟。全新一代定制手机,支持通过远程方式修改和添加定制手机内任意类型的聊天记录。功能仅限于对定制手机上登录的微信账号进行操作,且仅...

如何与客服对话

如何找到客服,有两种方式。一种是在本站的任意页面右下角找到悬浮的“在线客服”,点击即可与客服对话,此办法的好处是不需要添加其它通信方式,可以直接对话。二种是,添加客服微信:gaijilu-com。复制进入微信添加好友即可对话(不需要等客服通过验证即可发消息)。...

微信可查“谁把我删了”?微信上线新功能,有门槛,如何查找单删

微信可查“谁把我删了”?微信上线新功能,有门槛,如何查找单删

微信正在进行一项新功能内测——可以查看已删除自己的联系人/好友,并可以选择性筛选与删除。多名网友晒出的截图显示,微信提示“通讯录联系人数量已达上限,可删除部分联系人后继续添加”,并给出几个联系人选项,用户可直接删除或选择“换一换”。10月23日下午,微信方面向记者确认了此事,据微信方面透露,“微信用...

微信的聊天记录能修改吗?能!

微信的聊天记录能修改吗?能!

微信的聊天记录能修改吗?能!能添加、修改。添加的意思是,在原记录中凭空添加自己想要的内容。可以添加在任意位置,自己的名义,对方的名义都可能 。完成后在对话框中展示。与真实发送接受的无异。修改的意思是,原记录的内容可以任意修改,比方说原对话内容是“我爱你”,可以修改为“我不爱你”,“你爱我吗”,内容自...

iPhone如何快速整理你的相册 iPhone怎么备份照片比较方便

iPhone如何快速整理你的相册 iPhone怎么备份照片比较方便

一、iPhone如何快速整理你的相册当手机中的照片或视频太多,管理变得越来越麻烦时,我们可以利用相册中自带的功能对照片进行分类,下面看看iPhone如何快速整理相册。1、打开手机中的【照片】,点击底部导航栏中的【相簿】按钮。在页面左上方点击【+】号图标,在弹出的列表中选择【新建相簿】,如下图所示。图...

发表评论

访客

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