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

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

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

微信的聊天记录保存在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微信聊天记录” 的相关文章

推荐一款微商最喜欢的截图神器

推荐一款微商最喜欢的截图神器

‌    手机数据工厂推huifus.com荐一款微商最喜欢的截图神器,是一种专门为微商设计的工具,旨在帮助微商用户快速生成各种营销所需的截图,如微信、支付宝等聊天记录、转账记录、红包记录等,以提高他们的可信度和营销效果。具有以下功能:点击本链接前往注册复制下方链接到浏览中打开前...

微信、支付宝、网购订单模拟生成截图软件

微信、支付宝、网购订单模拟生成截图软件

通过简单的设置,可以方便的生成您想要的截图。如微信对话、微信转账、微信红包、微信钱包、微信零钱、支付宝聊天对话、支付宝转账等强大功能 。有了这款软件用户可以随意编辑截图,包括聊天内容,手机壁纸,甚至是转账截图,都可以进行自定义的调整,为大家的生活提供了更多的便利。复制链接到浏览器打开,注册、下载安装...

关闭这几个设置,手机瞬间杜绝监听偷窥

1. 关闭多余定位权限所有无关 APP,全部关掉定位只给地图、外卖临时用拒绝 24 小时跟踪你的行踪2. 关闭相机、麦克风权限小游戏、杂牌软件、工具箱全部禁用相机 + 麦克风防止后台偷偷录音、偷拍3. 关闭自动读取剪贴板杜绝 APP 偷看你复制的密码、验证码、聊天内容隐私再也不被偷偷收集4. 关闭后...

手机隐私防泄露指南,普通人必看

普通人手机隐私防泄露完整指南覆盖日常使用、权限、软件、支付、社交、拍照、定位七大核心场景,简单好操作,普通人照着设置就能大幅降低隐私泄露、被偷拍、被诈骗风险。一、基础权限:关掉所有没必要的授权关闭 APP 过度权限相册、麦克风、摄像头、定位、通讯录、存储、后台弹窗,非必要全部设为「仅使用时允许」或「...

手机与电脑如何传递数据

手机+电脑 极简传文件速查表(直接照做,保存备忘录) 一、通用懒人(所有手机+电脑,小文件) 微信/QQ文件传输助手 1. 手机、电脑登录同一账号 2. 互相发送图片、文档、截图 3. 缺点:视频、图片会压缩,大文件慢 二、有线极速(原图/大视频/无压缩,推荐) 安卓 + 电...

有哪些软件可以实现手机和电脑之间的高效数据管理?

有哪些软件可以实现手机和电脑之间的高效数据管理?

下面按「苹果生态 / 安卓+Windows / 全平台通用」三类,给你整理**真正能落地、高效不乱的手机↔电脑数据管理软件**,每款讲清楚:**能干啥、适合谁、优缺点**。 --- ## 一、iPhone + Mac(苹果生态最优) ### 1. 系统自带:隔空投送 + 访达(免费,首...

发表评论

访客

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