阿里滑块验证码版本227破解(1)

亚洲最大电商阿里,为了防扒数据,做出了巨大的努力,越是遮遮掩掩,越要把他的衣服扒光了,与一众兄弟分享。今天是我生平第一次发文章,章法杂乱。阿里把这个fireyejs.js混淆到变态级别了,这种混淆具有两面性,o=30是初始化,o=25是滑动开始,o=40是取检验数据,生成227版本的字符串,o开始,接着是li。混淆到这种程度,矛盾的另外方面开始起作用了,就是可以根据li的变化提取运行指令。思路是:li如果确定,接下来的 switch (31 & li)就是确定的,当前的li运行后必须明确的把一个数值赋给li,根据当前的li和下一个li,就可以提取指令。提取出来的指令需要加工,里面对字符串的处理需要写成for循环。

下面是简单提取出来的指令,未经加工。

 ci = window,
                    Qo = s,
                    Yo = void 0,
                    mo = void 0,
                    li = (wo = o),
                    uo = (uo = "tcejbo").split("").reverse().join(""),
                    li = (co = typeof wo !== uo),
                    mo = void 0,
                    wo = mo,
                    mo = +o === o,
                    mo = void 0 === Yo,
                    wo = +o === o,
                    r.push(4, 3071828176897, 2, 1),
                    i(14, 2, -1),
                    uo = r.pop(),
                    co = uo,
                    uo = "",
                    So = "b",
                    Je = So += "ind",
                    So = "\u0219\u020c\u021b\u020f\u0206\u021b\u0204\u0208\u0207\u020a\u020c",
                    Ye = "",
                    we = 0,
                    we = (Y = P * fe),
                    Ce < _.length,
                    _ = ue,
                    ue = "sr",
                    Ce = ue += "c",
                    li = q,
                    q = 30 === o,
                    ue = "s",
                    ue += "ub",
                    ue += "stri",
                    Re = ue += "ng",
                    ue = "r",
                    ue += "ota",
                    ue += "giva",
                    ue += "n",
                    ue = ue.split("").reverse().join(""),
                    _e = ue,
                    r.push(83190, 56046782639, 2, 2),
                    i(14, 2, -1),
                    ue = r.pop(),
                    ne = ue,
                    ue = (ue = "yarrA").split("").reverse().join(""),
                    me = ue,
                    ue = "Ob",
                    ue += "j",
                    Qe = ue += "ect",
                    ue = "R",
                    ue += "egE",
                    jo = ue += "xp",
                    ue = (ue = "ytreporPenifed").split("").reverse().join(""),
                    so = ue,
                    ue = "ro",
                    ue = (ue += "rrE").split("").reverse().join(""),
                    He = ue,
                    ue = (ue = "teg").split("").reverse().join(""),
                    Ro = ue,
                    ue = "cd",
                    ue += "c_",
                    ue += "adoQ",
                    ue += "poas",
                    ue += "nfa76pfc",
                    ue += "Z",
                    ue += "Lmcfl_Sym",
                    ze = ue += "bol",
                    ue = (ue = "tnemucod").split("").reverse().join(""),
                    ei = ue,
                    r.push(14645503911, 4408175443116, 2, 1),
                    i(14, 2, -1),
                    ue = r.pop(),
                    Wo = ue,
                    ue = "SC",
                    ue += "RIP",
                    zo = ue += "T",
                    ue = "s",
                    ue += "etT",
                    ue += "im",
                    ue += "e",
                    _o = ue += "out",
                    ue = "g",
                    ue += "et",
                    ue += "El",
                    ue += "em",
                    ue += "entsBy",
                    Ho = ue += "TagName",
                    ue = "HE",
                    Fo = ue += "AD",
                    ue = "a",
                    ue += "ppen",
                    ue += "d",
                    ue += "Ch",
                    Vo = ue += "ild",
                    ue = "yx",
                    ue += "o",
                    ue += "rPo",
                    ue = (ue += "n").split("").reverse().join(""),
                    ho = ue,
                    ue = "\u0330\u032c\u032c\u0328\u032b\u0362\u0377\u0377",
                    Mo = "",
                    ao = 0,
                    ao - 216,
                    No = Ke.charCodeAt(Eo),
                    vo = No ^ Lo,
                    Lo = No,
                    To += String.fromCharCode(vo),
                    li = Oo,
                    Eo++,
                    Eo - 216,
                    No = Ke.charCodeAt(Eo),
                    vo = No ^ Lo,
                    Lo = No,
                 
要在Android App中接入HTML5滑块验证,你需要进行以下步骤: 1. 在Android App中嵌入WebView组件用于加载HTML5页面。 2. 在HTML5页面中引入阿里滑块验证码的JS SDK,并初始化验证码。 3. 在Android App中实现WebView的相关回调方法,以便在WebView中与JS交互。 下面是一个简单的实现示例: 1. 在布局文件中添加WebView组件 ``` <WebView android:id="@+id/web_view" android:layout_width="match_parent" android:layout_height="match_parent" /> ``` 2. 在Activity中加载HTML5页面,并初始化验证码 ``` public class MainActivity extends AppCompatActivity { private WebView mWebView; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); mWebView = findViewById(R.id.web_view); mWebView.getSettings().setJavaScriptEnabled(true); mWebView.setWebViewClient(new WebViewClient() { @Override public void onPageFinished(WebView view, String url) { super.onPageFinished(view, url); // 初始化阿里滑块验证SDK view.loadUrl("javascript:window.initSlideVerify()"); } }); mWebView.loadUrl("file:///android_asset/index.html"); } // 与JS交互的回调方法 @Override public boolean onKeyDown(int keyCode, KeyEvent event) { if (keyCode == KeyEvent.KEYCODE_BACK && mWebView.canGoBack()) { mWebView.goBack(); return true; } return super.onKeyDown(keyCode, event); } } ``` 3. 在HTML5页面中引入阿里滑块验证码的JS SDK,并初始化验证码 ``` <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title>滑块验证Demo</title> <script src="https://g.alicdn.com/sd/slide/0.1.4/slide.min.js"></script> </head> <body> <div id="verify-wrap"></div> <script> window.initSlideVerify = function() { var slideVerify = new SlideVerify('#verify-wrap', { mode: 'pop', vOffset: 5, barSize: { width: '100%', height: '50px' }, ready: function() { console.log('滑块验证组件初始化成功!'); }, success: function() { console.log('滑块验证通过!'); // TODO: 在JS中向Android发送验证通过的消息 } }); }; </script> </body> </html> ``` 这样就可以在Android App中接入HTML5滑块验证了。需要注意的是,在JS中向Android发送消息需要通过WebView的`addJavascriptInterface()`方法实现,具体可参考Android官方文档。
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

novacolas

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值