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版本解密没有对应分析,就弄下贴,方便大家交流!!!!

                    不太喜欢写东西,凑合看吧

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/bicheng/3666.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【后端】python与django的开发环境搭建指南

安装Git 双击Git 客户端安装文件,在安装页面,单击“Next” 在安装路径选择页面,保持默认,单击“Next” 在功能组件选择页面,保持默认,单击“Next” 在开始菜单文件夹设置页面,保持默认&am…

浅谈rDNS在IP情报建设中的应用

在当今数字化世界中,互联网已经成为人们日常生活和商业活动中不可或缺的一部分。在这个庞大而复杂的网络生态系统中,IP地址是连接和识别各种网络设备和服务的基础。然而,仅仅知道一个设备的IP地址并不足以充分理解其在网络中的角色和行为。为…

复现SMO算法:理解SVM、SMO和高斯核【一、了解相关概念】

任务要求 复现带有高斯核的SMO算法。在LIBSVM中找到一个包含超过1000条数据的数据集。在保持超参数一致的情况下,确保自己实现的模型的精度与LIBSVM相比,相差不超过1%。 复现SMO算法:理解SVM、SMO和高斯核 在这篇博客中,我将深…

win11 桌面图标突然多 绿色小对勾,如何去除掉

突然间桌面图标每个上面都有一个绿色小狗狗,如下图所示,以为中病毒了,后来一查不是。 去除方法 1、鼠标在桌面空白处单击,选择“个性化”(或直接按“windows键I键”)调出设置菜单。 2、在左侧选择“主题”…

oracle varchar2类型如何转化为date类型

ALTER TABLE unit_bin_h ADD TRANS_TIME_TEMP DATE; –处理中文 上午/下午 –UPDATE unit_bin_h SET TRANS_TIME_TEMP TO_CHAR(TO_TIMESTAMP(trans_time, ‘dd-mon-rr hh.mi.ss.ff am’), ‘yyyy-MM-dd hh24:mi:ss’) WHERE TRANS_TIME LIKE ‘%下午’ OR TRANS_TIME LIKE ‘%…

C++:const成员和取地址操作符

目录 一、const成员 二、取地址及const取地址操作符重载 一、const成员 将const修饰的“成员函数”称之为const成员函数,const修饰类成员函数,实际修饰该成员函数 隐含的this指针,表明在该成员函数中不能对类的任何成员进行修改。 注&…

21.基础乐理-等音调扩展篇、为何一共十五个大调

首先 等音调 的概念是基于 等音 的概念,比如下图中的音名:因为用的按键相同,音名不同,所以被称为等音调 然后音名一共有35个,如下图:所以在理论上它会有35个大调,但是人总是倾向于选择简单、简洁…

MAC如何重装系统(怒冲30大洋,才拿到的教程~,收藏点赞兄弟们)

背景 应该是之前装了一些远程的软件,卸载一直不干净,导致电脑很卡,而且网络貌似出现了问题,钉钉直接登陆不上了。其余软件网络倒是还好。所以就去PDD,买了个教程,重装了一下。才发现是mac自带,…

云赛道---AI开发框架

MindSpore 旨在提供端边云全场景的 AI 框架。 MindSpore 可部署于端、边、云不同的 硬件环境,满足不同环境的差异化需求,如支持端侧的轻量化部署,支持云侧丰富的 训练功能如自动微分、混合精度、模型易用编程等。 MindSpore 全场景的几个重…

交互式探索微生物群落与生态功能的关系

微生物群落在生态系统中发挥则重要功能,我们在对微生物群落进行分析时,会将不同分类水平(从门到属)的微生物类群的相对丰度与测定的某一生态功能进行相关性分析。但由于微生物类群数较多,又有不同的分类水平&#xff0…

leetcode-二叉树的镜像-91

题目要求 思路1 1.遍历一遍二叉树,将左边的结点对应创建一个右边的结点 2.用此方法空间复杂度O(n),并不是最优 思路2 1.将一个结点的左右子树进行交换,如果左子树还有左右结点,就再交换左子树的左右结点,以此递归下去…

Java23种设计模式-行为型模式之模板方法模式

模板方法模式(Template Method Pattern)在超类中定义了一个算法的骨架,将一些步骤延迟到子类中实现。模板方法模式使得子类可以在不改变算法结构的情况下,重新定义算法的某些步骤。 基本组成: Abstract (抽…

富格林:安全落实防备诱导欺诈建议

富格林悉知,作为一项投资活动,炒黄金在近些年来备受欢迎,它交易灵活,投资者采取正规做单操作即可获取不错收益。但大家也要知道,投资存在一定风险,一定要做好防备虚假欺诈操作,避免诱导上当亏损…

单例模式(设计模式)

文章目录 概述懒汉式饿汉式双重加锁机制类级内部类方式单例模式适用场景Spring 的单例实现原理单例被破坏的五个场景单例的实现方式实现线程安全的单例模式 概述 单例模式:单例对象能保证在一个JVM中,该对象只有一个实例存在。保证被创建一次&#xff0…

Kubernetes:云原生时代的核心引擎

文章目录 一、Kubernetes简介:引领云原生潮流二、K8s的核心特性:自动化与智能化三、K8s的实践应用:打造高效云原生应用架构四、K8s的挑战与应对:安全与性能并重五、K8s的未来展望:无限可能与挑战并存《Kubernetes快速进…

【windows-搭建Ubuntu22LTS】

一、环境要求 1. windows版本要求 至少Windows 10 2020年5月(2004) 版, Windows 10 2019年5月(1903) 版,或者 Windows 10 2019年11月(1909) 版 2. 控制面板开启相关的程序(需要重启) 二、Microsoft store安装unbuntu 下载后直接运行(稍微等会&#…

从开发角度理解漏洞成因(01)

文章目录 PHP开发漏洞环境(SQL注入)生成前端代码生成后端代码数据库写功能调试功能 测试SQL注入漏洞字符型注入布尔盲注 PHP开发漏洞环境(SQL注入) 持续更新中… 文章中代码资源已上传资源,如需要打包好的请点击PHPM…

亿道三防onerugged|工业车载电脑在港口正面吊上的应用

港口正面吊是港口作业中至关重要的设备,它承担着装卸集装箱等重要任务。作为专业人员,我深知港口作业的复杂性和挑战性。在这方面,亿道三防onerugged系列的工业车载电脑为港口正面吊的应用提供了一种创新的解决方案。 首先,工业车…

milvus对象存储和消息中间件的工厂设计模式分析

milvus对象存储和消息中间件的工厂设计模式分析 需求 根据参数设置创建mq和storage mq有kafka,pulsar storage有local,minio,remote 配置文件 根据配置文件选择初始化mq和存储: mq:type: pulsarcommon:storageType: minio对于这种类型一个是mq,一个是存储&…

理解与解决BouncyCastle库中“ASN1Primitive overrides final method equals”异常

理解与解决BouncyCastle库中“ASN1Primitive overrides final method equals”异常 引言错误原因分析应用场景及解决方案示例示例一:不同版本间的兼容性问题示例二:库之间的相互影响示例三:JDK版本适配问题 结论 引言 在Java开发中&#xff0…