本此代码请参考github.com/guijialei-w…
老规矩,先找包,分析包,看看我们的任务
我们先要解决b参数和kiv参数,来获取到加密的数据,然后将其进行解密,这就是我们今天的大概任务
那么我们先来找这个参数的加密过程
我们还是先去搜一下interceptors来看看,找到之后,忽略这个的源码,我们在其他地方都打上断点
调试后我们发现,他的params已经加密完了,那么我们就知道,他的params里面的参数是在这之前就完成了,那么我们可以找找他之前的调用栈,观察之后发现他是异步的调用,那么我们就不知道其中的先后顺序了,我们可以一个一个的看,观察之后还是觉得这个栈里面的内容比较像,因为里面 有什么a.data,a.params,b,kiv什么的都有,所以我怀疑是这个,那么我就打上断点进行调试一下
具体的调试过程比较复杂,大概就是在收尾打上断点,然后加上监听,对t,s和a.params这三个参数进行监听,找到设置参数的具体位置,经过不断地调试,我们会发现
我们就去里面的函数去看,下面这个就是s的实现过程,那么我们去实现它就解决了一个参数了
下面这个是kiv的加密过程
在我们获取到这些参数后,我们就可以正常的拿到我们需要的加密后的数据结果,那么我们还需要获取到明文数据,那么我们在去找interceptors,里面的response来查找断点
这里进来的时候是密文,我们接着不断地调试,发现这里的t就是获取的明文,然后我们就去里面的t的获取函数看看,我们就找到了解密的入口,接着就用代码来实现就好了,就不细说了