鱼C论坛

 找回密码
 立即注册
查看: 4533|回复: 1

execjs库调用被匿名函数function ()包着的js函数呢

[复制链接]
发表于 2020-8-22 20:20:28 | 显示全部楼层 |阅读模式
50鱼币
(function () {
    var c7f = NEJ.P, ev9m = c7f("nej.g"), v7o = c7f("nej.j"), j7c = c7f("nej.u"), Wx5C = c7f("nm.x.ek"),
        l7e = c7f("nm.x");
    if (v7o.be7X.redefine) return;
    window.GEnc = true;
    var bqN2x = function (cyC5H) {
        var m7f = [];
        j7c.bf7Y(cyC5H, function (cyB5G) {
            m7f.push(Wx5C.emj[cyB5G])
        });
        return m7f.join("")
    };
    var cyz5E = v7o.be7X;
    v7o.be7X = function (X7Q, e7d) {
        var i7b = {}, e7d = NEJ.X({}, e7d), mv1x = X7Q.indexOf("?");
        if (window.GEnc && /(^|\.com)\/api/.test(X7Q) && !(e7d.headers && e7d.headers[ev9m.Ae8W] == ev9m.Im0x) && !e7d.noEnc) {
            if (mv1x != -1) {
                i7b = j7c.gZ0x(X7Q.substring(mv1x + 1));
                X7Q = X7Q.substring(0, mv1x)
            }
            if (e7d.query) {
                i7b = NEJ.X(i7b, j7c.fT0x(e7d.query) ? j7c.gZ0x(e7d.query) : e7d.query)
            }
            if (e7d.data) {
                i7b = NEJ.X(i7b, j7c.fT0x(e7d.data) ? j7c.gZ0x(e7d.data) : e7d.data)
            }
            i7b["csrf_token"] = v7o.gP0x("__csrf");
            X7Q = X7Q.replace("api", "weapi");
            e7d.method = "post";
            delete e7d.query;
            var bVZ7S = window.asrsea(JSON.stringify(i7b), bqN2x(["流泪", "强"]), bqN2x(Wx5C.md), bqN2x(["爱心", "女孩", "惊恐", "大笑"]));
            e7d.data = j7c.cs8k({params: bVZ7S.encText, encSecKey: bVZ7S.encSecKey})

        }
上面的是一部分的js代码..举个例子
我要怎么才能用execjs库调用这里面的函数呢? 都是被匿名函数function ()包着的  比如我想访问v7o.be7X 函数  
普通访问
def encodes(kw):
    path='1.js'
    with open(path, 'r', encoding='utf-8') as f:
        js = f.read()
        cx_js = execjs.compile(js)
        # 调用call方法去执行js代码
        a = cx_js.call("v7o.be7Xt", kw)  # 第一个为函数名,后面的为参数,多的就用逗号隔开
    return a
print(encodes(kw))
会说缺少标识符 execjs._exceptions.ProgramError: SyntaxError: 缺少标识符  我参数填错是另外一回事,,这个可以慢慢调试..但是这个如何才能访问里面的函数呢

想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2022-9-28 10:59:43 | 显示全部楼层
cx_js.call("v7o.be7Xt", kw)  # 第一个为函数名,后面的为参数,多的就用逗号隔开

请问要是call回调匿名函数怎么搞?
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-11-15 05:37

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表