最近有个需求需要分析出来阿里的滑块算法.
但是一堆switch case,太恶心了,也没找到一键反混淆switch case的方案,
本来想分析出来纯js算法.结果分析了3个月,勉强可以用RPC调用算法了,分析纯js算法估计还得1,2个月.放弃了. 反正rpc调用也能满足我的需求,也支持多线程.
核心文件是fireyejs.js,nc.js也采集了一些信息.
有js检测,如果修改了js,会被检测到,还获取了所有的全局变量和全局函数检测是否增加了用户修改了js,添加了全局变量和全局函数. 坐标,时间,等等信息.
函数检测源代码有没有被替换主要是检测了这个函数:function i(o, r, l, u, g, C)
226算法也是这个函数里来的.
采集到这些值以后,经过了一系列非常复杂的算法加密, 加密完了以后又用了自定义base64的算法加密.
我分析的滑块地址:
API测试接口:
POST http://1.14.93.179:9999/task/execTask
POST数据:{}
POST Man调用截图:
需要的其他参数umidToken,NCAPPKEY,NCTOKENSTR,x5secdata等信息,我直接在服务器自动获取了.
POST传的时候不需要传任何参数,直接就会返回x5sec当cookie用就可以了.