Android微信撤回消息如何恢复?「建议收藏」

Android微信撤回消息如何恢复?「建议收藏」2019新年已经在向我们招手,马上就是春节啦!小编提前在这里给大家拜个早年!今天给大家带来年底最后一篇技术文章,祝大家新的一年在电子数据取证工作上势如破“猪”!在日常办案过程中,技术人员常会处理有关微信聊天数据的恢复工作。其中有一类消息比较特殊,那就是撤回消息,它不属于删除消息,但是形式却与删除消息类似,亦即被撤回之后的消息也是不可见的,并且很难被提取。在这篇文章中,我们就对Android撤…

大家好,又见面了,我是你们的朋友全栈君。

2019新年已经在向我们招手,马上就是春节啦!小编提前在这里给大家拜个早年!今天给大家带来年底最后一篇技术文章,祝大家新的一年在电子数据取证工作上势如破“猪”!

在日常办案过程中,技术人员常会处理有关微信聊天数据的恢复工作。其中有一类消息比较特殊,那就是撤回消息,它不属于删除消息,但是形式却与删除消息类似,亦即被撤回之后的消息也是不可见的,并且很难被提取。
在这篇文章中,我们就对Android撤回消息的恢复进行简单的探讨。

关于微信撤回消息

从微信6.6版本到如今微信7.0版本,都有一个功能:撤回消息可以重新编辑。即在发送消息被撤回之后的2分钟内点击重新编辑,可以对撤回的消息进行再编辑,2分钟以后如果没有编辑操作就会自动消失。

A1.jpg

从该功能不难发现,撤回消息其实是存放在某文件中,而不是撤回之后就立即删除。

微信撤回消息恢复难点

那撤回消息究竟存放在哪里呢?通过研究发现,撤回消息被存放于微信用户账号文件夹下的FTS5IndexMicroMsg.db-journal文件中。

1549073009296022766.jpg

而在实际的办案过程中,可能会因为一些误操作(比如设备关机、重启、退出微信等)而使得存放撤回消息的缓存文件被清除,从而不能正常恢复出撤回消息,这就给办案工作人员带来不少困扰。
下面就将具体的Android撤回消息恢复步骤和大家分享,仅供参考!

具体操作步骤

1、事前准备
1)操作手机
一个能够获取数据的Android设备:以OPPO R11 plus(Android版本7.1.1,具有root权限)为例进行讲解;
确保Android设备中的微信存在过撤回消息;

2)数据查找工具
winhex:用于查看缓存文件的二进制值

2、模拟创造需恢复的数据

1549073102922024275.jpg

△模拟操作数据

3、查找微信撤回数据缓存文件
1)通过adb指令获取输入模拟数据之后的FTS5IndexMicroMsg.db-journal文件;
2)使用winhex打开获得的缓存文件,搜索模拟录入的数据,发现未找到。

1549073140578073584.jpg

4、重启手机设备(在重启前不退出微信)
1)重启手机设备之后,打开微信,输入一条测试数据,如“dianzishujuquzheng”,并将其撤回。

1549073181063052431.jpg

△测试数据

2)再次输入adb命令得到FTS5IndexMicroMsg.db-journal文件,然后通过分析,找出开始所录入的模拟数据,如下图所示。

1549073217438039782.jpg

注意事项

1、因为数据是存放在缓存中的,所以变化的频率过高,使得恢复的效果需根据实际情况而定。
2、通过对比测试之后,发现以下两种情况可以通过上述方式恢复被撤回消息:
退出应用被清除缓存文件;
重启手机被清除缓存文件;
3、对中英文不同数据对比后发现,英文的效果比中文好,因中文一般为utf-8编码,一个中文通常占多个字节,所以容易被打散,很难获得较为完整的消息。
4、对于不同型号设备,不同系统版本,恢复效果也有较大差异,本文仅提供参考思路,具体恢复操作需结合实际情况实际分析。


