当前位置:   article > 正文

python如何执行js代码_pytohn js运行

pytohn js运行

js逆向的过程中,一般来说思路有两种:

  • 读懂js代码,使用python直接改写js代码(这一种方法对javascript具有很高的要求)

  • 不进行js改写,使用python直接调用js代码(一般来说是使用这种方法进行逆向分析

看了很多文档,我总结出使用python如何调用js的三种方法,现在一一为大家讲解。

当然:必须先安装 execjs 这个模块,当然你本机还需要安装node.js,js代码的执行是依靠node来进行执行的。

 

pip install  execjs
 第一种方法:

 

  1. #导入相应模块
  2. import execjs
  3. # 对js代码进行编译
  4. ctx=execjs.compile(
  5. """function add(a,b){
  6. return a+b;}
  7. """
  8. #这里说的细一点 如果代码比较长 需要使用 """ """ 例如上面的语句,跨行了
  9. )
  10. # 调用call方法 call是js中的一个函数
  11. # 参数一:"需要执行的函数名字" 参数:如果有函数的输入值,需要写入 。 如果没有只需要传入函数的名字即可
  12. result = ctx.call("add",1,2)
  13. print(result)

 

这个方法适应与js代码比较简短,一般来说逆向分析,不使用这种方法,一般读入js代码,如下!!! 

第二种方法:

 

  1. #导入模块
  2. import execjs
  3. # open("./js/01.js","r",encoding='utf-8').read() 读取js文件
  4. ctx=execjs.compile(open("./js/01.js","r",encoding='utf-8').read())
  5. result = ctx.call("add",1,2)
  6. print(result)

                         

js代码;

  1. function add(a,b){
  2. return a+b;}

 

我还是比较推荐使用这种方法的,因为在js文件我们可以进行debug和分析,尝试运行等等。

第三种方法:
  1. #这三行代码尽量要写,之前我使用这个方法执行js代码,一直报编码的问题,大家加上这一行就好啦!
  2. import subprocess
  3. from functools import partial
  4. subprocess.Popen = partial(subprocess.Popen, encoding="utf-8")
  5. ############################
  6. import execjs
  7. node = execjs.get() # 首先要实例化一个node对象
  8. fp = open('./js/01.js','r',encoding='utf-8')
  9. # 基于node对象进行编译
  10. ctx = node.compile(fp.read())
  11. a = int(input('请输入加数:'))
  12. b=int(input('请输入被加数:'))
  13. funcName1 = 'add({},{})'.format(a, b)
  14. # funcName = 'add(%d,%d)' % (a,b)
  15. # print(funcName1)
  16. result = ctx.eval(funcName1)
  17. print('结果为:',result)

 今天分享就到这里啦,大家再见!

 

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/繁依Fanyi0/article/detail/462263
推荐阅读
相关标签
  

闽ICP备14008679号