用 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){return bi1+Pl2}

Python执行混淆js代码
import execjs

ctx = execjs.compile("""
function add(bi1,Pl2){return 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代码,可能大家想到的是pyv8,但是它比较旧了,好像只支持python2,并且安装过程中的...
    盗花阅读 301评论 0 0
  • run javascript code from python 安装pyv8受阻的情况下,无意中找到另一个执行js...
    道法自然FOAF阅读 240评论 0 2
  • # 基于node.js的接口自动化测试 ## 为什么要自动化测试 就我个人而言,目前需要测试的有3条产品线,测试范...
    丨彧卿阅读 4,243评论 0 0
  • 我是黑夜里大雨纷飞的人啊 1 “又到一年六月,有人笑有人哭,有人欢乐有人忧愁,有人惊喜有人失落,有的觉得收获满满有...
    陌忘宇阅读 8,610评论 28 53
  • 信任包括信任自己和信任他人 很多时候,很多事情,失败、遗憾、错过,源于不自信,不信任他人 觉得自己做不成,别人做不...
    吴氵晃阅读 6,232评论 4 8