首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

某海外App应用signature参数逆向分析

   大家好,我是TheWeiJun。时隔一个半月,App逆向章节又迎来了重大更新;今天给大家带来一个葫芦娃套娃的逆向案例。文中若有错误内容,欢迎各位读者多多指正;最后希望各位读者在阅读的同时不要忘记点赞+关注哦

目录

一、抓包分析

二、Jadx反编译

三、hook调试

四、算法分析

五、思路总结

趣味模块

    小东是一名后端开发工程师,自从上次使用了魔改md4算法+auth_token参数算法请求量控制了不少。但是好景不长,没过多久,恶意请求量就又卷土重来了。小东思索片刻后,在headers中加入了一个新的参数:signature。加上这套策略后,恶意请求量立马下降了很多。接下来,让我们去分析一下小东是如何设计的此方案吧!

一、抓包分析

1、首先使用神器"AirDroid"应用工具将手机端画面镜像到电脑本机,截图如下所示:

推荐理由:使用"AirDroid"的目的是为了方便在电脑端对手机画面进行截图分析,呈现详细流程给大家观看。

2、和以往一样,打开指定App,使用charles工具进行App抓包,截图如下:

经验分享:如果此处联网失败,是因为此App为国外应用,需要对charles应用进行配置,再抓包即可。

3、使用charles过滤筛选指定域名,然后访问指定页面,此时抓包截图如下:

说明:观察上图,我们可以确定本次分析的参数为x-nor-signature,初步判断该参数后,无法确定使用的什么加密手段。那么,接下来让我们进入反编译调试环节吧!

二、Jadx反编译

1、由于此App没有加壳,所以我们直接使用jadx打开指定apk,截图如下所示:

2、等待jadx反编译完毕后,使用最简单的方法(指定关键参数搜寻),截图如下:

3、经过分析及追踪java源代码,最后定位到x-nor-signature参数的位置如下图所示:

环节说明:分析上面代码,我们确定本次需要hook的函数为createNonce。接下来让我们去hook这个java函数的返回值,看看是不是我们想要的结果。

三、hook调试

1、通过分析java源码,构建frida hook代码如下:

2、启动frida脚本,执行刚刚写好的hook方法后,刷新手机页面,分析截图如下:

此刻,我们将charles中的该请求包也截图,进行对比分析:

总结:观察上面两张图的参数值,我们可以清楚的看到入参、出参和charles中的参数一一对应,接下来我们只需要通过python还原算法即可。

四、算法还原

1、结合java源码分析x-nor-signature参数,我们发现它其实是将三个入参做了hmacSha256、base64加密,截图如下:

总结:这里使用了葫芦娃套娃的思想,将第一次hmacSha256后的ret加密值同第二个参数进行hmacSha256加密,然后再将第二次的加密结果同第三个参数进行hmacSha256加密,最后使用base64进行编码。

2、Python代码还原算法后,完整代码如下:

3、代码运行起来后,打印结果如下图所示:

hook打印的结果如下:

charles应用抓包截图如下:

总结:通过对比,我们发现打印的值与frida hook及charles中抓包参数的结果值一致,此刻算法还原流程到此就结束了,请求headers中还有多个加密值,本期就不一一讲解了。

五、总结分享

回顾整个分析流程,本次难点主要概括为以下几点:

如何快速定位加密参数的位置

熟悉hmacSha256、hmacSha512

如何使用python还原java代码

  • 发表于:
  • 原文链接https://kuaibao.qq.com/s/20230318A05BXX00?refer=cp_1026
  • 腾讯「腾讯云开发者社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 cloudcommunity@tencent.com 删除。

扫码

添加站长 进交流群

领取专属 10元无门槛券

私享最新 技术干货

扫码加入开发者社群
领券