发布的一切文章,仅供学习逆向,请勿做盈利非法等用途,侵权等联系删除!
打开断点调试就可以发现是很明显的瑞数加密(ts 数组、debugger 位置...)
瑞树加密基本在两个点:(不同网站基本是一样的,但是字段名不一样)
请求参数:G5tA5iQ4
请求cookie:GW1gelwM5YZuT(一般都是结尾带 T 的这个,S 是请求响应回来的)
这里采用 rpc 破解参数(结尾介绍什么是 rpc):
目的:找生成的位置,有返回值的地方
引用:然后把函数不可直接调用的通过 window 进行调用,可直接调用的就直接调用
注意:我不会说的很细,有问题直接问
直接启动器看 send 方法,这里只有 open 的时候使用了 url 参数,点进去看,发现参数是 _$6N 生成的
直接 window.gk_params = _$6N 把方法拿出来以供调用,可以看到完全一致
rs的 cookie ,每次点击(mousedown,mouseup)都会重新生成
这里先 hook 一下,找到调用的地方 _$so 就是 cookie,追堆栈再看一下变量交换之前是什么
可以看到,第一次完全看到 cookie 是 _$w_ 那么就在这里的控制流开始做一个插桩(日志、条件断点随你)
这里来到控制流开始的地方
可以看到 _$w_ 以及 _$dT 两个参数运行的所有过程,现在就对这两个进行调试,找到 cookie 生成的地方
可以看到,当 _$dT 为 372、126、448 之后才把 cookie _$w_ 生成,于是修改原来的条件断点
把每次的 _$dT 都 push 进列表,然后这里取 3 个是为了精准定位,断点之后往下走
发现到 cookie 生成的地方,于是看堆栈,往回找
这里插桩的时候就发现,cookie 的生成和时间是有关系的,所以每次 cookie 都不一样
于是通过 window.gk_getcookie 把函数 _$6E 拿出来,但是参数其实会发现每次都是一样的所以这里直接拿就行了
通过这一次分析其实也就知道大概的流程了,当然了这只是非正面对抗的其中一种方法
不过貌似rs最新一代有不少地方都用了(应该),所以 5 的话看看就好
rpc 这个其实就是在浏览器上起一个 websocket 连接,与 python 等语言进行沟通,达到控制浏览器的目的(免补环境,可以只用来生成参数或者直接发请求),rpc 可以写成油猴插件,不想用别人的可以自己写,自己定制是非常爽的,这个部分这里就不讲了,有兴趣的留言
有人要说了那我为啥不用 selenium? 逆向方法是多样的,喜欢就好
仅供学习逆向,不做其它目的使用。