JS逆向:维普期刊&rs5(非正面对抗)

注意事项

        发布的一切文章,仅供学习逆向,请勿做盈利非法等用途,侵权等联系删除!

一、介绍

打开断点调试就可以发现是很明显的瑞数加密(ts 数组、debugger 位置...)

瑞树加密基本在两个点:(不同网站基本是一样的,但是字段名不一样)

请求参数:G5tA5iQ4

请求cookie:GW1gelwM5YZuT(一般都是结尾带 T 的这个,S 是请求响应回来的)

这里采用 rpc 破解参数(结尾介绍什么是 rpc):

目的:找生成的位置,有返回值的地方

引用:然后把函数不可直接调用的通过 window 进行调用,可直接调用的就直接调用

注意:我不会说的很细,有问题直接问

二、请求参数生成

直接启动器看 send 方法,这里只有 open 的时候使用了 url 参数,点进去看,发现参数是 _$6N 生成的

直接 window.gk_params = _$6N 把方法拿出来以供调用,可以看到完全一致

JS逆向:维普期刊&rs5(非正面对抗)_第1张图片

JS逆向:维普期刊&rs5(非正面对抗)_第2张图片

JS逆向:维普期刊&rs5(非正面对抗)_第3张图片

三、cookie 生成

rs的 cookie ,每次点击(mousedown,mouseup)都会重新生成

这里先 hook 一下,找到调用的地方 _$so 就是 cookie,追堆栈再看一下变量交换之前是什么

JS逆向:维普期刊&rs5(非正面对抗)_第4张图片

可以看到,第一次完全看到 cookie 是 _$w_ 那么就在这里的控制流开始做一个插桩(日志、条件断点随你)

JS逆向:维普期刊&rs5(非正面对抗)_第5张图片

JS逆向:维普期刊&rs5(非正面对抗)_第6张图片

这里来到控制流开始的地方

JS逆向:维普期刊&rs5(非正面对抗)_第7张图片

可以看到 _$w_ 以及 _$dT 两个参数运行的所有过程,现在就对这两个进行调试,找到 cookie 生成的地方

可以看到,当 _$dT 为 372、126、448 之后才把 cookie _$w_ 生成,于是修改原来的条件断点

JS逆向:维普期刊&rs5(非正面对抗)_第8张图片

把每次的 _$dT 都 push 进列表,然后这里取 3 个是为了精准定位,断点之后往下走

JS逆向:维普期刊&rs5(非正面对抗)_第9张图片

发现到 cookie 生成的地方,于是看堆栈,往回找

JS逆向:维普期刊&rs5(非正面对抗)_第10张图片

JS逆向:维普期刊&rs5(非正面对抗)_第11张图片

这里插桩的时候就发现,cookie 的生成和时间是有关系的,所以每次 cookie 都不一样

JS逆向:维普期刊&rs5(非正面对抗)_第12张图片

于是通过 window.gk_getcookie 把函数 _$6E 拿出来,但是参数其实会发现每次都是一样的所以这里直接拿就行了

总结

通过这一次分析其实也就知道大概的流程了,当然了这只是非正面对抗的其中一种方法

不过貌似rs最新一代有不少地方都用了(应该),所以 5 的话看看就好

 rpc 这个其实就是在浏览器上起一个 websocket 连接,与 python 等语言进行沟通,达到控制浏览器的目的(免补环境,可以只用来生成参数或者直接发请求),rpc 可以写成油猴插件,不想用别人的可以自己写,自己定制是非常爽的,这个部分这里就不讲了,有兴趣的留言

有人要说了那我为啥不用 selenium? 逆向方法是多样的,喜欢就好

仅供学习逆向,不做其它目的使用。

你可能感兴趣的:(python)