Hakuuyosei / QQHistoryExport

安卓设备QQ聊天记录导出,支持图片/视频/音频/引用/文件 大部分消息,支持几乎所有的重要消息类型,支持PDF导出,未来将支持html导出
239 stars 10 forks source link

QQHistoryExport

安卓设备QQ聊天记录导出,支持图片/视频/音频/引用/文件 大部分消息,支持几乎所有的重要消息类型,支持PDF导出,未来将支持html导出

前言

本项目的消息解密,数据库读取,QQ表情(emoticon1)来自Yiyiyimu/QQ-History-Backup,感谢为QQ聊天记录解析的一众大佬

本项目支持更多(大部分重要的消息类型),解析了java序列化类型消息和更多的protobuf序列化消息,支持PDF导出,未来将支持html导出。相比于网上的闭源软件,多了很多功能。

网上搜的大多数文章和软件都浅尝辄止,或者收费,本项目开源免费,希望能帮助大家。

本项目目前不支持QQNT版本。详见:关于QQNT

Features

以上功能来自Yiyiyimu/QQ-History-Backup

以下为本项目实现的功能

消息解析:

PDF生成:

效果图:

image-20230726135050874

image-20230725211104660

image-20230726202041603

使用说明

您需要准备一台windows电脑,在release里下载软件,然后需要通过root/手机备份的方式拿出手机的QQ数据。

大概需要提取:

根目录:data/data/com.tencent.mobileqq

提取整个目录或者里面的主要文件,详见使用说明

内部存储:**Android/data/com.tencent.mobileqq/Tencent/MobileQQ/ 按需提取:

图片文件:上述目录/chatpic/chatimg(文件夹)
视频文件:上述目录/shortvideo(文件夹)
语音文件:上述目录/{你的QQ号}/ptt(文件夹)

移动到电脑上,然后运行本项目。下面是详细说明。若你看不懂,建议找一个懂电脑或者手机的朋友。

关于QQNT

重要通知:本项目不支持NT版本。近日,一些自动更新的手机已更新为QQNT版本。若需要提取聊天记录,请勿更新!请勿更新!2023年9月24日

8.9.63以上版本可能就是,安卓QQNT和老版本没有任何界面上的区别,包名一致,覆盖更新。

QQNT的特征是,db文件夹下QQ号.db大小很小(小于10mb),存在db/nt_db文件夹。

有关QQNT,请参看:

现在还可以正常使用吗? · Issue #12 · QQBackup/QQ-History-Backup

Feature request: 读取新版QQNT数据库 Issue #9 · QQBackup/QQ-History-Backup

QQBackup/qq-win-db-key: Windows QQ / QQNT 聊天数据库解密 (Frida) (github.com)

(YoungLord等人已分析数据库加密方式,需要HOOK 但新版本套了VMP,可能失效)

现在好像还没有开源项目能解析QQNT数据结构

===================

==使用教程==

===================

Q & A

1.PDF文档中,相同的图片只会保存一次吗?

是的,PDF内只会保存一次

2.我想打包带走,需要带走哪些文件?

只想带走PDF的话,只带走PDF文件即可,建议带上output/videos,output/images,output/vioces。PDF文档中相关的文件都有路径文本,您按照您的选择携带媒体文件,不用带chatimg,shortvideo等您从手机里提取出来的文件夹。

3.我想自己写生成其它格式的文件,该怎么办?

运行解析后,查看下面项目原理-解析章节。依旧只用在output目录下操作,不用再管您从手机里提取出来的一大堆东西。

4.他报出来的错误很多,怎么办?多少是不正常?

这是我一个八万条聊天记录导出的错误统计

image-20230727132214003

5.不会用怎么办?

找一个懂电脑的人帮你。

我写了五千字的文档了已经。

6.消息开始有一段这个?

image-20230727152652992

怎么会逝?我也不知道,x逊的QQ数据库就是屎山!!!!!我这边只有20来条,下面的就是正常消息

上报问题

欢迎上报问题,因为此项目功能数量多,功能分散,测试样本具有局限性,开发时间跨度大,难以保证每行代码都没问题,各位遇到问题积极提出Issue,有能力的可以直接提pr。

解析的同时会生成一个output/parse_log.json,里面有所有的解析出错数据,上报时请找到bug有关的日志行。此文件可能含有敏感信息,请不要复制整个日志文件。若此聊天记录非常敏感,请勿发到issue,若您觉得信息不宜公开但是也并不特别私密,可以发到我们的邮箱Hakuuyosei@outlook.com。 因为日志里看到是乱码,解密后就能看到原数据了。不用附带IMEI等信息。 您在提issue时需要先尝试最新的release,注明所用软件版本,系统环境,日志等。

若您直接将数据库文件发送过来(不建议),需要附带IMEI(以kc文件为准),你自己的QQ号,你的目标QQ号。

若您并不是用的release,需要注明python版本。

若pdf导出出错,建议上报问题,PDF导出的错误目前直接输出在UI里。里面的敏感信息是明文,您可以将敏感信息替换后提issue。

此外,请查看TODO:TODO

项目原理/贡献说明

本项目交流IM:https://matrix.to/#/#qq_history_export:matrix.org

可使用Element(推荐),SchildiChat,Weechat等client进入(访问链接按照提示操作即可)

=================================

==项目原理/贡献说明==

=================================

TODO

说明:因为此项目功能数量多,功能分散,测试样本具有局限性,开发时间跨度大,难以保证每行代码都没问题,各位遇到问题积极提出Issue,有能力的可以直接提pr

局限性

消息解析

PDF生成

作者

白羽夜星制作组 制作


白羽夜星制作组

寄东南

灵弦

贡献者:


NovaShen555

----------------------------------

-----------------------------------

License

由于本项目的特殊性质,本项目禁止一切形式的商业用途。

由于本项目的特殊性质,本项目禁止一切形式的商业用途。

由于本项目的特殊性质,本项目禁止一切形式的商业用途。

感谢

本项目的本消息解密,数据库读取,QQ表情(emoticon1),来自:

https://github.com/Yiyiyimu/QQ_History_Backup

https://github.com/roadwide/qqmessageoutput

https://gist.github.com/WincerChan/362331456a6e0417c5aa1cf3ff7be2b7

消息反序列化分析用到了:

https://github.com/protocolbuffers/protobuf

https://github.com/nccgroup/blackboxprotobuf(测试阶段使用,不在项目代码中

https://github.com/rohankumardubey/SerializationDumper(测试阶段使用,不在项目代码中

音频转码用到了:

https://github.com/kn007/silk-v3-decoder

https://github.com/FFmpeg/FFmpeg (LGPL bulid)

视频缩略图用到了:

https://github.com/FFmpeg/FFmpeg (LGPL bulid)

表情: https://github.com/im0qianqian/QQ-Emoticon

另外感谢:Young-Lord (LY) (github.com)提供的建议和资料