直接搜索_sig3,直接就一处nice。
这里根据入参分析,a2应该是url做了一些处理,str2就是刚才拿到的sig,a4是a3.a()的返回值,最重要的就是这个a3了,直接跟进a3.a()。
发现o0是个接口,找到实现
发现就一处实现了这个接口,跟进
找到a(String str)这样的方法
继续跟进v.b
返现只有atlaSign这个方法有用,继续跟进KSecurity.atlasSign()
跟进d.a
这里就是最终要返回sig3的地方了,catch都忽略,ivar对象存入了一些信息,包括刚才传入的字符串,最后return的str2是ivar.j()。看来是0335这里对ivar.j()做了赋值操作, 跟进看下。
是接口,继续找实现部分
依然只有一处
最后这v1应该就是我们想要的sig3了,跟进getRouter().a。
发现是接口,继续找到实现
发现这里是调用so。
继续跟进f.a
发现so文件
hook点一
先hook这个地方看下参数(url处理过后+sig),这个返回值也就是最终的sig3参数
hook确定参数就是url+sig的字符串。
返回值为2201241949d50b5c5d5dc086e33e32567763144148,抓包比对确定参数没错。
hook点二
这里hook之后的参数为
到这里就分析完了。
测试结果: