首页
社区
课程
招聘
72
[原创]微信4.0聊天记录数据库文件解密分析
发表于: 2024-11-14 13:51 16677

[原创]微信4.0聊天记录数据库文件解密分析

2024-11-14 13:51
16677

工具介绍

代码仓库:https://github.com/0xlane/wechat-dump-rs

微信4.0的数据库解密已在工具中实现,寻找方式依然是暴力搜索。

工具支持:

  • 导出已登录微信进程的 db key
  • 通过指定 key 离线解密微信数据库文件
  • 将 db key 转为 sqlcipher 原始密钥

具体使用方式参考 README.md

库表结构

4.0.0.26

微信4.0分析记录

要定位 key 的位置之前肯定先要找到真实的 key ,下面简单记录一下寻找过程。使用微信版本 4.0.0.26 进行分析。

数据文档存储位置发生变化:C:\Users\xxx\Documents\xwechat_files\wxid_xxxxx\db_storage,且不可修改。

进程名从 Wechat.exe 变化为 Weixin.exe,关键 DLL 从 WeChatWin.dll 变化为 Weixin.dll,微信将很多库静态编译成这1个文件所以很大,IDA打开都要解析很久才行。

先说一下取巧的简单办法,根据之前版本微信找 key 经验,可以使用 CE 在内存中搜索 SetDBKey 就可以定位到一个日志打印的位置,这个位置所在的函数就是 SetDBKey 函数,第二个参数就是 key 指针。(ps:可以观察一下指针周围有什么可以用于定位的特征)

下面说复杂方法,因为微信使用的是 WCDB,WCDB 算是 sqlcipher 和 sqlite 定制,所以根据 https://github.com/Tencent/wcdb/wiki/C++-加密与配置 可知微信内部应该需要调用 setCipherKey 进行加密配置,所以如果能定位到这个函数就可以找到 key。

直接定位这个函数尝试了下并不好找,另外Weixin.dll里的一些代码还是混淆的,但还是要往简单了想,继续找特征字符串定位一些关键函数,通过看源码找 setCipherKey 调用的函数,一层层向下找一直找到一个能定位的位置然后倒推回来。如果实在没办法定位它,就尝试定位它附近的函数,一般编译后也都在一起。

大致思路是这样。实际过程中,我先去找 sqlite3_exec 去了,想看一下微信执行的 sql 语句,

按上面思路对 sqlite3_exec 定位,内部没有明显字符串,比较幸运的是函数开头调用的 sqlite3SafetyCheckOk 里面有个字符串 "unopened" 在内存中直接定位到了有且仅有一个的位置 Weixin.dll+410BDCB,该位置必然是 sqlite3SafetyCheckOk

转到 IDA 中找所有交叉引用,只有 52 个,可以挨个看过去:

在里面找到最像 sqlite3_exec 的:

然后对照源码将 sqlite3_exec 调用的函数一一定位,还可以找到几个比较关键的函数:

然后找到这几个又能找出一片,不一一列举了。

