1.抓住包裹
使用Charles和Posmet通过VPN代理来捕获包,而不是为WiFi.使用VPN设置HTTP代理,以同时捕获HTTP(S)和套接字包。
2.掌握目标用户的用户信息
它的URL是https://yapi.haohaozhu.cn/mem ...
加密的参数Shawshank,打开JADX以搜索Shawshank,并了解该参数是N2类中的常数e。接下来,搜索n2.e,然后调用锁定位置。
com.hzhu.m.f.b.d.a
关键代码:
使用异议动态调试
钩子下的上述方法
得到了答案
从结果中学到的是,他有两种沉重的负载方法。
因为通过JADX分析,我们知道参数Java.util.treemap的方法是我们想要的。因此,修改对象代码,在需要挂钩之后添加空间和参数类型,您可以进一步锁定特定的挂钩方法。
-dump -ags:打印参数
-dull-backtrace:打印呼叫堆栈
-dump-return:打印返回值
然后现在对象正在等待
通过上述结果,我们知道回报值
弗里达
ESSENCEUSE对象生成Frida代码模板。
结果
异议只能生成近似框架代码。需要自行添加特定内容。保存并运行它。执行代码后
为了获得错误提示,我们可以根据错误提示进一步优化代码。在这里,我们知道有两种重载方法。
条目的参数是
下一步是找到算法的位置。
第一的,
我们知道他的返回值是字节[]类型,然后查看外层com.hzhu.base.f.x.a.a.a.a
根据JADX上方的提示
在盲目猜测之后,我进行了基本64操作(后来确认确实如此)。
结果替换后,它尚未完成,接下来还有另一个
检查代码,并知道N2.a是qepcsu2cckruqxb6h.itry2p2tx。
在这一点上,已经对其进行分析。
Shawshank的结果是上面的SB.ToString()值。
简单结果
1.传递目标字符串{“ uid”:“ 3171385”}。请注意,这是一个字符串。UID是用户的ID
2.com.hzhu.base.f.x.b.a生成字节阵列的餐
3.然后进行base64操作,然后将字节数组变成字符串。
4.在结果的前面缝合n2.a,以获取最终的加密参数。
以上是该共享的所有内容。如果您想了解更多信息,请转到公共帐户:Python编程学习圈,每日干货共享
原始:https://juejin.cn/post/7099655828164542501
