鱼C论坛

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

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

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

  33.         }
复制代码
上面的是一部分的js代码..举个例子
我要怎么才能用execjs库调用这里面的函数呢? 都是被匿名函数function ()包着的  比如我想访问v7o.be7X 函数  
普通访问
  1. def encodes(kw):
  2.     path='1.js'
  3.     with open(path, 'r', encoding='utf-8') as f:
  4.         js = f.read()
  5.         cx_js = execjs.compile(js)
  6.         # 调用call方法去执行js代码
  7.         a = cx_js.call("v7o.be7Xt", kw)  # 第一个为函数名,后面的为参数,多的就用逗号隔开
  8.     return a
  9. 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-5-3 06:22

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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