Android某钉数据库的解密分析


声明

|---|-------------------------------------------------------------------------|
| 1 | 本文章中所有内容仅供学习交流,抓包内容、敏感网址、数据接口均已做脱敏处理,严禁用于商业用途和非法用途,否则由此产生的一切后果均与作者无关! |

目的

|---|---------------------------|
| 1 | 解密app数据库,用数据库软件打开查看信息内容 |

入手分析

|---|-------------------------------------------------------------------------------------|
| 1 | 通过对国内一些聊天记录信息存储的研究,现在基本都是SQLIte3或者带加密功能SQLCipher库,还是某信的wxdb库基于SQLCipher或者SQLIte3。 |

分析过程

|---|----------------------------------------------------------------|
| 1 | 1``:有了以上的基础,可以在jadx或者jeb工具搜索相关数据库,通过分析用"SQLiteDatabase"搜到相关的 |

在类"com.alibaba.sqlcrypto.sqlite.SQLiteDatabase"跟踪到需要的方法

"openOrCreateDatabase",通过分析openOrCreateDatabase方法最终会走到

类SQLiteConnection的open方法,在open方法中调用了native方法nativeOpen;通过用对注册方法进行hook RegisterNatives方法发现在database_sqlcrypto文件中注册对应的方法。

2:通过以上分析database_sqlcrypto就有可能对数据库加密解密的操作的文件,用ida打开搜到相关的sqlite或者sqlcipher相关的内容,在库里面能发现数据库的一些痕迹。具体可以在参考一些文档:
Android QQ NT 版数据库解密 | yllhwa's blog
[原创]某聊天工具消息记录数据库文件解密逆向分析-软件逆向-看雪-安全社区|安全招聘|kanxue.com

在这个so文件中,能发现

sqlite3_log(21LL, "%s at line %d of [%.10s]", "misuse", 84914LL, "bbd85d235f7037c6a033a9690534391ffeacecc8");这样的log,这个"bbd85d235f7037c6a033a9690534391ffeacecc8"标签是sqlcipher 4.5.1版本标签,推测某钉就是基于这版本修改。你可以下载对应版本源码参看来看这个so文件。

3:通过上面不断的分析,发现某钉的解密稍微跟某q,微稍微有点不一样,对数据的解密算法它单独拎出来了,在分析过程中发现有取现象,加解密函数名字没有抹掉,难道故意放水?发现aes_encrypt_key128,aes_decrypt_key128,aes_encrypt,aes_decrypt函数,对这些进行hook或下断点。在对aes_decrypt分析发现就是aes算法,算法分析对应aes 128,196,256加密的方式,就是128字节对应4*4矩阵加密,具体怎么操作自己baidu,发现加密方式采用了128,也就是10轮计算,

从图上可以看出就是v4是怎么生成的,不要弯子了密钥生成时用过aes_decrypt_key128函数生成,是根据传入的32字节的前面16字节生成轮密钥。至于加密过程应该应该差不多(有兴趣可以研究下)。dump出来轮密钥也能看出来十轮

4:现在就是算法还原了

贴了关键部分

5:现在还有一个问题就是java参数是怎么生成的,具体是过程就省了,自己往回跟踪就可以搞定,具体放在xml文件com.alibaba.android.rimet_preferences字段dt_bee_db_phone_*下面的值进行md5得到得到32位值

尾声

|-----|----------------------------------------------------------|
| 1 2 | 是看到Android版本解密没有对应分析,就弄下贴,方便大家交流!!!! ``不太喜欢写东西,凑合看吧 |

相关推荐
清风6666664 分钟前
基于单片机的PID调节脉动真空灭菌器上位机远程监控设计
数据库·单片机·毕业设计·nosql·课程设计·期末大作业
酩酊仙人10 分钟前
ABP将ExtraProperties作为查询条件
数据库·postgresql·asp.net
在风中的意志14 分钟前
[数据库SQL] [leetcode] 614. 二级关注者
数据库·sql
·云扬·16 分钟前
MySQL Group Replication(MGR)核心特性全解析:从事务流程到一致性配置
数据库·mysql
陌路2018 分钟前
MYSQL事务篇--事务隔离机制的实现
数据库·mysql
默|笙29 分钟前
【Linux】进程控制(3)进程程序替换
android·linux·运维
oMcLin30 分钟前
CentOS 7.9 高负载导致 MySQL 数据库性能下降:内存泄漏与配置优化
数据库·mysql·centos
auspicious航31 分钟前
数据库同步技术演进:从备份转储到实时CDC的DBA实战指南
数据库·ffmpeg·dba
国家二级编程爱好者32 分钟前
Android Lottie使用,如何自定义LottieView?
android·前端
SmartRadio33 分钟前
物联网云平台数据库选型与搭建全指南(LoRaWAN)
数据库·物联网·lora·lorawan