微信缓存到本地的图片文件清理以后,以前已经转存到电脑硬盘中的图片会消失吗?

如题所述

微信缓存到本地的图片文件清理以后,以前已经转存到电脑硬盘中的图片不会消失的,这在二个区域。
温馨提示:答案为网友推荐,仅供参考
第1个回答  2022-01-17
1 回顾
自从发布文章“寻找微信撤回的图片”之后,骗了不少粉啊。
总之,之前提出了一种可以找到微信撤回图片的方法。
2 真相
之前的说法是,工程师并没有真正把撤回的图片删除,而是加密后藏起来了。其实这样说并不严谨,经过后续测试,发现PC端的确如此,而手机端(Android)撤回的图片是有删除的,但是删除的不干净。
2.1 PC端
微信所有接收到的图片都储在[X]:\Users[USER]\Documents\WeChat Files[WECHAT_USER]\Data。里面有一堆以.dat为后缀的文件,他们大小不一,都经过了加密。而加密的方法便是对字节逐一“异或”。
之前的说法是,加密后的字节 = 原始字节 ^ 0x51。为了方便,我们把0x51称作“magic码”。
有网友反馈,magic码不一定是0x51,有的机器是0x50。经过一些测试,结论是,magic码与微信号有关,即不同的微信号在同一台机器可能得到不同的magic码,而同一个微信号在不同的机器上得到了相同的magic码。这里猜测,magic码是由微信号或者微信ID计算得来的。
其实,我们无需关心magic码的计算方式。因为,我们可以肯定的是,.dat文件是图片,而对于JPEG的图片,其对应二进制的第一个字节是0xFF。
所以,问题变成了,已知:.dat文件对应二进制的第一个字节 = 0xFF ^ magic码,求magic码。
我们已经知道,如果C=A^B,则A^C=(A^A)^B,而A^A=0,所以A^C=B,即B=A^C。
magic码 = 0xFF ^ 已知.dat文件对应二进制的第一个字节。
修改后的解密代码:
def _decode_pc_dat(self, datfile):with open(datfile, 'rb') as f:
buf = bytearray(f.read())

magic = 0xff ^ list(buf)[0] if buf else 0x00 #importantimgfile = re.sub(r'.dat$', '.jpg', datfile)with open(imgfile, 'wb') as f:
newbuf = bytearray(map(lambda b: b ^ magic, list(buf)))
f.write(str(newbuf))

2.2 手机端(Android)
之前提到,/sdcard/tencent/MicroMsg/diskcache中存放类似cache.data.10的文件,大小在2MB左右。如果把文件后缀改为.jpg,是可以打开的,JPEG文件里实际上是“串联”了一堆图片,可以通过以下代码把所有的图片拆分出来:
def _decode_android_dat(self, datfile):with open(datfile, 'rb') as f:
buf = f.read()

last_index = 0for i, m in enumerate(re.finditer(b'\xff\xd8\xff\xe0\x00\x10\x4a\x46', buf)): if m.start() == 0: continue

imgfile = '%s_%d.jpg' % (datfile, i) with open(imgfile, 'wb') as f:
f.write(buf[last_index: m.start()])
last_index = m.start()

通过实验,发现这些拆分出来的图片并不包含撤回的图片。坏消息是,在手机端没有找到撤回的图片。好消息是,在微信的缓存文件夹里找到了撤回图片的“缩略图”。肯定是没有大图好看啦,但是如果我们早些年看过一种3GP格式的视频的话,这些缩略图的品质还是可以接受的。至少能知道对方发的是什么。
路径为:/sdcard/tencent/MicroMsg/[USER_HASH]/image2/[HASH1]/[HASH2]/th_[HASH],比如这样:/sdcard/tencent/MicroMsg/202cb962ac59075b964b07152d234b70/image2/6b/3a/th_c4ca4238a0b923820dcc509a6f75849b。给文件名加上.jpg后缀就可以打开啦。
由于缓存文件夹里的文件非常多,建议根据修改时间来定位HASH1和HASH2。
3 并不神奇的0x51
之前说的最大的一个bug是,对于PC端图片的加密,工程师选择了一个神奇的数字0x51与各个字节进行异或。而且我还自圆其说了,说什么0x51是“Q”的ASCII码。为啥选择“Q”呢,因为“QQ”。
不忍直视啊,上面已经解释了,magic码并不固定。最后献上修改后的微信图片解密、找回撤回的图片工具:sdxlp.cn/tool/wechatdat 。本回答被网友采纳
第2个回答  2020-01-13
不会,以前转存的图片不会消失。仍然保存在电脑中。
第3个回答  2021-04-14
微信聊天记录怎么保存?我们在使用微信的过程中,会有一些重要的聊天记录想要保存下来,除了截图、收藏,还有别的好方法吗?当然是有的!今天小编就给大家说说备份微信聊天记录的好方法,下面就来了解下。
怎么备份微信聊天记录?
首先,我们打开手机微信,依次点击“我”-“设置”-“聊天”-“聊天记录备份和迁移”,在这里我们可以看到两个选项,分别为“迁移聊天记录到另一台设备”和“备份聊天记录到电脑”,我们选择第二个选项即可。
点击后页面会出现一个“备份和恢复说明”,这时我们需要用到电脑版微信,才能将聊天记录备份到电脑上。
因此我们需要登录电脑版微信,然后依次点击左下角的【更多】-【备份恢复】,然后将手机和电脑连接到同一个网络下,选择【备份聊天记录到电脑】后按指示操作即可。
微信聊天记录备份后怎么查看?
使用以上的方法备份微信聊天记录后是无法直接查看的,如果你在备份完成后,需要在线预览和导出数据,需要用到“果备份”。这是一款专业的苹果数据备份软件,可以一键备份我们设备中的微信聊天记录、微信通讯录、照片等多项常用数据,具体操作如下:
备份完成后,点击左侧的“微信聊天记录”即可进入备份详情页,除了可以免费在线查看备份好的微信聊天记录,还可以根据自己的需要,勾选需要的数据后,在右下角选择不同的格式将其导出哦!
微信聊天记录怎么保存?以上就是有关微信聊天记录备份与导出的方法了,如果你也想把自己重要的聊天记录保存下来,不妨试试以上的备份方法哦,这样下次如果不小心误删了数据,也能轻松从备份中找回啦~本回答被网友采纳
第4个回答  2020-01-13
我觉得肯定不会不会消失因为你已经保存到电脑上电脑上又没删除那就不会消失
相似回答