当前位置:首页 > 修改聊天记录 > 正文内容

微信PC端数据库文件解密

智商低一等2个月前 (06-09)修改聊天记录224

概述

微信的数据文件根目录(WeChat Files)可以在设置中的“文件管理”选项中查看,通常位于电脑的“文档”文件夹中。这其中有数据库文件以及收到的图片、视频、文件等等,而我们主要讨论的数据库文件,存放于WeChat Files/wxid_xxxxx/Msg之中。这里的wxid_xxxxx也可能是你自己设置的微信号。这个文件夹中有很多文件,可能是用来校验的,我们只需要看.db结尾的 SQLite 文件。不过这些文件是经过 AES 加密的,所以我们需要找到密钥并且解密。

获取密钥

说实话这一步并不怎么一帆风顺,我在最开始做的时候踩了不少坑。完成这一步大致有两个方向,直接用内存分析工具爆破微信(网上的博客中大多也说的是这个方式),不过在 GitHub 上其实有两个项目可以帮我们快速完成这一步:

其中第一个项目在编译时就遇到了困难(本人没用过 C# 和 .NET),我最后是狠下心来跟着这篇教程下了个 VS 才编译出来,也将编译产物上传到了我 Fork 的仓库,然而发给别人用的时候发现似乎兼容性比较差,悲……不过应该说自己在自己的设备上用 VS 编译是最可靠的第二个仓库就方便很多,只要电脑上有 Go 环境直接执行build.bat就行(记得配置go get的代理,否则下载第三方包会很慢)。不过需要说明的是,建议大家只使用它的show_info功能,它的解密极其不可靠。

我这里对 Go 的这个版本也进行了编译,下载地址

如果你使用的是第一个,那么下载好后用管理员身份从命令行运行exe,他就会输出类似下面的格式(中间乱码的WeChatMail忽略就行):

[+] WeChatProcessPID: 15176[+] WeChatVersion: 3.9.2.23[+] WeChatName: XXX[+] WeChatAccount: wxid_xxxxx

[+] WeChatMobile: 1**********
[+] WeChatMail: ?M??@魢#??M????????????T?B??L???3??????f7i?J???M??h?v??M??`?v????????T?B?J?3?????f7
[+] WeChatKey: 92AD63A674************************222544426[+] Done

如果是第二个,双击启动之后输入show_info并回车,会有类似这样的输出:

>>show_info

WeChat Version: 3.9.2.23
WeChat NickName: XXX
WeChat Account: wxid_xxxxx
WeChat Mobile: 1**********WeChat Key: 92AD63A674************************222544426

其中的WeChatKey就是我们解密数据库文件需要的 AES 密钥。

解密数据库

打开微信数据文件所在的目录,例如我的是 D:\Documents\WeChat Files\wxid_r5xxxxxxxxxx12\Msg,将这里面的所有.db文件复制到一个新的文件夹中(别忘了Multi文件夹中还有一些),然后可以通过下面的 Python 脚本进行解密(在前两行输入好你的文件所在目录):

input_pass = '92AD63A674************************222544426'input_dir = r'D:\微信数据库文件'import ctypesimport hashlibimport hmacfrom pathlib import Pathfrom Crypto.Cipher import AES

SQLITE_FILE_HEADER = bytes('SQLite format 3', encoding='ASCII') + bytes(1)
IV_SIZE = 16HMAC_SHA1_SIZE = 20KEY_SIZE = 32DEFAULT_PAGESIZE = 4096DEFAULT_ITER = 64000password = bytes.fromhex(input_pass.replace(' ', ''))def decode_one(input_file):
    input_file = Path(input_file)    with open(input_file, 'rb') as (f):
        blist = f.read()    print(len(blist))
    salt = blist[:16]
    key = hashlib.pbkdf2_hmac('sha1', password, salt, DEFAULT_ITER, KEY_SIZE)
    first = blist[16:DEFAULT_PAGESIZE]
    mac_salt = bytes([x ^ 58 for x in salt])
    mac_key = hashlib.pbkdf2_hmac('sha1', key, mac_salt, 2, KEY_SIZE)
    hash_mac = hmac.new(mac_key, digestmod='sha1')
    hash_mac.update(first[:-32])
    hash_mac.update(bytes(ctypes.c_int(1)))    if hash_mac.digest() == first[-32:-12]:        print('Decryption Success')    else:        print('Password Error')
    blist = [
        blist[i:i + DEFAULT_PAGESIZE]        for i in range(DEFAULT_PAGESIZE, len(blist), DEFAULT_PAGESIZE)
    ]    with open(input_file.parent / f'decoded_{input_file.name}', 'wb') as (f):
        f.write(SQLITE_FILE_HEADER)
        t = AES.new(key, AES.MODE_CBC, first[-48:-32])
        f.write(t.decrypt(first[:-48]))
        f.write(first[-48:])        for i in blist:
            t = AES.new(key, AES.MODE_CBC, i[-48:-32])
            f.write(t.decrypt(i[:-48]))
            f.write(i[-48:])if __name__ == '__main__':
    input_dir = Path(input_dir)    for f in input_dir.glob('*.db'):
        decode_one(f)

这个脚本可以将你设置的目录下的所有.db文件进行解密,例如对于abc.db,会生成decoded_abc.db文件。特别说明的是,如果复制出来后你的Multi文件夹还是独立的一个文件夹,需要分别对D:\微信数据库文件操作和D:\微信数据库文件\Multi进行操作。

另外,xinfo.db无需解密,可直接查看。

解密后,你就可以通过任意一个你喜欢的数据库可视化查看工具查看这些数据库了。


扫描二维码推送至手机访问。

版权声明:本文由手机数据加工厂发布,如需转载请注明出处。

本文链接:https://gaijilu.com/?id=277

“微信PC端数据库文件解密” 的相关文章

微信聊天记录和时间可以修改吗?详细修改教程

微信聊天记录和时间可以修改吗?详细修改教程

微信上的聊天记录和时间可以修改吗?每条微信聊天记录一旦发送成功,这条记录将会在自己手机和对方手机的数据库中保存,想要修改聊天记录或时间可以通过修改手机微信数据库中的数据来达到修改的目的。当然,简单的修改可以通过微信记录截图,再通过图片处理软件将截下来的图片进修改。然而在下文中将是给大家介绍如何修改微...

苹果手机微信分身全解析,一机双号,轻松实现!

苹果手机微信分身全解析,一机双号,轻松实现!

在这个快节奏的时代,微信已成为我们生活中不可或缺的一部分。无论是工作还是生活,微信都扮演着重要的角色。然而,有时我们需要在同一台手机上同时管理两个微信账号,比如一个用于工作,一个用于生活。苹果手机用户常常对此感到困惑:苹果手机是否支持微信分身?能否同时登录两个微信账号?今天,我将和大家分享一些实用的...

为什么你的手机总卡顿?关闭这10个隐藏设置,让你的手机流畅如新

为什么你的手机总卡顿?关闭这10个隐藏设置,让你的手机流畅如新

“家人们,你们有没有这样的体验,半年不到,手机就卡成狗,刷视频,聊微信,一直转圈圈,不管怎么点屏幕都没有任何反应!”最近后台一堆粉丝吐槽:“科普君,新手机像牛奶般丝滑,半年后卡成拖拉机,难道非得换(机)?”别急!今天直接上硬核操作——关闭10个隐藏设置,老机瞬间原地复活!1.关闭 系统自动更新-坑爹...

手机这样设置轻松省好几个G

手机这样设置轻松省好几个G

好多朋友都说手机流量总是不够用,没到月末早就没了,今天就手把手教你开启省流量模式,让你每月能省好几个G,如何设置?具体路径(👀图文字)如下第一步打开手机设置第二步点移动网络第三步点流量管理第四步点智能省流量第五步系统默认智能省流量是关闭的(灰色)我们把它打开(蓝色)这样就设置好了简单几步就搞定赶快去...

手机隐私防泄露指南,普通人必看

普通人手机隐私防泄露完整指南覆盖日常使用、权限、软件、支付、社交、拍照、定位七大核心场景,简单好操作,普通人照着设置就能大幅降低隐私泄露、被偷拍、被诈骗风险。一、基础权限:关掉所有没必要的授权关闭 APP 过度权限相册、麦克风、摄像头、定位、通讯录、存储、后台弹窗,非必要全部设为「仅使用时允许」或「...

有哪些软件可以实现手机和电脑之间的高效数据管理?

有哪些软件可以实现手机和电脑之间的高效数据管理?

下面按「苹果生态 / 安卓+Windows / 全平台通用」三类,给你整理**真正能落地、高效不乱的手机↔电脑数据管理软件**,每款讲清楚:**能干啥、适合谁、优缺点**。 --- ## 一、iPhone + Mac(苹果生态最优) ### 1. 系统自带:隔空投送 + 访达(免费,首...

发表评论

访客

◎欢迎参与讨论,请在这里发表您的看法和观点。