阿里滑块x5sec 226算法分析

作者面临一个需求,需分析阿里滑块算法,但原始代码由大量switchcase构成且高度混淆。尝试解析纯JS算法耗时长,最终选择通过RPC调用。核心文件fireyejs.js和nc.js包含关键功能,如函数检测和加密。滑块地址和API测试接口详述了研究过程。
摘要由CSDN通过智能技术生成

最近有个需求需要分析出来阿里的滑块算法.

但是一堆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的算法加密. 

我分析的滑块地址:

https://passport.taobao.com/ac/password_find.htm?spm=a2107.1.0.0.30d111d9oo8f0F&from_site=0&lang=zh_CN&app_name=tbTop&tracelog=signin_main_pass

API测试接口:

POST http://1.14.93.179:9999/task/execTask

POST数据:{}

POST Man调用截图:

需要的其他参数umidToken,NCAPPKEY,NCTOKENSTR,x5secdata等信息,我直接在服务器自动获取了.

POST传的时候不需要传任何参数,直接就会返回x5sec当cookie用就可以了.

### 回答1: 易语言过阿里x82yx5sec滑块ua算法例子是指使用易语言编写代码来模拟阿里x82yx5sec滑块验证码的ua算法阿里x82yx5sec滑块ua算法是一种用于识别用户身份的算法,通过比较用户的ua信息是否与真实浏览器的ua信息相符来判断用户是否为机器人。下面是一个使用易语言实现阿里x82yx5sec滑块ua算法的例子: ```易语言 /****************************** * 功能:判断ua信息是否符合阿里x82yx5sec滑块算法 * 参数:ua-用户的ua信息 * 返回值:True-符合算法,False-不符合算法 ******************************/ Function IsUaValid(ua) body = StringToByte(ua) //将ua字符串转化为字节数组 ua_sum = 0 For i = 0 To Len(body)-1 ua_sum = ua_sum + body[i] Next // ua_sum是计算ua信息所有字节的和 ua_hash = ua_sum Mod 64 // ua_hash是ua_sum与64取模的结果 If ua_hash = 35 Then Return True Else Return False EndIf EndFunction /****************************** * 主程序 ******************************/ ua = "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/89.0.4389.82 Safari/537.36" If IsUaValid(ua) Then Print("该ua符合阿里x82yx5sec滑块算法") Else Print("该ua不符合阿里x82yx5sec滑块算法") EndIf ``` 上述代码实现了一个名为IsUaValid的函数,用于判断给定的ua信息是否符合阿里x82yx5sec滑块算法。首先将ua信息转化为字节数组,然后计算字节数组中所有字节的和,并将结果与64取模得到ua_hash。最后,通过判断ua_hash是否等于35(阿里x82yx5sec滑块算法的校验值)来判断给定的ua信息是否符合算法。主程序中给定了一个示例的ua信息,并调用IsUaValid函数进行判断,并输出结果。 请注意,上述代码仅为示例,实际的阿里x82yx5sec滑块ua算法可能更加复杂,并且易语言可能不是实现该算法的最佳选择。 ### 回答2: 易语言是一种基于汇编语言的高级编程语言,它可以用来开发Windows平台的应用程序。阿里巴巴的x82yx5sec滑块UA算法是一种用于验证用户身份的算法,它能够识别机器人行为并提供更安全的验证措施。 在易语言中实现x82yx5sec滑块UA算法的例子可以包括以下几个步骤: 1. 导入相关支持库:在易语言中,需要导入一些支持库来实现滑块UA算法。可以使用内置的网络相关库,如NetExtern和NetWeb。 2. 获取用户行为数据:通过获取用户鼠标的点击和滑动行为数据,可以收集到用户的操作轨迹。 3. 生成滑块的位置和大小:在用户界面中生成一个滑块,确定其位置和大小,以便用户通过鼠标操作拖动滑块。 4. 模拟用户操作:通过模拟用户的鼠标移动操作,将滑块移动到指定的位置。 5. 计算滑块位置:根据用户的操作轨迹和滑块的移动情况,计算出滑块的最终位置。 6. 验证用户身份:将计算得到的滑块位置和实际滑块位置进行比较,如果差距较小,则验证通过;否则,需要重新验证用户身份。 以上是一个简单的易语言实现x82yx5sec滑块UA算法的例子。在实际应用中,还需要考虑更多的细节和安全性措施,以确保算法的准确性和可靠性。
评论 10
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值