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

发布于:2023-05-22 ⋅ 阅读:(269) ⋅ 点赞:(0)

关注它,不迷路。

  • 本文章中所有内容仅供学习交流,不可用于任何商业用途和非法用途,否则后果自负,如有侵权,请联系作者立即删除!

一.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出错,大佬们说很好用,可能是我电脑环境的问题。

7c00cb21a39fcc54a588aa36415b4e54.png

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

三.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. 如果不需要返回结果:

    os.system("node xxx.js")
  2. 需要返回结果:

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

五.交流学习

加我好友,拉你进群,现在快开6群了,学习氛围浓,注意,严禁讨论破解相关的话题。

d9e36f521c3a2bf5c759a1243db5a871.jpeg


网站公告

今日签到

点亮在社区的每一天
去签到