某电商App Sign签名算法解析 内部类的Hook

编程入门 行业动态 更新时间:2024-10-27 10:27:11

某电商App Sign签名算法解析  内<a href=https://www.elefans.com/category/jswz/34/1765347.html style=部类的Hook"/>

某电商App Sign签名算法解析 内部类的Hook

一、目标

我们来分析另一个电商App的sign签名算法,先打开一个商品页,抓包结果:

二、步骤

jadx全局搜索 sign

晕倒,7000多个结果,肯定没法玩。 再尝试下 sign="sign"

这次效果不错,只有几十个结果,而且这个很眼熟,点进去看看:

这也太明显了,getSign 函数名都起的这么霸气。

Hook getSign

var  DispatchParamBuilderCls = Java.use('anet.channel.strategy.dispatch.DispatchParamBuilder');
DispatchParamBuilderCls.getSign.implementation = function(a,b){var result = this.getSign(a,b);console.log(">>> getSign " + result);return result;
}

结果

>>> getSign a4892b56967b2c11a07be8b01581e05db916d60b

可以了,收工……

Hook内部类

还没完, 我们仔细看一下 getSign函数的参数

 public static String getSign(IAmdcSign iAmdcSign, Map<String, String> map)

这个 IAmdcSign 是什么东东?点进去看下:

public interface IAmdcSign {String getAppkey();String sign(String str);boolean useSecurityGuard();
}

它只是一个接口,我们必须要找到这个接口的实现,然后再Hook sign才叫完美。

那就继续搜索 IAmdcSign

这里有个new的操作,双击进去看看

太棒了,这就是 IAmdcSign 的实现类。

不过这里我们犯难了,这个类的类名是什么?总不能是 class anet.channel.SessionCenter.C12541 吧?

我们记住这里的代码行是 142

然后切换到 Smali 代码

啊哈,就是你了,anet/channel/SessionCenter$1

迫不及待的hook之

var signOperCls = Java.use('anet.channel.SessionCenter$1');
signOperCls.sign.implementation = function(a){var result = this.sign(a);console.log(a);console.log(" >>> Sign " + result);return result;
}

结果就很完美了:

{"carrier":"联通","clientIsp":"100026","code":1000,"cv":0,"dns":[{"aisles":[{"cto":10000,"heartbeat":0,"port":443,"protocol":"https","retry":1,"rto":10000},{"cto":10000,"heartbeat":0,"port":80,"protocol":"http","retry":1,"rto":10000}],"host":"log.mmstat","ips":["101.11.251.76"],"strategies":[],"ttl":300,"version":"0"},{"aisles":[],"host":"fourier.xxx","ips":[],"strategies":[],"ttl":300},{"aisles":[],"host":"sjarvis.xxxxx","ips":[],"strategies":[],"ttl":300}],"ip":"121.129.37.71","uid":"2200620453058","unit":"center"}>>> Sign 0c52785056833613278c4746fe9cfa2cfae482ee

参数干净,下一步 RPC调用之就很简单了。

三、总结

不要太依赖java的反编译,源码级反编译仅供参考,还是需要有一定的Smali代码阅读能力

参考: .html[Java内部类详解]

你左顾右盼做着各种打算,却不知道生活已然过去大半。

TIP: 本文的目的只有一个就是学习更多的逆向技巧和思路,如果有人利用本文技术去进行非法商业获取利益带来的法律责任都是操作者自己承担,和本文以及作者没关系,本文涉及到的代码项目可以去 奋飞的朋友们 知识星球自取,欢迎加入知识星球一起学习探讨技术。有问题可以加我wx: fenfei331 讨论下。

关注微信公众号 奋飞安全 ,最新技术干货实时推送

更多推荐

某电商App Sign签名算法解析 内部类的Hook

本文发布于:2024-03-15 11:36:21,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/34/1738798.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:部类   算法   App   某电商   Hook

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!