【日常】如何将微信中对方所撤回的消息恢复?——电脑PC端微信教程:附源码[通俗易懂]

【日常】如何将微信中对方所撤回的消息恢复?——电脑PC端微信教程:附源码[通俗易懂]1前言寻找微信撤回的图片是不少人一直在寻找的方法但苦于在网上一直找不到结果因此本文提出了一种可以找到微信撤回图片的方法。区别于网上其他的不可用代码,本文能成功恢复!2原理之前的说法是,工程师并没有真正把撤回的图片删除,而是加密后藏起来了。其实这样说并不严谨,经过后续测试,发现PC端的确如此,而手机端(Android)撤回的图片是有删除的,但是删除的不干净。2.1PC端微信所有接收到的图片都储在:C:\Users\你的用户名\Documents\WeChatFiles\wxid_你

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

1 前言

寻找微信撤回的图片是不少人一直在寻找的方法

但苦于在网上一直找不到结果

因此本文提出了一种可以找到微信撤回图片的方法。

区别于网上其他的不可用代码,本文能成功恢复!

2 原理

之前的说法是,工程师并没有真正把撤回的图片删除,而是加密后藏起来了。其实这样说并不严谨,经过后续测试,发现PC端的确如此,而手机端(Android)撤回的图片是有删除的,但是删除的不干净。

2.1 PC端

微信所有接收到的图片都储在:

C:\Users\你的用户名\Documents\WeChat Files\wxid_你的微信ID\FileStorage\Image\日期

里面有一堆以.dat为后缀的文件,他们大小不一,都经过了加密。而加密的方法便是对字节逐一解密。
在这里插入图片描述

加密后的字节 = 原始字节 ^ 0x51。为了方便,我们把0x51称作“magic码”。

其中,magic码不一定是0x51,有的机器是0x50。经过一些测试,结论是,magic码与微信号有关,即不同的微信号在同一台机器可能得到不同的magic码,而同一个微信号在不同的机器上得到了相同的magic码。因此,magic码是由微信号或者微信ID计算得来的。

其次,.dat文件是图片,而对于JPEG的图片,其对应二进制的第一个字节是0xFF。

根据此原理,我们使用以下算法进行解密:.dat文件对应二进制的第一个字节 = 0xFF ^ magic码,求magic码。

我们已经知道,如果C=AB,则AC=(AA)B,而AA=0,所以AC=B,即B=A^C。

magic码 = 0xFF ^ 已知.dat文件对应二进制的第一个字节。

3 得到最终的复原方法:

3.1 调用我们写的恢复函数:

在这里插入图片描述

3.2 源文件:

在这里插入图片描述

3.3 恢复文件:

在这里插入图片描述

在这里插入图片描述

4 附上源码:

https://download.csdn.net/download/weixin_39589455/85300198

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

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

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


相关推荐

  • 采用虚拟存储技术_虚拟存储管理

    采用虚拟存储技术_虚拟存储管理虚拟存储技术(VIRTUALMEMORY)所谓的虚拟存储技术是指:当进程运行时,先将其一部分装入内存,另一部分暂留在磁盘,当要执行的指令或访问的数据不存在内存中时,由操作系统自动完成将它们从磁盘调入内存的工作。虚拟地址空间—–分配给进程的虚拟内存虚拟地址—–在虚拟内存中指令或数据的位置,该位置可以被访问,仿佛它是内存的一部分。

    2022年9月26日
    0
  • Spring Data JPA 写SQL语句也可以如此简单

    Spring Data JPA 写SQL语句也可以如此简单在使用SpringDataJPA的时候,通常我们只需要继承JpaRepository就能获得大部分常用的增删改查的方法。有时候我们需要自定义一些查询方法,可以写自定义HQL语句像这样/***根据关注者id查找所有记录(查找关注的人的id)**@paramfromUserId*@return*/…

    2022年10月20日
    0
  • Python生成exe文件的方法及步骤

    Python生成exe文件的方法及步骤为什么要生成可执行文件不需要安装对应的编程环境 可以将你的应用闭源 用户可以方便、快捷的直接使用打包工具pyinstaller安装pyinstaller如果你的网络稳定,通常直接使用下面的命令安装即可:pipinstallpyinstaller检查pyinstaller安装成功与否:只需要执行如下命令其中一个即可:pyinstaller-vpyi…

    2022年6月9日
    51
  • 机器学习:Multinoulli分布与多项式分布

    机器学习:Multinoulli分布与多项式分布学习深度学习时遇见multinoulli分布,在此总结一下机器学习中常用的multinoulli分布与多项式分布之间的区别于关系,以便更好的理解其在机器学习和深度学习中的使用。首先介绍一下其他相关知识。Bernoulli分布(两点分布)Bernoulli分布是单个二值随机变量的分布。它由单个参数控制,给出了随机变量等于1的概率。             …

    2022年10月12日
    0
  • 关于ASp.net中的session失效问题的解决办法之一

    关于ASp.net中的session失效问题的解决办法之一
    在Web.config中的sessionstate段中 加入cookieless=”true”。一般即可解决问题。

    2022年7月16日
    11
  • ES6 模板字符串方法[通俗易懂]

    ES6 模板字符串方法[通俗易懂]ES5中在JS中写一个模块是这样的:varcontent=’’+’’+title+’’+’’在ES6中可以这样:let这里就直接写不用引号什么的<div>${变量}<div>方便快捷用的是两个烦引号“来包裹模块…

    2022年8月21日
    4

发表回复

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

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