Crack App | 某新闻 app 注册 token 加密逻辑分析

本文涉及的产品
密钥管理服务KMS,1000个密钥,100个凭据,1个月
简介: Crack App | 某新闻 app 注册 token 加密逻辑分析

今日目标

aHR0cHM6Ly93d3cud2FuZG91amlhLmNvbS9hcHBzLzY2Mjk5Mzg=

抓包分析

在内容列表的请求包里面的有token这个参数值

但是在开始的这个init包里面没有这个token

在开始的这个init请求之后的所有的包都带有token这个参数

猜测是开始的init包带有的加密返回值有这个token参数,就类似设备注册的意思

所以分析的重点从列表页移动到了开始的init包里面

查壳与脱壳

先看看这个app的壳能不能搞

好像有点难搞,先用寒冰大大的FART试试

试了下开源版的frida_fart,提示进程终止,应该是没了,可能是我的姿势不对,有知道的大佬评论区指点一下

于是我换北风哥的脱壳机试了一试,于是我找北风哥 py 了一下,舒服~

北风哥也提示了我可以用frida-dexdump试试,并且fart也是可以的,操作提示如下

在北风哥的提示下,我研究一下用frida-dexdumpijm企业版

拖完发现没有北风哥脱得全,应该还是我的姿势不对,所以接下来我还是用北风哥脱得 dex 分析

加密逻辑分析与定位

因为由init这个请求返回的data的加密,所以以init为关键词搜索

看了几个位置,感觉相关性都不高

想了一下用token作为关键词检索,发现结果是在太多了,有1800+多个相关的结果,最后还是在inits里面找到了

在这个位置点进去,然后通过InitParam声明的地方找到下面的位置

那么在请求头中的siganature可能就是这里获取到的,通过getSign关键词找到下面这个位置

所以在header中的siganature就是getSign(),然后在这个位置出入m.c并将结果阶段传入e.a

但是通过wallbreak只看到下面的代码

这样感觉没办法搞啊,经过一番寻找,还得是旧版的app牛逼

在旧版的app里找到下面的代码

照着和新版对比一下就知道,e.aDES.decrypt,然后m.cMD5

既然是这样的话就很简单了

按照这个思路复写应该就可以了

key是由这里的逻辑生成的

这里用到的APP_SECRET_AKEY和时间戳多次MD5得到 key

ps:就在上图逻辑的上方,新旧版本相同

得到key之后,解密入参的是请求返回的密文 data

python可以实现解密

可以看到在结果里面取到token

简单总结

这个app磕磕绊绊了很久,在新版的加密上琢磨了很久,钻了牛角尖,如果早点分析旧版估计很快就分析出来了

所以之后如果不是必要还是不要死磕新版,不仅加固牛逼,混淆也很厉害,还有检测,我用fridaobjection都没办法spawn的方式启动app

唉,又是被APP教做人的一天。

感谢北风哥,2h 大佬等众多哥哥的脱壳测试。

End.

以上就是全部的内容了,咱们下次再会~

相关文章
|
15天前
|
安全
【Azure App Service】App service无法使用的情况分析
App Service集成子网后,如果子网网段中的剩余IP地址非常少的情况下,会在App Service实例升级时( 先加入新实例,然后在移除老实例 )。新加入的实例不能被分配到正确的内网IP地址,无法成功的访问内网资源。 解决方法就是为App Service增加子网地址, 最少需要/26 子网网段地址。
|
1月前
|
数据采集 数据可视化 数据挖掘
基于python django的scrapy去哪儿网数据采集与分析,包括登录注册和可视化大屏,有md5加密
本文介绍了一个基于Python和Django框架,使用Scrapy进行去哪儿网数据采集与分析的项目,包括实现登录注册功能、MD5加密以及通过可视化大屏展示分析结果的综合系统。
基于python django的scrapy去哪儿网数据采集与分析,包括登录注册和可视化大屏,有md5加密
|
24天前
【Azure Function App】本地运行的Function发布到Azure上无法运行的错误分析
【Azure Function App】本地运行的Function发布到Azure上无法运行的错误分析
|
24天前
|
开发框架 缓存 .NET
【App Service】在Azure App Service中分析.NET应用程序的性能的好帮手(Review Stack Traces)
【App Service】在Azure App Service中分析.NET应用程序的性能的好帮手(Review Stack Traces)
|
24天前
|
C# 开发工具
【Azure 应用服务】Azure Function App使用SendGrid发送邮件遇见异常消息The operation was canceled,分析源码渐入最源端
【Azure 应用服务】Azure Function App使用SendGrid发送邮件遇见异常消息The operation was canceled,分析源码渐入最源端
|
25天前
|
网络协议 NoSQL 网络安全
【Azure 应用服务】由Web App“无法连接数据库”而逐步分析到解析内网地址的办法(SQL和Redis开启private endpoint,只能通过内网访问,无法从公网访问的情况下)
【Azure 应用服务】由Web App“无法连接数据库”而逐步分析到解析内网地址的办法(SQL和Redis开启private endpoint,只能通过内网访问,无法从公网访问的情况下)
|
1月前
|
Java Android开发 UED
安卓scheme_url调端:如果手机上多个app都注册了 http或者https 的 intent。 调端的时候,调起哪个app呢?
当多个Android应用注册了相同的URL Scheme(如http或https)时,系统会在尝试打开这类链接时展示一个选择对话框,让用户挑选偏好应用。若用户选择“始终”使用某个应用,则后续相同链接将直接由该应用处理,无需再次选择。本文以App A与App B为例,展示了如何在`AndroidManifest.xml`中配置对http与https的支持,并提供了从其他应用发起调用的示例代码。此外,还讨论了如何在系统设置中管理这些默认应用选择,以及建议开发者为避免冲突应注册更独特的Scheme。
|
3月前
|
移动开发 小程序 开发工具
微信支付的类型分析(JSAPI+APP+H5+NATIVE+付款码+合单)
微信支付的类型分析(JSAPI+APP+H5+NATIVE+付款码+合单)
250 1
|
3月前
|
人工智能 监控 安全
未来金融将如何借助加密货币发展,可以从以下几个方面进行清晰的分析和归纳
**区块链与加密货币推动金融革命:降低交易成本,提高安全,扩大服务范围,赋能智能合约与DeFi,及改变监管方式。加密经济助力金融效率与普惠性,但也伴随风险,需平衡发展与监管。**
|
Android开发 API 移动开发
uni-app自定义返回逻辑教程
自 HBuilderX v1.1.0 起,uni-app 的页面新增 onBackPress(event) 生命周期函数。 onBackPress(event) 返回 event ={form: backbutton | navigateBack} 说明 当用户进行以下操作时,会触发该函数: A...
7693 0