JS逆向|Python调用js代码的方案汇总

一.PyExecJS库

安装方式:

pip install PyExecJS==1.0.2

PyPi地址:

https://pypi.org/project/PyExecJS/1.0.2/

调用Demo:

import execjs

jscode = """
function add(a,b)
{
    return a + b;
}
"""

ctx = execjs.compile(jscode)
value = ctx.call("add",1,2)
print (value)

方法很简单,这里的call函数,第一个实参是函数名,第二三个为函数的调用参数,从左到右依次对应。

它还有一个eval函数,具体调用方法可以参考上面的PyPi。

二.node_vm2库

安装方式:


pip install node_vm2

PyPi地址:


https://pypi.org/project/node-vm2/

API参考:


https://pypi.org/project/node-vm2/

代码demo:


from node_vm2 import VM

with VM() as vm:
   vm.run("""
      var sum = 0, i;
      for (i = 0; i < 10; i++) sum += i;
   """)
   print(vm.run("sum"))

这个库在我电脑的环境下,调用demo出错,大佬们说很好用,可能是我电脑环境的问题。

尝试修改,又有另外的问题,暂时作罢。

三.py-mini-race库

安装方式:


pip install py-mini-racer

PyPi地址:


https://pypi.org/project/py-mini-racer/

调用Demo:


from py_mini_racer import MiniRacer

ctx = MiniRacer()

value = ctx.eval("1+1")

print (value)

更多的调用方式请参考其Pypi文档。

四.系统命令方式

  1. 如果不需要返回结果:

  2. os.system("node xxx.js")

 需要返回结果:

value = os.popen("node xxx.js").read()

  • 4
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值