-
-
[原创]微信 PC端 数据库 自动解密
-
发表于:
2021-7-22 15:43
31163
-
环境:
win10家庭中文版 10.0.19043 x64(本机)
微信 3.3.0.115
openssl-1.0.2r
PC密码为32字节。
手动流程参考看雪另一位dalao整理的文章,链接见最后的参考处。我主要是把整个过程实现了自动化,顺便复习了一下api hook。
打开微信(不点登录)。
打开Odb附加WeChat.exe。
查找->可执行模块->WeChatWin。
用插件找ASCII字符串(我打了中文搜索补丁,直接用中文搜索的搜索ASCII字符串)。
然后搜索字符串DBFactory::encryptDB
,跳转到第一次出现该字符串的位置。这里旧版本可能是第二个字符串的位置。3.3版本我找到了两个,都跳转过去看看,其中一个push语句下面有一个TEST,另一个只有一个call就return了。要找的是有TEST那个。
该TEST语句就是比较密码的地方,双击设置断点。然后运行并登录。
停在断点时,选择edx在数据窗口中跟随。
然后把从edx开始的32字节的数据dump出来,该32字节的数据就是密码。
需要用到openssl,据说sqlcipher用的是最低版本的openssl。这里使用1.0.2u。
首先安装perl。(http://www.activestate.com/activeperl/downloads/)
然后运行 x86 Native Tools Command Prompt for VS 2019 这个shell。
激活perl环境
编译
检查
安装
奇怪的是最后还是安装到了E:\usr\local\ssl\这个目录下
这里分享vs2019解密的过程。
在项目的属性页 -> C/C++ -> 常规 -> 附加包含目录 中添加openssl的include目录。
在项目的属性页 -> 链接器 -> 常规 -> 附加库目录 中添加openssl的include目录。
在项目的属性页 -> 链接器 -> 输入 -> 附加依赖项 中添加libeay32.lib和ssleay32.lib。
然后编译运行看雪文章中的代码。(链接见参考)
[招生]科锐逆向工程师培训(2024年11月15日实地,远程教学同时开班, 第51期)
最后于 2021-7-23 15:27
被wx_御史神风编辑
,原因: 修改错误,更新附件