本文,我们介绍了一种恢复微信撤回消息缓存文件的方法,主要目的是和大家分享一种在恢复不出撤回消息时(注:因关机、重启或退出应用而使得缓存文件被清除或修改)的分析思路和操作方法。

但在实际场景中需慎用,因为需要连接网络,可能被人通过远程清除所有数据等,请联系专业人员进行操作。

如对文中的操作、描述有任何疑问,或者有相关数据恢复案件协助支持也可以直接在微信公众号后台给我们留言。

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/147638.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • Android开发——RelativeLayout.LayoutParams的使用「建议收藏」

    Android开发——RelativeLayout.LayoutParams的使用「建议收藏」前言在日常的Android开发当中,我们少不了需要动态改变控件在RelativeLayout界面的位置。那么我们就需要使用到RelativeLayout.LayoutParams。RelativeLayout.LayoutParamsRelativeLayout.LayoutParams是一个RelativeLayout的布局参数,我们改变控件的就需要使用到。初始化//包裹内容Rel…

    2022年7月17日
    24
  • python字符串截取方法_python从后往前截取字符串

    python字符串截取方法_python从后往前截取字符串Python截取字符串使用变量[头下标:尾下标],就可以截取相应的字符串,其中下标是从0开始算起,可以是正数或负数,下标可以为空表示取到头或尾。#例1:字符串截取str=’12345678’printstr[0:1]>>1 #输出str位置0开始到位置1以前的字符printstr[1:6] >>23456 #输出str位置1开始到位置6以前的字符num=18str=’0000’+str(num) #合并字符串print

    2022年9月27日
    0
  • Nginx编译配置脚本篇(10)- Makefile相关脚本[通俗易懂]

    Nginx编译配置脚本篇(10)- Makefile相关脚本[通俗易懂]Nginx编译配置脚本篇(10)-Makefile相关脚本1、相关文章2、前言3、auto/make脚本文件详解3.1、输出调试信息表示创建objs/Makefile文件3.2、创建存放目标文件的目录3.3、设置ngx_objs_dir和ngx_use_pch3.4、输出编译参数相关信息到objs/Makefile文件中3.5、根据NGX_PERL_CFLAGS输出信息到objs/Makefile文件中3.6、输出ALL_INCS变量到objs/Makefile文件中3.7、输出CORE_DEPS和COR

    2022年6月4日
    43
  • 手机APP测试(测试点、测试流程、功能测试)

    手机APP测试(测试点、测试流程、功能测试)1、功能测试1.1启动APP安装完成后,是否可以正常打开,稳定运行APP的速度是可以让人接受,切换是否流畅网络异常时,应用是否会崩溃:在请求超时的情况下,如果程序逻辑处理的不好,就有可能发生

    2022年7月3日
    26
  • C语言格式输出

    C语言格式输出格式说明由“%”和格式字符组成,如:%d%f等。它的作用是将输出的数据转换成指定的格式输出。格式说明总是由“%”字符开始的。格式字符有:d、o、x、u、c、s、f、e、g等。1、%d整形输出,%ld长整形输出。2、%o以八进制数形式输出整数。3、%x以十六进制形式输出整数,或输出字符串的地址。4、%u以十进制数输出unsigned型整数(无符号数)。注意:%d与%u有无符号数值范围。5、%c用来输出一个字符。6、%s用来输出一个字符串。7、%f用来输出实数,以小数形式输出,默认情况下保留小数

    2022年7月24日
    7
  • Java中static的作用详解_Java中static变量作用和用法详解

    Java中static的作用详解_Java中static变量作用和用法详解Java中static变量作用和用法详解发布于2020-7-23|复制链接Java中被static修饰的成员称为静态成员或类成员。它属于整个类所有,而不是某个对象所有,即被类的所有对象所共享。静态成员可以使用类名直接访问,也可以使用对象名进行访问.下面我们来详细了解一下吧前言static表示“全局”或者“静态”的意思,用来修饰成员变量和成员方法,也可以形成静态static代码块,但是Jav…

    2022年7月15日
    12

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号