zoukankan      html  css  js  c++  java
  • 兄弟们,我打算抠100个网站JS加密代码召唤,一个也跑不掉,这次轮到小虎牙

    摘要:友情提示:在博客园更新比较慢,有兴趣的关注知识图谱与大数据公众号吧。本次研究虎牙登录密码加密JS代码,难度不大,依然建议各位读者参考文章独自完成,实在抠不出来再参考这里的完整代码:从今天开始种树

    准备

    打开网站虎牙,点击登录标签,跳到登录界面:
    在这里插入图片描述

    按下F12,输入错误的账号密码,查看发送的网络请求,从名字就能确定是哪个请求,看下图:
    在这里插入图片描述
    看一下都提交了哪些参数,查看Formdata,可以看粗来password已经被加密了:在这里插入图片描述

    好了,那就通过调用栈进去直接查找password关键字,查看调用栈:
    在这里插入图片描述
    依然通过名字来判断点到哪个js文件。进去以后查找password,我找的适合password一共有13处,慢慢翻,翻到酷似加密的地方,打上断点:
    在这里插入图片描述

    调试阶段

    接下来激活断点(即输入账号密码,点击登录按钮)就跳到下面的环节:
    在这里插入图片描述

    点击下一步就跳到下面这里:
    在这里插入图片描述
    一步一步运行,上下拉一下看看,SHA1代码并不多,直接抠出来(能找到结尾的地方的吧):

          SHA1: prototype = {
                hexEncode: function(e) {
                    return this.toHex(this.core(this.toArray(e)))
                },
                toArray: function(e) {
                    for (var t = (e.length + 8 >> 6) + 1, o = new Array(16 * t), n = 0; 16 * t > n; n++)
                        o[n] = 0;
                    for (n = 0; n < e.length; n++)
                        o[n >> 2] |= e.charCodeAt(n) << 24 - 8 * (3 & n);
                    return o[n >> 2] |= 128 << 24 - 8 * (3 & n),
                    o[16 * t - 1] = 8 * e.length,
                    o
                },
                toHex: function(e) {
                    for (var t = "0123456789abcdef", o = "", n = 0; n < 4 * e.length; n++)
                        o += t.charAt(e[n >> 2] >> 8 * (3 - n % 4) + 4 & 15) + t.charAt(e[n >> 2] >> 8 * (3 - n % 4) & 15);
                    return o
                },
                core: function(e) {
                    for (var t = e, o = new Array(80), n = 1732584193, a = -271733879, s = -1732584194, i = 271733878, r = -1009589776, c = 0; c < t.length; c += 16) {
                        for (var d = n, l = a, u = s, p = i, m = r, h = 0; 80 > h; h++) {
                            o[h] = 16 > h ? t[c + h] : this.rol(o[h - 3] ^ o[h - 8] ^ o[h - 14] ^ o[h - 16], 1);
                            var g = this.add(this.add(this.rol(n, 5), this.ft(h, a, s, i)), this.add(this.add(r, o[h]), this.kt(h)));
                            r = i,
                            i = s,
                            s = this.rol(a, 30),
                            a = n,
                            n = g
                        }
                        n = this.add(n, d),
                        a = this.add(a, l),
                        s = this.add(s, u),
                        i = this.add(i, p),
                        r = this.add(r, m)
                    }
                    return new Array(n,a,s,i,r)
                },
    		...
    		篇幅有限,省略了
    		...
            }
    

    python运行

    老掉牙的代码来了

    import execjs
    with open('..//js//huya.js', encoding='utf-8') as f:
        huya= f.read()
    js = execjs.compile(huya)
    logid = js.call('hexEncode', "123456")
    print(logid)
    

    运行结果:

    在这里插入图片描述
    抠成功。

    结束

    由于代码放在一篇文章的话太多,所以完整代码放在了这里从今天开始种树,更多内容关注下面的公众号,当然不关注也无所谓。
    在这里插入图片描述

  • 相关阅读:
    第三次冲刺
    第二次冲刺
    第一次冲刺
    Beta版本的发布
    第七次冲刺
    SpringMVC+Spring+mybatis 项目实践
    JSP显示新闻
    一个简单的静态邮箱登录界面
    Java Web 基础
    总结
  • 原文地址:https://www.cnblogs.com/luohua13950/p/13581113.html
Copyright © 2011-2022 走看看