首页
社区
课程
招聘
[原创]钉钉PC版数据库解密算法分析
发表于: 2019-11-1 16:34 16076

[原创]钉钉PC版数据库解密算法分析

2019-11-1 16:34
16076

1. 解密过程分析

CreateFile 下条件断点,在打开数据库文件时 断下后查看堆栈,调用来至mainframe.dll

查看sqlite 源码,在  openDatabase 函数有以上的代码段,直接  用 ida 在  mainframe.dll 搜索 字符串 "temp",查找引用,定位到  openDatabase 函数


x64dbg 下断点,成功断下


跳出此函数,往下运行,停在疑似设置数据库密码的位置


步入


call 4202420 就是设置密码

打开ida 分析  4202420


从密钥里取16  byte 作为 AES-128 的 key  分别初始化 encrypt_key 和 decrypt_key 保存在

encrypt_cb_func_user_data ,encrypt_cb_func 会在解密数据库页面时被调用

encrypt_cb_func  的ida 代码如下



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

最后于 2019-11-1 16:36 被欧阳brother编辑 ,原因:
上传的附件:
收藏
免费 3
支持
分享
最新回复 (4)
雪    币: 1535
活跃值: (695)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
2
666,赶紧保存
2019-11-1 18:52
0
雪    币: 6157
活跃值: (4907)
能力值: ( LV10,RANK:160 )
在线值:
发帖
回帖
粉丝
3
mark
2019-11-2 01:03
0
雪    币:
能力值: ( LV1,RANK:0 )
在线值:
发帖
回帖
粉丝
4
有没有大神研究下安卓app钉钉的sqlite密钥生成方式?
2020-5-16 16:15
0
雪    币: 3246
活跃值: (374)
能力值: (RANK:20 )
在线值:
发帖
回帖
粉丝
5
猛男
2022-3-24 17:20
0
游客
登录 | 注册 方可回帖
返回
//