极验三代滑块验证分析

声明

本文内容仅限于安全研究,不公开具体源码。维护网络安全,人人有责。

w值生成逆向分析

目标链接:aHR0cHM6Ly93d3cuZ2VldGVzdC5jb20vZGVtby9zbGlkZS1mbG9hdC5odG1s 首先打开f12跟栈寻找w值生成的位置。

打断点分析发现w值已经被生成了,并且在这个栈中没有发现一些和w值参数生成有关系的位置,所以我们跟栈继续分析寻找w值参数生成的位置。

简单的跟栈分析就不说了相信大家都可以找到加密点,所以直接到加密点进行分析。

很直观的看见w值的生成是由参数 i + r。 i是由一个对象里面的函数传入了一个o生成的。 所以我们需要分别将 r o i三个参数生成逆向出来。首先在三个参数生成的位置打上断点进入函数内部。

复制所有代码到nodepad++上折叠所有层次发现生成r的方法包裹在一个对象的内部所以我们将这个对象导出即可调用里面的函数r值的生成就搞定了。接下来我们看一下o参数的生成,进入函数内部同样的手法折叠所有层次分析。

发现是一个方法调用后会返回一个对象使用里面其中一个方法传入两个参数就得到了我们想要的o值。

同样的办法我们将这个函数导出到全局然后仿照着他的逻辑去生成即可。还剩下最后一个i参数还是一样打上断点进入方法内部进行分析。

发现生成的i函数也是在对象P里面的方法所以和r值一样我们将p对象导出使用里面的方法将o作为参数传进去就得到我们想要的i值了 最后将生成的i值和o值进行相加即可得出我们想要的w值。同样我们封装一个函数进行w值的参数生成。

成功得到我们想要的w值。长度为2860,对比一下我们浏览器上的w值发现长度也是2860。

到此w参数生成就结束了,第二个第三个w值生成亦是如此。成品如下展示。

经验分享 程序员 微信小程序 职场和发展