Crack App | 某资讯 app 参数 Signature 与 request_sign_q 加密逻辑分析

本文涉及的产品
密钥管理服务KMS,1000个密钥,100个凭据,1个月
简介: Crack App | 某资讯 app 参数 Signature 与 request_sign_q 加密逻辑分析

今日目标

aHR0cHM6Ly93d3cud2FuZG91amlhLmNvbS9hcHBzLzEyMzY2NzE=

js 逆向卷不动了,开始入门 app

抓包分析

打开 app,然后检索python关键词,可以找到下面的请求

其中signature还有request_sign_q是分析的重点

查壳与脱壳

现在基本 app 都会做加固防护,所以还是直接看看有没有壳

果然还是有壳的,是数字家的

还是用上次的办法,先脱壳试试,然后再抓包看请求

很好,BlackDex 直接挂逼了

掏出葫芦娃大佬的frida-dexdump试试

项目地址:https://github.com/hluwa/frida-dexdump

使用方法也很简单,直接pip3 install frida-dexdump就行了,具体的可以看看大佬的项目,记得star

r0env自带了frida-dexdump,所以先看看frida-dexdump的帮助文档

每个项都做了通俗的标注,大佬太贴心了。

直接frida-dexdump -d走起,这个选项很慢,没有FART倒数 3 秒脱壳那么快,但是非常给力

# 准备工作
1、启动 frida server
2、启动 app 并保持 app 运行状态
3、启动 frida-dexdump

直接开整,然后就脱下来了,不指定输出路径的话默认会保存在frida-dexdump/[package name]的路径下

全部打包太多了,所以我删掉了非常小的几个dex,按照大小排序打包了最大的几个,拖到jadx中分析

通过检索我们可以大致定位到signature还有request_sign_q的位置,接下来分析看看

加密参数分析

signature 参数分析

先看signature,这个参数直接检索结果可太多了

所以试着通过同一个请求的其他参数辅助定位,这个和 js 逆向中分析参数的思维逻辑是相通的

然后就可以找到下面的位置了

这个位置是okhhtp3.Interceptor和 js 逆向中遇到的拦截器一样也是在往请求中搞一些小动作

这里可以看到signature经过了C26321sk1.a(url.url().toString(), hashMap)的出结果

所以继续追进去看看a方法都做了什么操作

进去之后看到这里取了appid、cv、platform、reqid、version这些参数之后,还调用了一个a方法

这里的a方法返回的是context,是 app 的上下文,和加密关系不大,主要的逻辑还是在C13259SignUtil.a

可以看看这个文章:http://gityuan.com/2017/04/09/android_context/

跟到C13259SignUtil.a中,可以看到,方法里调用了signInternal方法

这个方法是个native方法,使用下方代码,hook看下结果和参数

Java.perform(function () {
     var SignUtil = Java.use('类名');
     SignUtil.signInternal.implementation = function (a,b) {
     console.log("参数 a ===>:"+ a);
     console.log("参数 b ===>:"+ b);
     var result = this.signInternal(a,b);
     console.log("结果===>:"+result);
     return result;
 };
});

可以看到参数a是标识context实例,b参数是一串字符串符合我们前面的分析

这个so我们之后分析

request_sign_q 参数分析

依旧是搜索定位,这个参数好定位得多

关键得函数是这个b函数,继续跟进去分析b函数

这个就比较简单啦,是一个AES加密,同样的hook一下看看

Java.perform(function () {
     var encryptUtil = Java.use('类名');
     encryptUtil.b.implementation = function (a) {
     console.log("参数 a ===>:"+ a);
     var result = this.b(a);
     console.log("结果===>:"+result);
     return result;
 };
});

输出的内容比较多

这里就截了短的一个给大家看看,大家可以根据抓包来印证分析出入参

不是自写算法,大家可以试试看用python还原一波

so 分析 - 没写,还不会

刚刚我们分析了signature 参数,但是只到调用的位置就没有继续了,因为接下来就是so层的分析了

