大润发优鲜app之paramsMD5参数分析
今天我们要分析的app 是大润发优鲜, 版本号1.4.0,小伙伴们可以去各大应用商定自行下载,软件使用360壳且混淆,APP校验了HTTPS证书,需要使用xposed的JustTrustMe模块。
参考链接:https://core.vivcms.com/2020/08/14/420.html,
转载请注明出处:
https://blog.csdn.net/weixin_38819889/article/details/122456132
同系列文章推荐下:
1.聚美app之 _sign参数分析
2.大润发优鲜app之paramsMD5参数分析
3.美图秀秀 sig参数分析
4.贝壳app Authorization参数分析
5.豆瓣app sig参数分析
6.半次元app之data参数分析
1.抓个包
打开charles抓个包,里面有一个参数叫paramsMD5
,这就是今天要研究的参数。然后打开jadx,搜索半天发现啥也没有搜到,猜测该app是加壳。
2.查壳
我们先打开查壳工具,查一查壳,这里是mac终端使用的,工具叫ApkScan-PKID
,有些壳查不到,但是这里勉强够用了。
可以看到用的是360的壳。
3. 脱壳
然后我们用下葫芦娃的工具FRIDA-DEXDump
,进到frida_dexdump
所在的目录,直接运行python3 main.py
,默认三秒钟,然后就成功把软件的壳脱掉了,拿到dex文件。
再然后把一个个dex文件重新合并拼装,打包成一个新的apk文件,效果如下:
4.jadx静态分析
这里搜索关键字 "paramsMD5"
,就2个地方,点进去看看这个this.f13604a.put("paramsMD5", b(a2));
然后来到这里,
发现 data = a2
,paramsMD5=b(a2);
,其实这里面的a2就是抓包拿到的data,也就是请求传递的body,b()
方法是个啥,跟进去看看。
来到这里,b()
方法java代码如下:
public static String b(String str) {try {JSONObject jSONObject = new JSONObject(str);boolean z = false;if (jSONObject.has(f13597d)) {z = jSONObject.getBoolean(f13597d);}String str2 = "";if (jSONObject.has(f13599f)) {str2 = jSONObject.getString(f13599f);}String str3 = "";if (jSONObject.has(f13598e)) {str3 = jSONObject.getString(f13598e);}String str4 = "";if (jSONObject.has(f13600g)) {str4 = jSONObject.getString(f13600g);}return b.a(str + (z + str2 + str3 + str4));} catch (JSONException e2) {e2.printStackTrace();return b.a(str);}
}
这里直接看返回值 b.a(str + (z + str2 + str3 + str4));
,z和str2和str3和str4到底是个啥,跟进去看看。
看到这里我们大概明白了,就是声明一个JSONObject jSONObject = new JSONObject(str);
,就是json对象,然后依次判断取出这四个字段,组装成一个新的字符串,交给b.a()
方法执行。
b.a()代码如下:
public static String a(String str) {String str2 = "@456yx#*^&HrUU99";if (e.f13526e.equals(e.a().b()) || e.f13527f.equals(e.a().b())) {str2 = "@yx123*&^DKJ##CC";}try {SecretKeySpec secretKeySpec = new SecretKeySpec(str2.getBytes(), "HmacSHA256");Mac instance = Mac.getInstance(secretKeySpec.getAlgorithm());instance.init(secretKeySpec);return Base64.encodeToString(instance.doFinal(str.getBytes()), 2);} catch (Exception e2) {e2.printStackTrace();return null;}}
看名字,大概就能猜到这里使用的HmacSHA256+base64
组合算法(如果不了解该算法,请看文章: https://blog.csdn.net/weixin_38819889/article/details/122455802),到这里静态分析差不多,拿出我们的frida动态调试一下。
5.frida动态调试
js代码如下:
Java.perform(function (){var g_class = Java.use("com.rt.market.fresh.application.g");g_class.b.overload("java.lang.String").implementation = function(v1){console.log("↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓");console.log("Sig入参-参数:" + v1);var res = g_class.b(v1);console.log("Sig加密后的数据:" + res);console.log("↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑");return res;}var b_class = Java.use("com.rt.market.fresh.application.g$b");b_class.a.overload("java.lang.String").implementation = function(n1){console.log("a方法入参-参数:" + n1);var res = b_class.a(n1);console.log("a方法返回-数据:" + res);return res;}})
执行命令看看效果:
frida -U com.rt.market.fresh -l hook_dufxian.js
好了,到此分析完成。
6.算法还原
加密还算简单,最后已经还原成python,测试对比一下paramsMD5: e675/mblyBuNdX8+uWUpx5FwGOHWclKILz2UDDtPDaw=
,值对得上。
完成,手工!
大润发优鲜app之paramsMD5参数分析相关推荐
- 最新大润发优鲜小程序逆向分析
目标小程序:大润发优鲜小程序 重要说明:文章教程仅供参考学习,请勿用于非法用途,否则后果自负. 目录 1.需要准备的工具 2.工具预先初始化准备
- 某次元app之data参数分析
今天我们要分析的app 是5Y2K5qyh5YWD54mI5pys5Y+3djUuMC44 ,小伙伴们可以去各大应用商定自行下载. 同系列文章推荐下: 1.聚美app之 _sign参数分析 2.大润发 ...
- 聚美app之 _sign参数分析
今天我们要分析的app 是聚美优品, 版本号v8.781 (当前最新版),小伙伴们可以去各大应用商定自行下载. 转载请注明出处: https://blog.csdn.net/weixin_388198 ...
- 飞瓜快数app之sign参数分析
趁着还有一些记忆,赶紧记录下. 今天我们要分析的app 是飞瓜快数,版本号v1.0.8 ,小伙伴们可以去各大应用商定自行下载. 只做参数分析,用来学习,如有侵权,请联系博主,第一时间删除. 转载请注明 ...
- 史上最大规模,天猫新零售如何爆改100家大润发?
阿里究竟能给大润发带来什么改变? 自从阿里巴巴集团224亿战略入股大润发母公司高鑫零售的消息披露,这就变成一个令人期待的问题.这是中国商业零售史上最大规模的新零售改造升级行动. 阿里巴巴集团CEO张勇 ...
- 淘宝心选在大润发开店了,背后意味着什么?
相比其他精选电商平台,淘宝心选能够借助大润发等阿里新零售大军加快落地的脚步,而大润发等也可以因此丰富产品线,满足年轻顾客群体的需求. 6月28日,"淘宝心选·生活家"首店在上海大润 ...
- 新零售如何爆改100家大润发门店丨对话大润发董事长黄明端
阿里巴巴究竟能给大润发带来什么改变? 自从阿里巴巴集团224亿战略入股大润发母公司高鑫零售的消息披露,这就成了一个令人期待的问题. 这是中国商业零售史上最大规模的新零售改造升级行动.6月11日,大润发 ...
- 沃尔玛、永辉、大润发新尝试迭起,未来零售到底怎么个玩法?
关于未来零售,零售行业至今仍然没有一个深入浅出的定性描述.虽然行业说不清楚未来零售的具体模样,但是近几年来行业内不少企业都在积极寻求新的转变,试图描绘未来零售的蓝图. 目前,零售行业内积极寻求新尝试的 ...
- 最大规模传统零售升级揭晓 100家大润发线上线下同步加入天猫618
最大规模的一次传统零售业的新零售升级行动,今日揭开面纱. 6月11日,大润发宣布,全国已有100家大润发门店完成天猫新零售升级改造,将全面参与天猫618理想生活狂欢季.改造后的门店借鉴了盒马和淘鲜达的 ...
最新文章
- 机器学习 —— 概率图模型(学习:CRF与MRF)
- React 组件js文件中如何引入其他的js 文件数组
- ASPNET 页面编码
- vim如何在底部打开新窗口
- 利用 LotusScript 灵活操作 Lotus Notes 富文本域
- TensorFlow第十二步 自编码器去噪降维
- Linux学习总结(2)——linux常用命令大全
- Assignment 双向队列
- OpenGl图元基本操作之点选高亮
- 各版本JQuery文件下载
- 使用html仿支付宝首页,仿支付宝首页头部伸缩效果
- 计算机合并单元格怎么操作,excel怎么合并单元格方法
- Verilog学习——T触发器
- 互联网公司招聘--奇虎360--软件测试--笔试题
- 阅读不懂,图书之过——《大话设计模式》创作历程
- RxSwift极简入门
- 联发科mt6735详细参数_联发科MT6737和MT6735芯片资料和性能对比
- 用js实现背景颜色改变
- 用matlab演奏周杰伦的《七里香》
- 双曲线知识的简单回顾
热门文章
- dom4kj解析xml
- IDEA连接Mysql报错: 未找到驱动程序类 ‘com.mysql.cj.jdbc.Driver‘. Change driver class
- timeit统计运行时间
- vue打包后图片路径错误
- 马云致投资者公开信:大数据云计算是阿里未来十年核心战略之一
- ios 获取视频截图
- linux cache and buffer【转】
- POJ1523:SPF(无向连通图求割点)
- 给vs2010安装上cocos2d-x的模版
- Repeater控件的分隔线