iosqq怎么删去聊天记录录怎么找回

3039人阅读
IOS开发(64)
这篇内容完全是意外啊,起因是酱紫的
某日看见一个Mac的app打折大礼包(bundle)买了以后里面有个神奇的iPxx设备管理的app,叫iMazing,然后用iMazing尝试了下,发现居然可以看app里面的数据,然后出于手闲好奇的心里-,-我就点开了大TX的扣扣看了一眼,于是就产生了下面的一系列意外发现
iMazing长下面酱紫,用起来赶脚还是很不错的啊,于是我顺手点开了扣扣,出于学习的目的,研究了一下
发现iMazing很强力啊,把整个app和数据都dump出来了,以及这次我们要讲的主角,消息记录,嘛大企鹅的消息记录在别的平台上似乎都是加密过的,iOS上却没有加密,这让人有点意外,不过估计也比较相信水果公司的沙盒是很安全的吧,不过这也给我们点机会一窥企鹅里面到底是啥样的。
另外本文完全自我yy的,水平有限写的不好的地方大家拍砖即可
找找主角在哪里
我们来找找主角在哪里,下面图是企鹅的document路径下的东西,从名字来看,分了好多东西,也承载了企鹅很多的功能,比如看到Weiyun,看到Video了(*゜?゜)
上面打上马赛克的,是QQ号为路径的两个目录,大家肯定都以为我们的主角就在里面了,哈哈哈,其实大意了,打开里面是这样的
外面的QQ号的路径里面其实是头像啊,用户信息啊,图片啊,视频啊之类的东西,并不是我们期待的聊天记录,我之前也被骗了,还以为大企鹅已经加密了用户的QQ聊天记录了,后来手闲点开来看一看,发现,哎呀原来在这里啊。
上面的图就是我的一个帐号下面的所有的文件了,一眼看到,QQ.db,这个必须是主角了,接下来我们就把它拆开来看看,里面都有些啥东西呢。
用sqlite打开qq.db这个文件以后,发现没有加密,也就是说我们的所有聊天记录,都是明文存放在手机里面的,这里再次体会到了不越狱的重要性。接下来我们一步一步的来看看,首先.tables看下,有一些什么样的数据表呢
上面的图就是所有的数据表了,里面所有号码都被我打上了码,不过大家都懂得,上面的码就是我们平时使用的群号码,qq号码了,以及这次的新发现,讨论组号码,另外,截图在我升级新的QQ之前截得,那么新加的表,就懒得截图了-_,-不过会在下面描述滴,以及,找到了个好看的free工具了,哈哈,可以更方便了
从上面的图片来看,大概可以把数据表分为下面几类:
注意:在花括号中的内容是根据内容可变的
数据库文件本身的信息
tb_dbVersion:数据表的版本,目测每个表有一个tableSign,对应到一个版本,tx很变态-,-数据的版本是记录在表上的
文件相关的
tb_File:保存用户收到和发送的文件列表
用户聊天(tb_c2cMsg开头)
tb_c2cTables:跟QQ用户聊天的表tb_recentC2CMsg:最近的用户消息tb_c2cMsg_{QQ号}:跟某个QQ用户聊天的聊天记录
讨论组(tb_discuss开头的)
tb_discuss_recent:最近的讨论组聊天记录tb_discussMaxSeq:讨论组消息序列tb_discussGrp_{讨论组ID}:某个讨论组的聊天记录
群组相关的(tb_Troop开头)
tb_TroopAnnouncement:群通知信息tb_TroopMem:目前不知道是用来干啥的,也没看到数据,看字段像是保存群和群成员的表,但是几次实验都没有数据,感觉很奇怪tb_Troop:群列表tb_TroopRemark:用户在不同群的群名称tb_Troop_recent:最近的群聊天记录tb_TroopMsgSeq:群的消息序列tb_TroopMsg_{群号}:某个群的聊天记录
QQ悄悄话(tb_Sec开头)
tb_SecSession:会话列表tb_SecMsg_{tb_SecSession表中的sessionId}:悄悄话消息记录
目前未知的
tb_eimUserSummary:某种用户信息tb_userSummary:某种用户信息
上面就是目前看见到的,所有类型的表,大家似乎觉得没看到用户列表,用户列表根据文件名看,应该是在同级目录下的一个plist文件里面保存着了
第一部分总结一下,QQ为了每个独立的聊天记录处理方便吧,将所有的聊天记录分成了不同的表,每个用户,每个群,每个讨论组都有一个表
聊天记录表
其实真正的主角在这里,我们的聊天记录表,因为QQ就是即时通讯软件,而及时通讯软件的核心就是聊天,那么知道聊天记录里面有些啥,那就知道在处理不同类型消息的时候,通过QQ的聊天记录表,我们可以从中窥得一些QQ在设计数据存储时的取舍和思想,对于聊天记录,这里主要关注如何处理多重类型的消息的
普通的文本聊天
就和我们看见的那样,直接使用聊天文本,对于QQ原生的表情,那跟通过文本看表情一样是使用\表情名称插入到文本中的。
目前看到的是通过图片作为图片名字插入到消息中,之后在一个叫做picUrl的字段里面放入对应图片名字的描述,以及url,具体看图
对于我收到的图片,可以看到图片的链接
可以看得到,对于我发送的图片,并不保存连接的地址,而是直接保存了本地文件的位置,对于我收到的图片,那么连接会保存两个,一个是缩略图的,一个是原图的连接,并且仔细看的话两个连接只是第一个参数不一样,目测第一个参数应该是用来决定图片的大小的,现在看到的是198,之后,我在Documents/QQ号/image_thumbnail路径下找了几个图片看了一下,发现宽高都是在198以内,那么可以知道QQ使用的缩略图的大小是在198以内的图片,如果过长或者过宽,那么等比例缩放。
声音的文件,我们从聊天数据里面来看,发现很有意思的是,文件的信息也是用过picUrl这个字段来记录的,看图
之后在Document/QQ号/Audio路径下能够找到这个声音文件
系统消息类型的,每个系统消息都有一个单独的QQ号,比如兴趣部落这个QQ消息,也是有QQ号的,并且和普通的联系人一样有一个单独的tb_c2cMsg开头的表保存着。
下面是一部分的内容:
&?xml version=&1.0& encoding=&utf-8&?&
http://s.p.qq.com/pub/jump?d=rRv3zzfe
[自拍] 秀自己的自拍姿势啦,不会的进来涨姿势哦!
http://s.p.qq.com/pub/jump?_wv=1027&d=RZbMzFie&st=2&pt=1
http://s.p.qq.com/pub/jump?d=Y3fEAqZf
[90后] 你敢在这里写下你的初吻吗?
http://s.p.qq.com/pub/jump?_wv=1027&d=AYrfiqVZ&st=2&pt=1
http://s.p.qq.com/pub/jump?d=unmeMvjU
[80后] 【就爱滚床单】你的睡姿如何?
http://s.p.qq.com/pub/jump?_wv=1027&d=BQVna2nU&st=2&pt=1
http://s.p.qq.com/pub/jump?d=7q3vrfqZ
[爱情] 说说暗恋一个人最心酸的事是什么?
http://s.p.qq.com/pub/jump?_wv=1027&d=qz3rRnAa&st=2&pt=1
我们来看看对应的消息截图是这样的:
可以看到QQ的系统消息提供的数据是一个xml,里面用cover标记这个消息的标题以及背景,用item标签标记下面每个子项目,每一个item也有自己的title,cover,url这些属性,用来显示标题,封面,还有点击后跳转的连接。
关于表情的更新
在聊天记录中,忽略了一个事情是表情,本来按照我的想象,表情只是纯文字类似/呵呵这样就能显示表情,但是发现,自己输入到qq的/呵呵却没办法正确的显示表情,于是猜测了下,可能QQ用到了隐藏的字符,作为表情的标记,于是做了下面的实验,把表情复制到了自己的app中,打印一下看看
发现果然是这样的,前面多了一个\x14的字符,在看数据库中的记录,因为历史纪录肯定是能显示的,那么数据库中肯定也能查的到
果然在数据库中也有这样的数据,第一个字符是unicode为20也就是x14(十六进制)的字符,去unicode对照表看看,似乎只是一个无关的控制字符,猜想应该是一个占位符,用来标记哪些是用户选择的表情,哪些是用户手工输入的文字,这样用户就不能通过直接编辑框输入/呵呵来发送表情了。
姓名:贾大兵
生日:1992.8
学历:大专
专注:c++、算法、iOS开发
学校:湖北师范学院
爱好:篮球、游戏、美女
目前工作:iOS移动终端开发提示信息iTools论坛
后使用快捷导航没有帐号?
站长推荐 /1
iPhone X换屏贵不贵?
Powered by&>&&>&&>&&>&正文
  当前腾讯的QQ仍然是我们办公和生活主要的即时通讯工具之一,不过最近我们发现iPhone苹果手机用户经常发生误删除QQ聊天记录的情况。一旦QQ聊天记录被误删除了我们该怎么办呢?这时不要着急应该立即关闭QQ工具,由于QQ所使用的数据库对于删除的记录并没有真正的物理删除,只是打上了删除标记的逻辑删除,只要恢复及时还是有可能恢复的。在这里小编将为大家介绍一种苹果QQ记录的删除恢复方法,该方法非常简单对于一般的手机用户都可以独立操作,仅仅需要三步并且无需发送数据文件,真正的有效保护用户的个人隐私。下面是使用恢复工具MMRecovery实际恢复QQ聊天记录的效果图:
  一、准备工作
  1、首先需要下载必要的工具。
  下载苹果的官方工具iTunes:百度搜索“iTunes” 即可以下载到。
  下载海威的恢复工具MMRecovery:可以在官网下载(www.db-helper.com) 或百度搜索“MMRecovery下载”也可以下载到。
  2、接下来我们开始准备另外一件事,备份手机中QQ数据库文件。
  这里需要借助苹果的iTunes工具,备份过程很简单,首先通过USB数据线把电脑和手机进行连接,然后运行iTunes工具。如下图接下来操作步骤是:
  (1)、点击顶部工具栏中的手机图标按钮
  (2)、点击“摘要”节点
  (3)、选择备份到“本电脑”(一定不要勾选“给iPhone备份加密”选项)
  (4)、点击“立即备份”按钮(将会弹出备份确认对话框)
  (5)、点击“不备份应用程序按钮”。备份一般时间不会太长,请耐心等待。上面蓝色进度条到达尾部就表示结束了,备份成功后会在“立即备份“按钮的下方显示最新的备份时间。
  二、恢复过程
  然后我们使用QQ恢复工具进行QQ聊天记录恢复 (接下来就不需要手机了,可以拔掉数据线了),执行过程非常简单方法如下。
  1、 开始恢复QQ聊天记录
  运行QQ恢复工具MMRecovery,如下图首先点击“文件”菜单,再点击“打开QQ库文件”子菜单,最后再点击“iTunes备份QQ库文件”子菜单,将会弹出“iTunes备份QQ恢复”对话框。
  2、 恢复指定QQ号的聊天记录
  在“iTunes备份QQ恢复”对话框中,如下图点击“打开QQ库文件”按钮,就能查看需要恢复QQ号的聊天记录了。如果有多个QQ号,可以通过QQ号的下拉框进行选择。
  3、 恢复并查看用户的聊天记录
  如QQ聊天记录恢复效果图(第一张图)中双击左侧QQ联系人,右侧将会显示当前联系人的聊天记录,在第一张图中红色方框中的“37”表示恢复出来的已被删除的聊天记录的数量。该工具还提供不留死角的碎片扫描功能,能够做到残留记录彻底恢复绝不遗漏任何一条有价值的信息,该功能可以在MMRecovery恢复工具的文件菜单中找到。
  小编推荐的QQ恢复方法,是借助海威的QQ恢复工具MMRecovery来实现的(官网下载:www.db-helper.com)。该工具是一个全面的手机通讯消息的恢复软件,可以实现对安卓和苹果手机的微信、QQ、短信以及陌陌删除聊天记录的快速恢复,建议下载软件后参照自带的教程来完成相关的恢复操作。
提示:支持键盘“← →”键翻页

我要回帖

更多关于 iosqq聊天记录文件 的文章

 

随机推荐