现在在 windbg 里对 sqlite3_exec 下断点,监控后发现和想象中的不一样,只有一两个固定的语句经过 sqlite3_exec 执行:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
0:059> bp weixin+0x4602e50 ".printf \"%ma\\n\", rdx;"
0:059> g
ModLoad: 00007ff9`78030000 00007ff9`780b3000   C:\Windows\System32\fwpuclnt.dll
ModLoad: 00007ff9`78360000 00007ff9`7836a000   C:\Windows\System32\rasadhlp.dll
SELECT name, rootpage, sql FROM "main".sqlite_master ORDER BY rowid
Weixin!GetHandleVerifier+0x3c40f90:
00007ff8`d0d22e50 4157            push    r15
0:021> g
SELECT name, rootpage, sql FROM "main".sqlite_master ORDER BY rowid
Weixin!GetHandleVerifier+0x3c40f90:
00007ff8`d0d22e50 4157            push    r15
0:021> g
SELECT name, rootpage, sql FROM "main".sqlite_master ORDER BY rowid
Weixin!GetHandleVerifier+0x3c40f90:
00007ff8`d0d22e50 4157            push    r15

所以微信并不直接通过 sqlite3_exec 执行 sql,此时对 sqlite3_prepare_v2 下断比较有用,基本执行的所有语句都会经过这个函数:


[招生]科锐逆向工程师培训(2025年3月11日实地,远程教学同时开班, 第52期)!

最后于 2025-1-5 14:19 被0xlane编辑 ,原因:
收藏
免费 72
支持
分享
赞赏记录
参与人
雪币
留言
时间
mb_duzzidie
+1
为你点赞!
5天前
Crucio0x0
感谢你分享这么好的资源!
2025-2-20 14:02
evilfarmer
感谢你的贡献,论坛因你而更加精彩!
2025-2-9 21:42
mb_tetwcouz
为你点赞!
2025-1-3 18:16
东关之南
+5
期待更多优质内容的分享,论坛有你更精彩!
2025-1-2 18:42
wx_sky.龚
谢谢你的细致分析,受益匪浅!
2025-1-2 17:52
mb_ohwhgtgj
你的帖子非常有用,感谢分享!
2025-1-2 17:25
rhinoceros
谢谢你的细致分析,受益匪浅!
2024-12-31 10:34
hcyuan
谢谢你的细致分析,受益匪浅!
2024-12-31 10:23
王cb
为你点赞!
2024-12-31 09:24
appview
为你点赞!
2024-12-31 09:20
顽劣
感谢你的积极参与,期待更多精彩内容!
2024-12-31 09:05
黑的默
非常支持你的观点!
2024-12-30 16:55
忆小陌
谢谢你的细致分析,受益匪浅!
2024-12-30 15:46
StephenWan
感谢你分享这么好的资源!
2024-12-24 20:30
大野苍茫
感谢你分享这么好的资源!
2024-12-23 14:52
尸位素餐
非常支持你的观点!
2024-12-23 09:46
mb_owaabxox
谢谢你的细致分析,受益匪浅!
2024-12-23 09:11
Lincat
你的帖子非常有用,感谢分享!
2024-12-23 08:58
hackroad
为你点赞!
2024-12-22 16:21
tzl
+1
感谢你的贡献,论坛因你而更加精彩!
2024-12-21 10:34
Cherryl
你的分享对大家帮助很大,非常感谢!
2024-12-21 01:50
Magic丶
你的帖子非常有用,感谢分享!
2024-12-20 16:14
远洋方舟
谢谢你的细致分析,受益匪浅!
2024-12-20 15:45
血野孤狼
期待更多优质内容的分享,论坛有你更精彩!
2024-12-20 09:28
mb_ejjtjmko
非常支持你的观点!
2024-12-20 09:04
mb_jqriqncg
你的分享对大家帮助很大,非常感谢!
2024-12-19 15:30
手心love
你的分享对大家帮助很大,非常感谢!
2024-12-19 11:18
墨墨_260433
+1
非常支持你的观点!
2024-12-19 10:35
wx_红尘自破
你的分享对大家帮助很大,非常感谢!
2024-12-17 20:42
小青峰
期待更多优质内容的分享,论坛有你更精彩!
2024-12-17 20:13
云火暮烟
感谢你分享这么好的资源!
2024-12-16 22:18
banming
为你点赞!
2024-12-16 19:18
mb_kbiwlgfr
为你点赞!
2024-12-16 11:45
Limp瘸子
期待更多优质内容的分享,论坛有你更精彩!
2024-12-16 08:57
mb_plrnwqbs
为你点赞!
2024-12-13 18:16
旺仔_小可爱
你的帖子非常有用,感谢分享!
2024-12-13 11:13
nig
期待更多优质内容的分享,论坛有你更精彩!
2024-12-13 10:47
文西哥
非常支持你的观点!
2024-12-13 00:37
mb_okyhvijj
你的帖子非常有用,感谢分享!
2024-12-12 16:46
梦里看花
为你点赞!
2024-12-11 11:12
bambooqj
为你点赞!
2024-12-10 18:37
mb_lzcjpafl
这个讨论对我很有帮助,谢谢!
2024-12-10 18:05
mb_kywyiskf
你的分享对大家帮助很大,非常感谢!
2024-12-10 14:06
z许
期待更多优质内容的分享,论坛有你更精彩!
2024-12-10 14:01
江湖风轻
感谢你的贡献,论坛因你而更加精彩!
2024-12-9 20:12
Y6blNU1L
期待更多优质内容的分享,论坛有你更精彩!
2024-12-9 16:05
number_Z
感谢你的贡献,论坛因你而更加精彩!
2024-12-9 15:41
mb_flriuuay
+1
谢谢你的细致分析,受益匪浅!
2024-12-9 11:35
vrolife
你的帖子非常有用,感谢分享!
2024-12-8 16:45
qwqdanchun
你的分享对大家帮助很大,非常感谢!
2024-12-7 16:02
周游列国
你的帖子非常有用,感谢分享!
2024-12-7 10:45
t1k
你的帖子非常有用,感谢分享!
2024-12-6 11:45
mb_lecmckno
感谢你的贡献,论坛因你而更加精彩!
2024-12-6 10:37
DstoneCool
感谢你分享这么好的资源!
2024-12-5 14:27
booz
谢谢你的细致分析,受益匪浅!
2024-12-5 10:58
erichyx
为你点赞!
2024-12-4 22:50
mb_xdnobbtp
感谢你的积极参与,期待更多精彩内容!
2024-12-4 19:25
Iam0x17
你的分享对大家帮助很大,非常感谢!
2024-12-4 16:45
Endali
期待更多优质内容的分享,论坛有你更精彩!
2024-12-4 14:14
mb_gvnpnhwo
期待更多优质内容的分享,论坛有你更精彩!
2024-12-4 10:46
mb_yqjtfroq
感谢你分享这么好的资源!
2024-12-3 16:24
paopaot
你的帖子非常有用,感谢分享!
2024-12-3 09:05
mb_ogopkjjh
这个讨论对我很有帮助,谢谢!
2024-12-2 22:53
vay
+1
谢谢你的细致分析,受益匪浅!
2024-11-21 09:05
zhczf
+1
这个讨论对我很有帮助,谢谢!
2024-11-19 19:41
养只猫不好么
+2
你的分享对大家帮助很大,非常感谢!
2024-11-18 14:16
jmzqwh
这个讨论对我很有帮助,谢谢!
2024-11-18 11:59
saloyun
非常支持你的观点!
2024-11-18 10:49
GhHei
感谢你分享这么好的资源!
2024-11-14 17:24
xjohjrdy
你的分享对大家帮助很大,非常感谢!
2024-11-14 15:11
科学上网
非常支持你的观点!
2024-11-14 14:52
最新回复 (62)
雪    币: 184
活跃值: (785)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
2
???????? 感谢楼主的分析
2024-11-14 17:13
0
雪    币: 221
活跃值: (2568)
能力值: ( LV4,RANK:50 )
在线值:
发帖
回帖
粉丝
3
学习了 谢谢
2024-11-18 10:22
0
雪    币: 2457
活跃值: (4069)
能力值: ( LV6,RANK:81 )
在线值:
发帖
回帖
粉丝
4
太强了
2024-11-18 10:32
0
雪    币: 1450
活跃值: (3269)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
5
感谢分享
2024-11-18 14:16
1
雪    币: 370
活跃值: (227)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
6
感谢大佬的分享
2024-11-18 19:21
0
雪    币: 1664
活跃值: (2188)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
7
牛皮
2024-11-21 15:40
0
雪    币: 324
活跃值: (450)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
8
我尝试了一下 能找到聊天记录,但是我没找到聊天记录和联系人的关系,请问一下这个清楚吗
2024-11-21 19:45
1
雪    币: 3298
活跃值: (1677)
能力值: ( LV8,RANK:130 )
在线值:
发帖
回帖
粉丝
9
mb_hzfcelhs 我尝试了一下 能找到聊天记录,但是我没找到聊天记录和联系人的关系,请问一下这个清楚吗

real_sender_id关联 name2id

最后于 2024-11-25 17:09 被0xlane编辑 ,原因:
2024-11-25 17:08
0
雪    币: 939
能力值: ( LV1,RANK:0 )
在线值:
发帖
回帖
粉丝
10
感谢大佬的分享
2024-11-25 18:37
0
雪    币: 214
活跃值: (371)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
11
大佬可以分析一下收发图片 .dat文件 的加密方式吗?
2024-11-25 20:08
0
雪    币: 3298
活跃值: (1677)
能力值: ( LV8,RANK:130 )
在线值:
发帖
回帖
粉丝
12
xiaokaige 大佬可以分析一下收发图片 .dat文件 的加密方式吗?
后面再有时间了看看
2024-11-26 10:21
0
雪    币: 324
活跃值: (450)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
13
techliu mb_hzfcelhs 我尝试了一下 能找到聊天记录,但是我没找到聊天记录和联系人的关系,请问一下这个清楚吗 real_send ...
多谢大佬
2024-11-26 15:05
0
雪    币: 18
能力值: ( LV1,RANK:0 )
在线值:
发帖
回帖
粉丝
14
学习一下,进步进步
2024-12-4 12:09
0
雪    币: 0
能力值: ( LV1,RANK:0 )
在线值:
发帖
回帖
粉丝
15
感谢大佬的分享
2024-12-4 22:37
0
雪    币: 1
活跃值: (460)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
16
学习一下
2024-12-5 10:03
0
雪    币: 211
活跃值: (635)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
17
学习学习
2024-12-6 18:17
0
雪    币: 200
活跃值: (642)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
18
学习
2024-12-6 18:35
0
雪    币: 4680
活跃值: (3792)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
19
非常感谢大佬分享经验
2024-12-6 19:44
0
雪    币: 111
活跃值: (443)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
20
2024-12-6 22:16
0
雪    币: 10
活跃值: (76)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
21
学习
2024-12-7 05:33
0
雪    币: 25
能力值: ( LV1,RANK:0 )
在线值:
发帖
回帖
粉丝
22
ddddddddd
2024-12-7 15:56
0
雪    币:
能力值: ( LV1,RANK:0 )
在线值:
发帖
回帖
粉丝
23
谢谢分享,过来学习
2024-12-7 18:11
0
雪    币: 2132
活跃值: (1826)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
24
这个回复机制不错
2024-12-8 08:21
0
雪    币: 1126
活跃值: (404)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
25
看看这个
2024-12-8 10:43
0
游客
登录 | 注册 方可回帖
返回

账号登录
验证码登录

忘记密码?
没有账号?立即免费注册