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解密工具安装教程
安装布局如图
如果openssl安装在C盘默认位置, 可以实验编译好的pysqlcipher3库
安装情况
- OpenSSL 安装
下载地址
测试3.3.0版本没问题
注意右侧描述要有 Recommended for software developers…
- cudnn安装
下载地址
gpu-z 查看是否支持opencl
下载地址
- ActiveTcl 安装
下载地址
安装教程
测试8.16.13版本没问题
设置情况变量
TCLDIR=【tcl 安装目次/bin】
- visual studio
打开安装程序, 工作负荷中找到桌面应用和移动应用, 选择使用C++的桌面开辟
- python 3.7
安装anaconda(推荐)或直接安装python3.7
安装工具
- 新建文件夹WxDecrypt, 使用git工具克隆
sqlite
sqlcipher
pysqlcipher3
SQLCipher-Password-Cracker-OpenCL
到当地目次 /WxDecrypt
- 从 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
- 从sqlcipher天生sqlite3.c, sqlite3.h
cd 到 /sqlcipher 目次
nmake /f Makefile.msc sqlite3.c
打开sqlite3.c, 合适位置添加
#include "opcodes.h"
在上一个文件夹搜索sqlite3OpcodeName函数实现, 和OpHelp宏, 复制到sqlite3.c合适位置
复制sqlite3.c和sqlite3.h到**/pysqlcipher3/amalgamation**
- 天生 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 目次
- 修改新版本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))
复制代码 - 测试&运行
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
即可
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。 |