js破解 X笔网登录

https://fenbi.com/page/home

首先登录抓包

 

直接搜索 persistent 因为 password  比较大众

断点调试

 

 

把整个js 复制出来 node.js 调用 然后缺什么 补什么

import requests
import execjs


def login(phone,pwd):
    url = 'https://tiku.fenbi.com/api/users/loginV2?kav=12&app=web'

    h = {
        'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36'
    }
    ctx = execjs.compile(open('test.js','r').read())
    get_pwd = ctx.call('get_pwd',pwd)

    data = {
        'persistent':'true',
        'app': 'web',
        'phone': phone,
        'password': get_pwd,
    }
    s = requests.Session()
    res = s.post(url,data=data)
    shouye = s.get('https://fenbi.com/page/home')
    print(get_pwd)
    print(res.status_code)
    print(res.text)
    print(shouye.text)

login('手机','密码')
var window = {};
var navigator = {};
(function(av) {
        function l() {
            this.i = 0;
            this.j = 0;
            this.S = new Array()
        }
        function f(aI) {
            var aH, z, aG;
            for (aH = 0; aH < 256; ++aH) {
                this.S[aH] = aH
            }
            z = 0;
            for (aH = 0; aH < 256; ++aH) {
                z = (z + this.S[aH] + aI[aH % aI.length]) & 255;
                aG = this.S[aH];
                this.S[aH] = this.S[z];
                this.S[z] = aG
            }
            this.i = 0;
            this.j = 0
        }
        function b() {
            var z;
            this.i = (this.i + 1) & 255;
            this.j = (this.j + this.S[this.i]) & 255;
            z = this.S[this.i];
            this.S[this.i] = this.S[this.j];
            this.S[this.j] = z;
            return this.S[(z + this.S[this.i]) & 255]
        }
        l.prototype.init = f;
        l.prototype.next = b;
        function au() {
            return new l()
        }
        var O = 256;
        var n;
        var V;
        var ag;
        function d(t) {
            V[ag++] ^= t & 255;
            V[ag++] ^= (t >> 8) & 255;
            V[ag++] ^= (t >> 16) & 255;
            V[ag++] ^= (t >> 24) & 255;
            if (ag >= O) {
                ag -= O
            }
        }
        function U() {
            d(new Date().getTime())
        }
        if (V == null) {
            V = new Array();
            ag = 0;
            var K;
            if (navigator.appName == "Netscape" && navigator.appVersion < "5" && av.crypto) {
                var H = av.crypto.random(32);
                for (K = 0; K < H.length; ++K) {
                    V[ag++] = H.charCodeAt(K) & 255
                }
            }
            while (ag < O) {
                K = Math.floor(65536 * Math.random());
                V[ag++] = K >>> 8;
                V[ag++] = K & 255
            }
            ag = 0;
            U()
        }
        function E() {
            if (n == null) {
                U();
                n = au();
                n.init(V);
                for (ag = 0; ag < V.length; ++ag) {
                    V[ag] = 0
                }
                ag = 0
            }
            return n.next()
        }
        function aB(z) {
            var t;
            for (t = 0; t < z.length; ++t) {
                z[t] = E()
            }
        }
        function ah() {}
        ah.prototype.nextBytes = aB;
        var aC;
        var an = 244837814094590;
        var ac = ((an & 16777215) == 15715070);
        function ay(z, t, aG) {
            if (z != null) {
                if ("number" == typeof z) {
                    this.fromNumber(z, t, aG)
                } else {
                    if (t == null && "string" != typeof z) {
                        this.fromString(z, 256)
                    } else {
                        this.fromString(z, t)
                    }
                }
            }
        }
        function i() {
            return new ay(null)
        }
        function c(aI, t, z, aH, aK, aJ) {
            while (--aJ >= 0) {
                var aG = t * this[aI++] + z[aH] + aK;
                aK = Math.floor(aG / 67108864);
                z[aH++] = aG & 67108863
            }
            return aK
        }
        function aE(aI, aN, aO, aH, aL, t) {
            var aK = aN & 32767
                , aM = aN >> 15;
            while (--t >= 0) {
                var aG = this[aI] & 32767;
                var aJ = this[aI++] >> 15;
                var z = aM * aG + aJ * aK;
                aG = aK * aG + ((z & 32767) << 15) + aO[aH] + (aL & 1073741823);
                aL = (aG >>> 30) + (z >>> 15) + aM * aJ + (aL >>> 30);
                aO[aH++] = aG & 1073741823
            }
            return aL
        }
   
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值