用 Python 执行 js 代码

在安装之前,需要有node环境,已经安装的请直接跳过这一步
https://www.runoob.com/nodejs/nodejs-install-setup.html

安装 Python第三方包Execjs
pip3 install PyExecJS

执行js
注:由于上述js代码会生成window对象,并不能直接执行成功,需要额外的其他辅助,下面举2个例子
ctx = execjs.compile("""
function add(x, y) {
return x + y;
}
""")
print(ctx.call("add",1,2))

执行结果,如下图所示


image.png

混淆js代码
function add(bi1,Pl2}

Python执行混淆js代码
import execjs

ctx = execjs.compile("""
function add(bi1,Pl2}
""")
print(ctx.call("add", 1, 2))

执行结果,如下图所示:


image.png

只要执行的是js代码,都是可以正常执行

示例二,js时间的拼接:
import execjs

js_time = execjs.compile("""
function formatDate(now) {
var now = new Date(1230999938);
var year=now.getFullYear();
var month=now.getMonth()+1;
var date=now.getDate();
var hour=now.getHours();
var minute=now.getMinutes();
var second=now.getSeconds();
return year+"-"+month+"-"+date+" "+hour+":"+minute+":"+second;
}
""")
print(js_time.call('formatDate'))
执行结果,如下图所示:


image.png

重点拼接时间返回的js混淆代码也是可以执行的,但是它多了一个window对象,需要node安装jsdom才行

你可能感兴趣的:(用 Python 执行 js 代码)