某里系227逆向记录

搞过验证码的童鞋都比较清楚,某里系验证码一直是国内天花板存在,本次就带大家来研究下这个技术。

注:仅是分享,不做商业用途

某里系227逆向记录_第1张图片

| 抓包分析

手动拉动验证码进行抓包分析,可以发现在analyze.jsonp 这个接口里面有一个参数 n 里面标有227。咱们就称它为某里系227版本吧

某里系227逆向记录_第2张图片

注:对于这个版本的验证码,解决n参数即可正常过码,返回0既是成功

| 断点调试

由于是验证码操作,找到浏览器事件监听器断点->鼠标,选中mousedown鼠标事件,触发验证码的时候给他断住,从入口开始分析

某里系227逆向记录_第3张图片

进去代码里面,会看到断在这个位置,且里面有一个mousemove事件

某里系227逆向记录_第4张图片

定位到鼠标定位,断点断住后滑动滑块,尝试后发现验证通过时会从S方法走到I方法然后最终走到 m 方法

某里系227逆向记录_第5张图片

从这里进入M方法进行跟踪,可以发现有验证码发包等参数,大家可以对比analyze.jsonp 这个接口,所以可以断定参数就是这里生成的 o.__fy.getFYToken(o.__fy_options)。

某里系227逆向记录_第6张图片

继续跟进这个方法、可以走到 this.fyObj.getFYToken(a) 这个方法,继续从这里跟进去可以走到return i(40, e)这个方法,最终的结果就是这里返回的,也就是fireyejs文件。

某里系227逆向记录_第7张图片

注:他这里就是调用I方法,经过一些大的循环生成对应的值。如果想扣算法的情况下,建议先使用AST还原,否则准备大板凳扣到秃头吧。

到此整个代码分析就算完毕了。

这里给大家准备一个还原之后的代码,由原本的2万多行变成1千多行代码,有需要的关注我或者加V-》tl210329 进行领取。

某里系227逆向记录_第8张图片

你可能感兴趣的:(网络爬虫,JavaScript逆向)