前提知识 先来了解一下有哪些DB 和 db对应的作用这里主要会使用到msg_x.d…
前提知识
先来了解一下有哪些DB 和 db对应的作用
这里主要会使用到msg_x.db, wccontact_new2.db, group_new.db
Msg_1|2|3|4.db …… 这些是把聊天信息分割后生成的文件
wccontact_new2.db 微信上的联系人
group_new.db 群聊信息,群聊昵称,微信id
ftsmessage.db 这个数据库用密钥没有办法解开,有知道的小伙伴可以私信联系。
本次需要使用到的工具:lldb,DB Browser for SQLite, wechat
注意: 如果有小伙伴的mac book 一会儿运行了lldb之后出现error: attach failed: xxxxxxxxxxx 这个时候重启电脑 黑屏后 按住 command + R 进入恢复模式,然后输入账户密码,进入之后到上方点《实用工具》-〉点击〈终端〉之后输入 csrutil disable 然后 reboot 重启即可进行调试,csrutil 的开启是为了提供系统完整性保护 关闭了之后我们就能使用lldb 对wechat进行调试。
搞事部分
- 运行微信的记得退出微信先。
我们首先打开微信,点开之后不要做任何操作
2.然后我们打开终端
3.使用lldb工具对pid进行调试,使用pgrep 过滤出微信的pid
4.我们输入 breakpoint set –name sqlite3_key | br set -n sqlite3_key | br s -n sqlite3_key
br s -n 的意思就是在sqlite3_key的地方下断点
| 分割多种写法
然后在continue 一下
5.点击登陆,并在我们的手机上进行确认登陆
6.这个时候断点就生效了,程序会保持在刚才那个登陆确认的页面上,然后我们在lldb上就能够看到显示的汇编指令,可以看到最后一行是把rcx 寄存器中的值 赋值给了rsi
7.我们通过lldb 读取 rsi寄存器中的内容
memory read –s 1 -f x -c 32 $rsi
8.我们把得到的结果复制到ultraedit(你们自己下一下)然后我们把前面的地址去掉,替换掉0x,还有空格,最后把四行变成一行
9.最后变成一串长度为64的密钥,但是这样是没有办法解密的,因为我们一会儿要用row的方式解密,所以前面要加上0x
也就是变成这样
0xaac8b521a98740ecb***************************416b9fda1463abb023b3
10.获取到密码之后然后我们把db Browser 安装好之后 打开
11.把db文件拖进db Browser我这里拖的是wccontact_new2.db然后我们进行如下操作
12.点击ok就能打开数据库了
其余的数据库也是同样的操作,赶紧动手试试!!!
- 本文作者: mix
- 本文来源: 奇安信攻防社区
- 原文链接: https://forum.butian.net/share/984
- 版权声明: 除特别声明外,本文各项权利归原文作者和发表平台所有。转载请注明出处!