
本文为看雪论坛优秀文章
看雪论坛作者ID:Jev0n
0x00 简介

0x01 前期准备


sqlite的加解密简易流程:

0x02 获取加密所需的函数
在sqlite.dll里对这些函数下断点动态调试发现没有断下来,结合网络上前辈的分析,IDA中打开KernelUtil.Dll函数名字都很类似,猜测这个Dll就是tx自己对sqlite的具体实现。

我们可以先在CMultiSQLite3DB::innerOpen等open函数下断点,并打开火绒剑对文件操作进行监控。具体下断点的方法就是附加进程然后在模块里找到KernelUtil.Dll,在IDA找到要下断点的函数的偏移,[KernelUtil.Dll + 偏移]就是要下断点的位置。







0x03 抓取解密Key
key是云端生成的理论上没有账号的密码是打不开这个聊天记录文件的,并且在每次打开程序后的密钥都是不一样的,所以这里得注意抓到密码后关闭程序得备份Msg3.0.db这个文件,文件于key是一一对应的。






0x04 总结
总的来说主要是要找到sqlite解密的各个函数的偏移地址和解密Key,有个小坑就是Key是动态的而且和Msg3.0.db一一对应的,每次抓到Key得记得备份Msg3.0.db。
所以我们可以直接调用tx的KernelUtil.Dll,在Load KernelUtil.Dll的时候要注意放在\Bin 目录下不然会导入失败,因为KernelUtil.Dll还有导入其他的Dll。


0x05 参考链接
sqlite v3.8.8.1下载链接:
https://www.sqlite.org/2015/sqlite-amalgamation-3080801.zip
撬开PC QQ的本地SQLite数据库(适用于Msg3.0.db等):https://www.52pojie.cn/thread-1370802-1-1.html
sqlite_exec回调函数的使用:https://blog.csdn.net/zscfa/article/details/77119522

看雪ID:Jev0n
https://bbs.pediy.com/user-home-870016.htm
# 往期推荐


球分享

球点赞

球在看

点击“阅读原文”,了解更多!
文章转载自看雪学院,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。