把对应的so拖到IDA里面瞅瞅,有点难,还是之后熟悉了unidbg还原之后再来分析吧

End.

以上就是今天的全部内容了,又一次见识到自己的菜,继续学习了。

相关文章
|
26天前
|
安全 网络协议 网络安全
【Azure 环境】从网络包中分析出TLS加密套件信息
An TLS 1.2 connection request was received from a remote client application, but non of the cipher suites supported by the client application are supported by the server. The connection request has failed. 从远程客户端应用程序收到 TLS 1.2 连接请求,但服务器不支持客户端应用程序支持的任何密码套件。连接请求失败。
|
4月前
|
数据采集 数据可视化 数据挖掘
基于python django的scrapy去哪儿网数据采集与分析,包括登录注册和可视化大屏,有md5加密
本文介绍了一个基于Python和Django框架,使用Scrapy进行去哪儿网数据采集与分析的项目,包括实现登录注册功能、MD5加密以及通过可视化大屏展示分析结果的综合系统。
基于python django的scrapy去哪儿网数据采集与分析,包括登录注册和可视化大屏,有md5加密
|
4月前
|
JavaScript 前端开发 安全
VUE——APP,后端,前端三端AES加密解密
VUE——APP,后端,前端三端AES加密解密
179 0
|
6月前
|
JavaScript 前端开发 安全
安全开发-JS应用&原生开发&JQuery库&Ajax技术&加密编码库&断点调试&逆向分析&元素属性操作
安全开发-JS应用&原生开发&JQuery库&Ajax技术&加密编码库&断点调试&逆向分析&元素属性操作
|
6月前
|
人工智能 监控 安全
未来金融将如何借助加密货币发展,可以从以下几个方面进行清晰的分析和归纳
**区块链与加密货币推动金融革命:降低交易成本,提高安全,扩大服务范围,赋能智能合约与DeFi,及改变监管方式。加密经济助力金融效率与普惠性,但也伴随风险,需平衡发展与监管。**
|
Android开发 API 移动开发
uni-app自定义返回逻辑教程
自 HBuilderX v1.1.0 起,uni-app 的页面新增 onBackPress(event) 生命周期函数。 onBackPress(event) 返回 event ={form: backbutton | navigateBack} 说明 当用户进行以下操作时,会触发该函数: A...
7745 0
|
2月前
|
JSON 小程序 JavaScript
uni-app开发微信小程序的报错[渲染层错误]排查及解决
uni-app开发微信小程序的报错[渲染层错误]排查及解决
678 7
|
2月前
|
小程序 JavaScript 前端开发
uni-app开发微信小程序:四大解决方案,轻松应对主包与vendor.js过大打包难题
uni-app开发微信小程序:四大解决方案,轻松应对主包与vendor.js过大打包难题
740 1
|
1天前
|
供应链 搜索推荐 API
1688APP原数据API接口的开发、应用与收益(一篇文章全明白)
1688作为全球知名的B2B电商平台,通过开放的原数据API接口,为开发者提供了丰富的数据资源,涵盖商品信息、交易数据、店铺信息、物流信息和用户信息等。本文将深入探讨1688 APP原数据API接口的开发、应用及其带来的商业收益,包括提升流量、优化库存管理、增强用户体验等方面。
17 6
|
2天前
|
机器学习/深度学习 前端开发 算法
婚恋交友系统平台 相亲交友平台系统 婚恋交友系统APP 婚恋系统源码 婚恋交友平台开发流程 婚恋交友系统架构设计 婚恋交友系统前端/后端开发 婚恋交友系统匹配推荐算法优化
婚恋交友系统平台通过线上互动帮助单身男女找到合适伴侣,提供用户注册、个人资料填写、匹配推荐、实时聊天、社区互动等功能。开发流程包括需求分析、技术选型、系统架构设计、功能实现、测试优化和上线运维。匹配推荐算法优化是核心,通过用户行为数据分析和机器学习提高匹配准确性。
21 3