开始前的例行叨叨:
被折磨很久了...orz。
如果只想解密微信数据库看看大概内容,不需要看这篇重编译sqlcipher!!
本篇是为了导出dll实现自定的搞基呸,高级功能。
背景知识:
1、手机root后才能在手机微信目录下找到uuid算出微信数据库密码。
2、安卓微信数据库是sqlite数据库,被sqlcipher加密。数据库文件EnMicroMsg.db已从root过的手机中获取。
3、sqlcipher是一种开源加密软件,采用全局整体加密,sqlite免费版无加密功能,所以微信用了sqlcipher2.1.1。
4、重编译sqlcipher需要openssl支持,不要慌,文章会讲从头编译openssl,sqlcipher2.1.1需要openssl-1.0.1g版本。
【如果以上不太明白看这里的资料】
【破解微信数据库原理】https://blog.youkuaiyun.com/njweiyukun/article/details/54024442
【微信数据库密码的获取】https://blog.youkuaiyun.com/jiangwei0910410003/article/details/52238891
目的:
从源码编译sqlcipher,可以修改源码,封装新的函数,导出dll。
让我们的c++程序可以调用这个dll中的函数,操作解密sqlcipher。
环境需求:
1、安了visual stdio2017 用来写c++和用它的自带工具辅助编译。
2、安装ActivePerl因为要执行perl代码。
3、下载并安装 Nasm 汇编器,并将 D:\Program Files\NASM
添加到系统环境变量 Path 中。
4、比较麻烦的是安装MinGW下载其中的各种依赖,编译sqlcipher要用到。
【如果以上环境都OK就可以继续了】
【不行的话可以参考这篇安装1-3】
https://blog.youkuaiyun.com/liang19890820/article/details/51658574
【参考这篇安装4】
http://www.360doc.com/content/17/1203/15/8728596_709509894.shtml
(话说。。以上环境诚然对新手不友好,慢慢安,不要急躁~)
(虽说直接跳过详细环境配置步骤有点让人想打作者,但毕竟本篇的中心是讲后续呀)
编译openssl
这里为了支持sqlcipher2.1.1我们使用openssl-1.0.1g.tar.gz版本
官网可自行选择下载需要的版本。
(此处假装有下载链接)
1、解压openssl-1.0.1g.tar.gz到目录,用cmd进入此目录。
2、perl Configure VC-WIN32 --prefix=D:\bs\show\opensslbuild
这行命令是设定编译好的openssl放到哪个路径的opensslbuild文件夹,这个文件夹不存在也没关系,会自己建的。
必须安好ActivePerl设好环境变量才能成功执行perl命令。