适用于移动端微信8.x版本的加密数据库解密工具

Wechat On Android Decrypt-EnMicroMsg.db

本文Gitee链接地址

介绍

适用于移动端微信8.x版本的加密数据库解密工具

参考链接

[1] https://ssine.ink/posts/wechat-data-decryption/ (主要参考)

[2] https://github.com/chg-hou/EnMicroMsg.db-Password-Cracker (cpu解密程序)

[3] https://github.com/whiteblackitty/SQLCipher-Password-Cracker-OpenCL (gpu解密程序)

[4] https://www.cnblogs.com/ant-wjf/p/4117460.html

CPU解密工具安装教程

参考[1] 和 [2]

GPU解密工具安装教程

安装结构如图

install graph

如果openssl安装在C盘默认位置, 可以尝试编译好的pysqlcipher3库

安装环境
  1. OpenSSL 安装

    下载地址
    测试3.3.0版本没问题
    注意右侧描述要有 Recommended for software developers…

  2. cudnn安装

    下载地址
    gpu-z 查看是否支持opencl
    下载地址

  3. ActiveTcl 安装

    下载地址
    安装教程
    测试8.16.13版本没问题
    设置环境变量
    TCLDIR=【tcl 安装目录/bin】

  4. visual studio

    打开安装程序, 工作负荷中找到桌面应用和移动应用, 选择使用C++的桌面开发

  5. python 3.7

    安装anaconda(推荐)或直接安装python3.7

安装工具
  1. 新建文件夹WxDecrypt, 使用git工具克隆

    sqlite
    sqlcipher
    pysqlcipher3
    SQLCipher-Password-Cracker-OpenCL
    到本地目录 /WxDecrypt

  2. sqlite 库生成opcodes.h

    Windows程序和应用中搜索Developer Command Prompt for VS xxxx
    cd 到 /sqlite目录
    nmake /f Makefile.msc
    打开opcodes.h, 193行添加
    #define OP_IfSmaller 190
    复制opcodes.h/pysqlcipher3/amalgamation

  3. sqlcipher生成sqlite3.c, sqlite3.h

    cd 到 /sqlcipher 目录
    nmake /f Makefile.msc sqlite3.c
    打开sqlite3.c, 合适位置添加
    #include "opcodes.h"
    在上一个文件夹搜索sqlite3OpcodeName函数实现, 和OpHelp宏, 复制到sqlite3.c合适位置
    复制sqlite3.csqlite3.h到**/pysqlcipher3/amalgamation**

  4. 生成 pysqlcipher3

    cd 到 /pysqlcipher3 目录
    打开 /setup.py , 69行改为
    quote = '"' if sys.platform != 'win32' else '\"'
    build_extension 方法中的 if 改为

            if sys.platform == "win32":
                # Try to locate openssl
                openssl_conf = os.environ.get('OPENSSL_CONF')
                if not openssl_conf:
                    error_message = 'Fatal error: OpenSSL could not be detected!'
                    raise RuntimeError(error_message)
    
                # openssl = os.path.dirname(os.path.dirname(openssl_conf))
                openssl = "C:\\Program Files\\OpenSSL-Win64"
                openssl_lib_path = os.path.join(openssl, "lib\\VC\\x64\\MD")
    
                # Configure the compiler
                ext.include_dirs.append(os.path.join(openssl, "include"))
                ext.define_macros.append(("inline", "__inline"))
    
                # Configure the linker
                ext.extra_link_args.append("libcrypto.lib")
                ext.extra_link_args.append("libssl.lib")
                ext.extra_link_args.append('/LIBPATH:' + openssl_lib_path)
            else:
                ext.extra_link_args.append("-lcrypto")
    

    其中 openssl 为OpenSSL安装路径
    编译成功后将 /pysqlcipher3/build/lib.win-amd64-cpython-37/pysqlcipher3 复制到 /SQLCipher-Password-Cracker-OpenCL 目录

  5. 修改新版本EnMicroMsg.db判定头

    cd 到 SQLCipher-Password-Cracker-OpenCL 目录
    修改 /Lib/pbkdf2-sha1_aes-256-cbc.cl, 第752行

        //if(((uint)(data[0] ^ iv[0])==4) && ((uint)(data[1] ^ iv[1])==0) && ((uint)(data[2] ^ iv[2])==1) && ((uint)(data[3] ^ iv[3])==1))
        if(((uint)(data[5] ^ iv[5])==0x40) && ((uint)(data[6] ^ iv[6])==0x20) && ((uint)(data[7] ^ iv[7])==0x20))
    
  6. 测试&运行

    python genTestDB.py [password] 创建加密数据库
    修改 /Run.py 中加密数据库路径
    python Run.py 检查平台参数
    python Run.py [platform number] 运行解密程序

如何从安卓手机提取EnMicroMsb.db

手机微信文件提取:小米9为例, 免root

环境

MIUI 12.5.6稳定版, 未解锁

微信8.0.25

Windows10 64bit

java8

使用工具

winhex

android-backup-tookit

7zip

提取步骤

MIUI 12.5.6稳定版, 未解锁

选择备份到电脑

将备份文件复制到电脑

使用winhex打开备份文件.bak

选择41 4E之前的数据, 右键, edit, remove, 删除41 4E之前的数据

操作完成后ctrl+s保存

将修改后的文件拖到“一键解包.bat”批处理上, 等待几分钟(取决于电脑性能和bak文件大小,可以观察硬盘读写状态)

就得到.tar文件

使用7zip解压.tar文件得到微信的原始包

聊天记录在\apps\com.tencent.mm\r\MicroMsg\4de5***********d326\EnMicroMsg.db这个数据库是加密的, 需要解密

参考资料

[1] https://www.feifeiboke.com/android/3669.html

[2] https://android.stackexchange.com/questions/28481/how-do-you-extract-an-apps-data-from-a-full-backup-made-through-adb-backup/78183#78183

[3] http://www.liekang.com/248106.html

环境及工具

java

android-backup-tookit

7zip

解包工具

解包工具里面的abe.jar 不能解析5.0版本的ab包, 这里换成 android-backup-tookit\android-backup-processor\executable 路径下的abp.jar文件.

abp.jar放到一键解包.bat目录下

一键解包.bat里的

java -jar "%~dp0\abe.jar" unpack %bakFile% %bakFile%.tar

修改为

java -jar "%~dp0\abp.jar" unpack %bakFile% %bakFile%.tar

即可

  • 7
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值