某手sig与__NS_sig3 hook分析(二)

时间:2024-04-03 09:32:32

直接搜索_sig3,直接就一处nice。
某手sig与__NS_sig3 hook分析(二)

这里根据入参分析,a2应该是url做了一些处理,str2就是刚才拿到的sig,a4是a3.a()的返回值,最重要的就是这个a3了,直接跟进a3.a()。
某手sig与__NS_sig3 hook分析(二)

发现o0是个接口,找到实现
某手sig与__NS_sig3 hook分析(二)
发现就一处实现了这个接口,跟进
某手sig与__NS_sig3 hook分析(二)
找到a(String str)这样的方法
某手sig与__NS_sig3 hook分析(二)
继续跟进v.b
某手sig与__NS_sig3 hook分析(二)

返现只有atlaSign这个方法有用,继续跟进KSecurity.atlasSign()某手sig与__NS_sig3 hook分析(二)
跟进d.a
某手sig与__NS_sig3 hook分析(二)
这里就是最终要返回sig3的地方了,catch都忽略,ivar对象存入了一些信息,包括刚才传入的字符串,最后return的str2是ivar.j()。看来是0335这里对ivar.j()做了赋值操作, 跟进看下。
某手sig与__NS_sig3 hook分析(二)

是接口,继续找实现部分
某手sig与__NS_sig3 hook分析(二)

依然只有一处
某手sig与__NS_sig3 hook分析(二)
最后这v1应该就是我们想要的sig3了,跟进getRouter().a。某手sig与__NS_sig3 hook分析(二)
发现是接口,继续找到实现
某手sig与__NS_sig3 hook分析(二)
发现这里是调用so。
某手sig与__NS_sig3 hook分析(二)

继续跟进f.a某手sig与__NS_sig3 hook分析(二)
发现so文件
某手sig与__NS_sig3 hook分析(二)

hook点一
先hook这个地方看下参数(url处理过后+sig),这个返回值也就是最终的sig3参数
某手sig与__NS_sig3 hook分析(二)
hook确定参数就是url+sig的字符串。某手sig与__NS_sig3 hook分析(二)
返回值为2201241949d50b5c5d5dc086e33e32567763144148,抓包比对确定参数没错。

hook点二
某手sig与__NS_sig3 hook分析(二)
这里hook之后的参数为
某手sig与__NS_sig3 hook分析(二)
到这里就分析完了。

测试结果:
某手sig与__NS_sig3 hook分析(二)

sig参数分析