windows下解密Android和PC威信数据库

xingyun86 2019-8-7 3794

本文不涉及如何获取微信数据库原理及解密原理(这部分代码网上已经非常非常多了),假设前提是都已经获取了两个数据,分别是加密库EnMicroMsg.db,解密密钥aaaaaaa。

我们知道,微信数据库是使用sqlcipher进行加密的。因此,使用sqlcipher解密即可。

步骤如下:

1、网上下载sqlcipher-3.0.1 for windows版本

2、进入下载文件的bin目录,将加密库EnMicroMsg.db放到该目录下,shirt+右键打开命令行窗口

3、执行对应版本的命令,例如我使用的win64位系统,则命令行输入

sqlcipher-shell64.exe EnMicroMsg.db

4、输入

PRAGMA key='aaaaaaa';
PRAGMA cipher_migra;
ATTACH DATABASE = "decrypted_database.db" AS decrypted_database KEY "";
SELECT sqlcipher_export("decrypted_database");
DETACH DATABASE decryped_database;

此时,查看该目录下已经生成decrypted_database.db,这就是解密之后的sqlite文件。

=================================================================

读取PC版微信数据库(电脑版微信数据库)内容

1、PC版微信的密钥是32位byte,不同于安卓版(7位字符串)

2、通过OD或者x96dbg可以从PC端获取这个key,具体不做赘述。我自己写了一个程序,这样方便些

3、sqlcipher是可以直接输入Raw key的,但是不清楚是否加密规则与微信电脑版一致。

4、网上有c++代码,直接使用openssl 1.0.x版解密数据库,因为sqlcipher也是用这个生成的mac-key,然后AES加密。所以可以自己写代码调用openssl解密。

5、编译c++代码需要做若干配置,加载openssl的头文件和lib之后才能编译。 

解密之后的数据库可以直接用工具软件打开,不再需要密码。如下图:

×
打赏作者
最新回复 (0)
只看楼主
全部楼主
返回