[TOC]
前言
本文基于anhkgg大佬的文章《微信PC端技术研究(2)-拿下语音》原文链接:https://bbs.pediy.com/thread-249274.htm
anhkgg大佬的这篇文章找到了保存语音消息的接口,这里直接给出相关特征码,方便定位(我使用的微信版本依旧是2.6.8.52)
偏移为0x30E326,下面的特征码
67E3E319 C745 FC 0100000>mov dword ptr ss:[ebp-0x4],0x1
67E3E320 FF77 34 push dword ptr ds:[edi+0x34] ; 长度
67E3E323 FF77 30 push dword ptr ds:[edi+0x30] ; 内容
67E3E326 E8 85F07300 call WeChatWi.6857D3B0
67E3E32B 8D85 58FFFFFF lea eax,dword ptr ss:[ebp-0xA8]
67E3E331 50 push eax
67E3E332 E8 090E0000 call WeChatWi.67E3F140
C745 FC 01000000 FF77 ?? FF77 ?? E8 ???????? 8D85 ???????? 50 E8 ????????
基于保存语音的相关延伸
其实这个地方不单单有语音消息,还有图片消息,当我们发送一条图片消息时
1569046757602.png (142.5 KB, 下载次数: 6)
2019-9-30 11:50 上传
[edi+0x30]的内容里面保存有这一次发送图片的相关数据,包括微信ID等一系列原始的数据。我们当然可以在这个地方写HOOK来保存图片,但是没有必要。因为这里的消息内容过多,处理起来相对会比较麻烦。
图片处理的相关流程
既然这个地方是最原始的消息内容,那么后面肯定会对消息进行相关处理。而且我们已经知道微信的接收的图片会用异或加密的方式保存到本地。那么我们不妨猜测一下图片相关的处理流程。
首先接收到原始的消息后,会对消息进行一系列的处理,其中就包括判断消息是否是图片。那么如果是图片则会取出图片数据,然后在内存中对图片进行加密。加密完成之后调用文件操作的API,写入加密后的图片到本地。
整个过程如图所示:
过程.png (14.23 KB, 下载次数: 2)
2019-9-30 11:54 上传
自动保存图片相关思路
既然了解图片处理的流程,而且已经有了接收