微信Windows版本解密学习

admin 2023年3月10日16:46:48评论630 views字数 3303阅读11分0秒阅读模式
✎ 阅读须知


乌鸦安全的技术文章仅供参考,此文所提供的信息只为网络安全人员对自己所负责的网站、服务器等(包括但不限于)进行检测或维护参考,未经授权请勿利用文章中的技术资料对任何计算机系统进行入侵操作。利用此文所提供的信息而造成的直接或间接后果和损失,均由使用者本人负责。

乌鸦安全拥有对此文章的修改、删除和解释权限,如转载或传播此文章,需保证文章的完整性,未经允许,禁止转载!

本文所提供的工具仅用于学习,禁止用于其他,请在24小时内删除工具文件!!!

1. 说明

本文主要从开源工具SharpWxDump上来展开学习的,在这里提供工具的就是SharpWxDumpgithub链接地址:

https://github.com/AdminTest0/SharpWxDump

参考学习文档来源于:

https://mp.weixin.qq.com/s/4DbXOS5jDjJzM2PN0Mp2JA

在使用之前一定要注意微信的版本,这个非常重要,因为现在的低版本微信是无法解密成功的。至于多低的版本,后面再说。

我编译之后的工具请在公众号后台回复关键字:解密 下载

微信Windows版本解密学习

2. 微信解密工具编译

首先在作者地址上将工具下载下来:

https://github.com/AdminTest0/SharpWxDump

在这个项目里面主要是Program.cs里面的程序,在这里使用visual studio来编译,其实在这里还可以使用Windows自带的程序来编译,但是因为我电脑是64位的,编译之后的工具没法使用,在这里先说一下64位是如何编译的。

2.1 64 位编译(微信暂时无法使用)

Program.cs文件放到C:WindowsMicrosoft.NETFrameworkv4.0.30319目录下,然后使用管理员权限启动cmd,来编译下文件:

微信Windows版本解密学习

然后就会得到一个Program.exe文件,但是目前这个文件没法用:

微信Windows版本解密学习

执行微信的文件也需要管理员权限来执行:

微信Windows版本解密学习

2.2 32 位编译(微信可以正常使用)

visual studio中新建一个c#的文件,首先新建一个项目:

微信Windows版本解密学习

在这里选择一个C#的控制台应用程序:

微信Windows版本解密学习

然后将Program.cs里面的程序复制过来,选择releasex86位的:

微信Windows版本解密学习

再选择生成解决方案:

微信Windows版本解密学习

这个程序就是生成的文件:

微信Windows版本解密学习

在这里使用管理员模式的命令行来执行下看看,在这里获取微信key的值,要求微信在正在打开使用的的状态下进行:

微信Windows版本解密学习

此时获取的值就是key

3. 解密微信聊天记录

微信聊天记录默认是放在文档-->Wechat Files下:

微信Windows版本解密学习

开头是wxid_xxxxxxx,在这里代表的是一个账号的聊天记录文件,点进去之后,找到wxid_xxxxxMsgMulti下的MSGx.db文件,MSG.db超出240MB会自动生成MSG1.db

聊天记录为:

wxid_xxxxxxxxMsgMultiMSG0.db > 聊天记录
wxid_xxxxxxxxMsgMultiMSG1.db > 聊天记录
wxid_xxxxxxxxMsgMultiMSG2.db > 聊天记录
wxid_xxxxxxxxMsgMicroMsg.db > Contact字段 > 好友列表
wxid_xxxxxxxxMsgMediaMsg.db > 语音 > 格式为silk

参考:https://mp.weixin.qq.com/s/4DbXOS5jDjJzM2PN0Mp2JA

将这里面的文件复制出来,用解密脚本来进行解密操作:

微信Windows版本解密学习

使用脚本进行解密:
脚本来源于:

https://mp.weixin.qq.com/s/4DbXOS5jDjJzM2PN0Mp2JA
from Crypto.Cipher import AES
import hashlib, hmac, ctypes, sys, getopt

SQLITE_FILE_HEADER = bytes('SQLite format 3', encoding='ASCII') + bytes(1)
IV_SIZE = 16
HMAC_SHA1_SIZE = 20
KEY_SIZE = 32
DEFAULT_PAGESIZE = 4096
DEFAULT_ITER = 64000
opts, args = getopt.getopt(sys.argv[1:], 'hk:d:')
input_pass = ''
input_dir = ''

for op, value in opts:
    if op == '-k':
        input_pass = value
    else:
        if op == '-d':
            input_dir = value

password = bytes.fromhex(input_pass.replace(' '''))

with open(input_dir, '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_dir, '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:])

脚本使用方法:

python3 jiemi.py -k 微信key(前面获取的key)-d MSGx.db   逐个进行解密

解密前的文件:

微信Windows版本解密学习

解密之后的:

微信Windows版本解密学习

文件需要逐个解密,文件解密之后,可以使用数据库工具打开,也可以使用sqlite直接打开:
网址:https://sqlitebrowser.org/

微信Windows版本解密学习

MSG里面存在聊天记录:

微信Windows版本解密学习

如果查询敏感信息的话,直接执行sql命令,但是mac下的该软件执行命令的时候会闪退:

微信Windows版本解密学习

在这里使用另外一个工具DBeaver打开:

微信Windows版本解密学习

此时即可浏览:

微信Windows版本解密学习

当然,也可以执行命令来筛选:

SELECT * FROM "MSG" WHERE StrContent  like'%密码%'

在这里使用的是navicat查询的,确实这个工具比较好用:

微信Windows版本解密学习

4. 微信版本问题

目前我解密的微信版本为3.9.0.28,目前是可以正常解密的:

微信Windows版本解密学习

但是我早起比较老的版本是无法解密成功的,具体的原因暂时未知。

微信Windows版本解密学习


tips:加我wx,拉你入群,一起学习


微信Windows版本解密学习


微信Windows版本解密学习

微信Windows版本解密学习
微信Windows版本解密学习

扫取二维码获取

更多精彩

乌鸦安全

微信Windows版本解密学习

原文始发于微信公众号(乌鸦安全):微信Windows版本解密学习

  • 左青龙
  • 微信扫一扫
  • weinxin
  • 右白虎
  • 微信扫一扫
  • weinxin
admin
  • 本文由 发表于 2023年3月10日16:46:48
  • 转载请保留本文链接(CN-SEC中文网:感谢原作者辛苦付出):
                   微信Windows版本解密学习https://cn-sec.com/archives/1596143.html

发表评论

匿名网友 填写信息