微信聊天记录导出成纯文本文件 用安卓模拟器破解了 天天资讯
今天(2020年10月29日),我终于将微信里面的聊天记录导出成纯文本文件了,至于后面的制作词云图,就相对简单了。
(资料图片仅供参考)
现在对这个过程记录一下,帮助有需要的人。
注意:我的手机是安卓手机,且没有在其他操作系统上尝试过下述方法。
1、基本思路
和网上说的一样,基本思路就是拿到手机里面存储聊天记录的数据库并解锁,然后导出成文本文件,接下来怎么分析就全凭所好了。
最耗费时间的,就是拿到并破解聊天数据库的过程。
2、获取数据库文件
微信的聊天记录在手机上是以SQLite数据库存储的。
一般情况下,我们是看不到这个数据库文件的,除非获取Root权限。但是,获取Root权限后会降低手机的安全性,所以现在的安卓手机越来越难以被Root。
为此,就需要“曲线救国”:利用安卓模拟器。
下面是具体的步骤:
将手机上的聊天记录备份至电脑,这个是微信自带的功能,只需要按照微信的操作指引即可。
安装安卓模拟器,我用的是网易mumu,支持mac和win。
打开安卓模拟器,注意,此时不要安装微信,先完成以下操作: 3.1 获取Root权限(右上角菜单栏-->系统设置-->开启ROOT权限): 3.2 设置IMEI编码(右上角菜单栏-->系统设置-->属性设置-->自定义型号-->随机): 点击保存后,模拟器会提示是否重启,点击重启以生效之前的设置。
在模拟器中下载微信(通过模拟器的搜索框直接下载)并登录微信。在上一步操作过程中,电脑上的微信会因为手机端微信登录状态的变化而自动退出,这时需要重新登录电脑微信。 将备份的电脑端的聊天记录恢复至模拟器中的手机微信。下载RE文件管理器(通过模拟器的搜索框直接下载) 打开RE,从根目录/下开始,路径为:/data/data/com.tencent.mm/MicroMsg//EnMicroMsg.db,其中,为一数字字母组成的字符串,因微信号不同而不同;EnMicroMsg.db就是我们的数据库文件了。可以将该数据库文件复制到模拟器的共享文件夹中,这样,数据库文件就到了电脑上了。
3、解密
3.1 获取密码
微信对该数据库文件进行了加密,加密规则是:先对IMEI和UIN进行拼接,然后利用MD5算法对拼接后的字符串进行转换,转换后的前7位字符为密码。
IMEI上面已经在模拟器中获取到了,接下来获取UIN。
UIN是微信的用户信息号,许多地方可以获取到,这里举一个例子。仍需要回到模拟其中,打开RE,进入到如下目录:/data/data/com.tencent.mm/shared_prefs,然后直接用RE打开其中的system_config_prefs.xml,找到其中的name为default_uin的标签所对应的value的值,就是UIN。
拿到两个编号之后,将它们按照IMEI+UIN的顺序拼接(注意,没有+号),然后进行在线MD5转换,转换后,取前7个字符。
3.2 打开数据库
尽管获取了密码,但并不能向其他数据库一样用密码登录即可(你可以尝试一下用Navicat进行登录看看是否成功),这是由于微信使用了SQLCipher对其进行了加密。如果熟悉SQLCipher的使用,可以下载源码,依据3.1得到的密码,用命令行进行解密。
我不熟悉,所以,可以用到别人的工具进行解密。
下载地址为:链接: https://pan.baidu.com/s/1Im3n02yseo-4IxeDY9srqQ 提取码: ka4z。
该工具是一个.exe文件,因此,必须在windows操作系统中运行。软件打开之后使用起来应该没什么难度,选择File-->Open database-->选择数据库文件,然后弹窗就让你输入密码了,输入7个字符的密码即可打开数据库。
打开之后,里面的表有很多,主要用到的是一张名为message的表,从名字就知道了它存储的是聊天记录。
4、制作词云
其实导出成csv文件之后,想基于这个文件做什么操作反而就比较简单了,这里只是记录一下。
4.1 文件转码
导出成的csv文件的编码需要转换成utf-8,这一点要记住。
4.2 python代码
代码不作解释了,都是很基础的,有问题欢迎评论。
import pandas as pdimport jiebaimport codecsfrom imageio import imreadimport matplotlib.pyplot as pltfrom wordcloud import ImageColorGeneratorfrom wordcloud import WordClouddef load_file_and_seg(file_path): """导入文件并分词""" f = codecs.open(file_path) content = f.read() f.close() segment = [] segs = jieba.cut(content) for seg in segs: if len(seg) > 1 and seg != "\r\n": segment.append(seg) return segmentdef get_words_count(file_path, stopwords_file=None): """统计词频""" segment = load_file_and_seg(file_path) df = pd.DataFrame({"segment": segment}) if stopwords_file: stopwords = pd.read_csv(stopwords_file, index_col=False, quoting=3, sep="\t", names=["stopword"], encoding="utf-8") df = df[~df.segment.isin(stopwords.stopword)] words_count = df["segment"].value_counts() return words_count.to_dict()def has_chinese(string): """字符串中是否含有中文""" for char in string: if u"\u4e00" <= char <= u"\u9fa5": return True return Falsedef preprocessing(file_path): """数据的预处理""" df = pd.read_csv(file_path, sep=",") keep_indexes = [] for i in range(df.shape[0]): txt = df.loc[i, "content"] if txt.startswith(""): continue if txt.startswith("欢迎你再次回到微信"): continue if has_chinese(txt): keep_indexes.append(i) df2 = df.iloc[keep_indexes, :] df2.sort_values(by="createTime", inplace=True) df2 = df2.content file = open("raw_msg.txt", "w+", encoding="utf-8") for i in df2: file.write(i + "\n") file.close()if __name__ == "__main__": file = "msg2.csv" preprocessing(file) words_count = get_words_count("./raw_msg.txt") bimg = imread("./ai.jpeg") # 使用一张图片为模板 wordcloud = WordCloud(background_color="white", mask=bimg, font_path="AquaKana.ttc") # 注意字体 wordcloud = wordcloud.fit_words(words_count) bimgColors = ImageColorGenerator(bimg) plt.axis("off") plt.imshow(wordcloud.recolor(color_func=bimgColors)) plt.show()
5、参考
1 、Python 520情人节超强技能 导出微信聊天记录生成词云
相关推荐:
最新新闻:
- 头条:o哒取代基效应:分子中的电子效应
- 什么是浏览器缓存?如何在所有主要浏览器中清除浏览器缓存?
- 微信聊天记录导出成纯文本文件 用安卓模拟器破解了 天天资讯
- 全球速看:wpcap.dll文件无法加载?wpcap.dll/Packet.dll/pthreadVC.dll丢失解决办法
- 今日精选:《坎巴拉太空计划2》预告片展示教学步骤
- 横版平台动作游戏《少女魔净》开场动画展示 环球报道
- 神谷盛治表示香草社19年暗示的新作开发现已完成
- 曝姆巴佩想买下C罗的私人飞机 交易金额未透露:热头条
- -53℃漠河美女主播启动i9-13900K、RTX4090!魔幻一幕出现 今日热议
- 全球新资讯:藩王弊端那么明显,朱元璋非要坚持分封藩王,有何深意?
- 《最后的生还者》第一集已在油管上免费提供 支持1080P:环球观点
- “今年春节档后劲最大的电影”冲上热搜 你最喜欢哪一部?-焦点热议
- 全球信息:小岛转发《死亡搁浅2》饭制海报 由预告画面拼接而成
- 游客爆料北海用餐被宰:4个菜1500元 出租车带去的
- 《死亡空间:重制版》PC版存在CPU优化问题:快播报
- 《卧龙:苍天陨落》曹操刘备孙坚角色介绍 三国人设光荣烂熟于心
- 传《飙酷车神3》即将正式公布 采用新引擎开发 全球播报
- 《最终幻想起源:天堂的陌生人》可能有续作-每日头条
- Tesla纯电皮卡继续跳票 正式量产要到2024年_世界简讯
- GameFreak谈原创IP游戏开发:不该限制在小型项目上
- GDC年度游戏提名公布:《老头环》《流浪》六项领跑-环球热消息
- 《星露谷物语》厂商新作全力开发中:零加班 所以慢-每日焦点
- 天弘丰利LOF: 天弘丰利债券型证券投资基金(LOF)2022年第4季度报告:重点聚焦
- 英国版《鱿鱼游戏》真人游戏被曝玩法苛刻 或陷集体诉讼|热点在线
- 舒淇为林心如庆47岁生日 姐妹俩托腮扮嫩状态似少女
- 男子餐厅点海鲜、葱姜费占60%?餐厅:这是加工费
- 男孩逛景区遇现实版“鹈鹕灌顶” 有攻击性需小心
- 环球观天下!让人一言难尽的NS“新操作系统”《nOS》发售
- 像素风小清新ADV《东京故事》上架steam 年内发售
- 《鬼谷八荒》官方纪念EA上线两周年:开发已进入尾声
- UE5版《塞尔达传说:时之笛》新视频 展示牧场地图
- 全球视讯!利雅得胜利提高对莫德里奇的报价:一年豪掷4500万欧
- 世界速读:《终结者2》T-1000噩梦成真 科学家开发固液变形机器人
- 辽宁上空惊现“三个太阳”幻日奇观 专家揭秘
- 返程提醒:带上健康,注意这几个细节
- 卡牌战斗新游《Spell Siege》公开 AI辅助开发时间6小时
- 当前聚焦:郭富城、梁朝伟主演《风再起时》宣布提档:2月5日元宵节上映
- 发售1天Steam好评如潮 三上真司音游《Hi-Fi Rush》GOTY预定-天天快看点
- 【全球新要闻】托比·马奎尔愿意再次扮演蜘蛛侠:我怎么会不想呢?
- 天天最资讯丨《荣耀战魂》新英雄公布 异乡人阵营再添女将
- 《最终幻想:节奏剧场》新系统情报 2月16日发售-今日讯
- 世界头条:DC《雷霆沙赞2》新预告:少年大战“龙妈”卡丽熙
- 世界快资讯:《红霞岛》联合开发商和索尼合作 开发《地平线》系列
- Neil Druckmann:顽皮狗将不再制作《神秘海域》-全球要闻
- 60.4亿!2023春节档票房超去年 《满江红》23亿领跑
- 春节假期接近尾声 假期返程小高峰将出现
- 全球头条:Epic喜+1:《Adios》等两作 下周送《界外魔之死》
- 好的引导有多重要
- 心理惊悚游戏《洛蕾塔》2月16日登陆PC平台:世界头条
- 焦点信息:尽管面临诉讼和审查 微软仍计划6月完成动视暴雪收购
- 世界视讯!《怪物猎人:崛起》2月2日举行发布会 公布曙光第四弹更新情报
- 世界要闻:《中国乒乓之绝地反击》改档2月17日放映
- 满江红票房破21亿!张艺谋揭秘震撼结尾 片方发声明称偷票房等指责纯属造谣 环球要闻
- 天花板!迪丽热巴被国外网站评为2023全球最美女演员|即时看
- 国外时装展惊现“穿模”礼服 网友:学了3年动画?:当前信息
- PS5精英手柄功能介绍宣传片:高自定义带来顶级体验
- 国外XSS主机大降价:庆祝农历新年 仅售1628元-讯息
- 世界讯息:《机甲战士5:雇佣兵》新DLC上线 大量新任务及对手佣兵
- 剧版《最后生还者》第三集新剧照曝光:比尔与弗兰克深情对视|焦点热议
- 《流浪地球2》机械狗笨笨智能积木开售:899元、支持手机App遥控
- 《霍格沃茨之遗》将会拥有100多个支线任务-世界即时
- 焦点快看:在《霍格沃茨之遗》中,你可以使用不可饶恕咒
- 陈坤大年初三送别儿子上学 一家三代全家福留念
- 《满江红》实时票房破20亿:观影用户评分9.4!
- 平台最贵游戏《隐秘与未知》上架steam 售价近1.5万元-天天通讯
- 电影《满江红》新剧照:赤胆忠心、一曲悲歌颂英雄
- 《红霞岛》Steam国区开启预购:标准版289元、显卡最低需求GTX 1070_全球今亮点
- 《如龙维新!极》新预告 展示队士卡片不同能力
- 厂商介绍《死亡空间:重制版》PS5版本手柄功能详情_世界速讯
- RTX 4060将发布:3000元左右 180W功耗
- 赶快升级!iOS 16.3修复了这一大Bug
- HomePod mini激活温度湿度传感器,方法已更新
- M2款Macmini加入拼多多百亿补贴 未发售先砍500元|全球快看点
- 时讯:《原子之心》进厂压盘 下月即将正式发售
- 杨紫琼入围奥斯卡影后,这次成龙亏大了_每日视点