1,先分析,看需要逆向的参数有哪些
触发请求后有两个包

点进这个public这个包可以看到在响应数据里面有一串密文,但是这可不是加密的数据哈,这个其实是RSA加密所需的私钥,数据在下面的包里面,所以py需要发送两次请求,第一次是获取这个私钥,第二次是根据这个私钥给第二个包发送请求,因为这个私钥是后端发过来的所以每次请求都会变化

打开第二个包后可以看到明文数据在这里

通过分析可以得知,载荷里面的params是需要逆向的,而其他地方都不需要

2,hook定位:用hook-stringfy

3,跟栈,因为跟栈的步骤比较繁琐,所以这里直接给结论了,跟到如图所示的位置以后就已经定位到了,这里有一个setPublicKey这种对于我们爬虫玩家来说比较敏感的字眼就可以打上断点来验证

4,接下来就是扣核心代码

5,通过不断的扣代码加导入标准库以及必要的改写,最终拿下

6,这里我有一个要强调的点,这个点对于熟悉使用Jsencrypt库的来说应该都知道,
就是这个
里面的this.getKey()的this可以改成
,而这个rsa是通过实例化Jsencrypt的对象
![]()
7,接下来通过xhr断点试试

8,触发请求后,可以看到send的名称,这个params的加密参数也可以看到

9,我们跟栈,直接跟异步之前的一个栈

10,跟到这后打上断点触发请求

11,鼠标悬停后,进到函数里面去

12,进去后

13,再从A[a]这个函数进去后

14,给——invoke打上断点触发请求后,我们又需要进到invoke里面去,然后我们需要给return后的语句打上断点,就是这个value,

15,然后就按这个思路一直跟下去,最终也是能定位到跟hook一样的效果,我这里就不再继续跟了,感兴趣的小伙伴们可以试试xhr断点,很考验人的读代码能力的,哈哈
求个赞,给赞的兄弟们是支持我的最大动力

被折叠的 条评论
为什么被折叠?



