卧艹!某聊天工具消息记录数据库文件被黑客破解~

strong>关注后回复 “进群” ,拉你进程序员交流群/p>

https://bbs.pediy.com/user-home-870016.htm

查看该工具的Bin目录下的Dll文件可以知道它用的是sqlite的数据库,sqlite默认是没有实现加密的函数只是提供了接口, 络上有一些开源的加密库比如wxsqlite3,sqlcipher等。

# 前期准备

sqlite的加解密简易流程:

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

在innerOpen这个函数中我们可以看到CppSQLite3DB::execDML这个函数,我们可以大胆猜测它是封装了sqlite3_exec,结合源码进行重命名。sqlite3_exec的第三参数和第四个参数是回调函数,主要的作用是接收sql语句执行的结果,这个在后续编写Demo有用到,具体用法在文末的链接可以参考。

在附加进程的时候得注意,选择上面那个进程,下面那个是登入进程在登入成功后会自动销毁了。

一直F9直到调用sqlite3_open函数的参数有Msg3.0.db(期间可能有多个地方调用了open,真实的是先调用open后调用key,多次尝试可以试到真实获取解密Key的地方),根据上文可知sqlite会先打开对应db文件并在后面在设Key,根据IDA分析结果可以知道原视Key是16位的,扩展之后变成16 * 17位了。

点击,关注后回复【】即可获取

文章知识点与官方知识档案匹配,可进一步学习相关知识Java技能树首页概览93767 人正在系统学习中

声明:本站部分文章及图片源自用户投稿,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!

上一篇 2021年3月3日
下一篇 2021年3月3日

相关推荐