
前言:
在电子取证过程中,也会遇到提取PC版WX数据的情况,看雪、52破解和优快云等网上的PC版WX数据库破解文章实在是太简略了,大多数只有结果没有过程。经过反复试验终于成功解密了数据库,现在把详细过程记录下来,希望大家不要继续在已经解决的问题上过度浪费时间,以便更投入地研究尚未解决的问题。
通过查阅资料得知,与安卓手机版WX的7位密码不同,PC版WX的密码是32字节(64位),加密算法没有说明,但是可以通过OllyDbg工具从内存中获取到这个密码,然后通过一段C++代码进行解密。
首先下载OllyDbg 2.01汉化版,我用的版本如下图所示:

运行OllyDbg,然后运行PC版WX(需要下载客户端的,不是网页版)。先不要点击登录按钮。

切换到Ollydbg界面:

点击文件菜单,选择“附加”,在弹出的对话框中找到名称为WeChat的进程,其窗口名称为“登录”。然后点击“附加”。

附加成功后OllyDbg开始加载,成功加载后可以看到最上面OllyDbg后面有WeChat.exe的字样:

在查看菜单中选择“可执行模块”:

找到名称为WeChatWin的模块,双击选中。为了方便观察,在窗口菜单中选择水平平铺。在CPU窗口标题栏可以看到“模块WeChatWin”字样。

在插件中选择“StrFinder字符查找”中的“查找ASCII字符串”(注意如果下载的OllyDbg版本不对,可能没有相关插件,因此一定要找对版本),要稍微等一会儿,会出现搜索结果的窗口。

在此窗口点击鼠标右键,选择“Find”,在搜索框中输入“DBFactory::encryptDB”。

会自动定位在第一处,但我们需要的是第二处,即“encryptDB %s DBKey can’t be null”下面这一处。可以用鼠标点击滚动条向下,找到第二处,用鼠标双击此处。

在CPU窗口中可以看到已经定位到了相应的位置。用鼠标点击滚动条向下翻。

下面第六行应该是TEST EDX,EDX,就是用来比对密码的汇编语言代码。在最前面地址位置(本文中是0F9712BA)双击设置断点(设置断点成功则地址会被标红,而且可以在断点窗口中看到设置成功的断点)

本文详细介绍了如何使用OllyDbg工具从PC版微信内存中提取加密密码,并通过C++代码进行解密。首先,通过OllyDbg附加微信进程,找到加密密码,然后编写C++代码利用OpenSSL库进行解密操作。解密后的数据库文件可以使用sqlite管理工具打开。教程还提供了代码示例和解密过程的完整步骤。
最低0.47元/天 解锁文章
8万+





