在安装之前,需要有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))
执行结果,如下图所示
混淆js代码
function add(bi1,Pl2}
Python执行混淆js代码
import execjs
ctx = execjs.compile("""
function add(bi1,Pl2}
""")
print(ctx.call("add", 1, 2))
执行结果,如下图所示:
只要执行的是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'))
执行结果,如下图所示:
重点拼接时间返回的js混淆代码也是可以执行的,但是它多了一个window对象,需要node安装jsdom才行