追着幸福跑|在做js逆向的时候,python如何调用js代码
前言
最近我在做js逆向的时候 , 遇到了我没法用python实现的代码 , 估计就是我太菜了 。 那我又想实现怎么办 , 既然我写了就说明肯定是有办法的 。 今天我要给大家介绍一个第三方库——pyexecjs , 这个库就能很好的解决我的问题 , 它可以用python运行JavaScript代码 。
配置环境node.js
下载地址:
https://nodejs.org/en/download/
选好版本直接下就好了 , 它会自动加入系统环境的 , 检查Node.js版本 , 出现版本号就说明配置好了 。
Pyexecjs
pip install pyexecjs
基本使用先检查一下使用的引擎是否为node.js
import execjsprint(execjs.get().name)运行结果:Node.js (V8)
运行js代码pyexecjs运行js代码有两种方法
一、eval()
eval()可以直接执行js代码
import execjsprint(execjs.eval("a = new Array(1, 2, 3)"))运行结果:[1, 2, 3]
二、compile()
代码量多的话就推荐用这个方法 , 先将js代码写入一个文件中 , 需要的时候读取执行即可 。
创建js_text.js文件 , 写入如下代码:
function a(str) {return str;}
python代码:
import execjswith open('js_text.js', 'r', encoding='utf-8') as f:jstext = f.read()ctx = execjs.compile(jstext)a = '123456'result = ctx.call('a', a)print(result)运行结果:123456
先调用compile编译js代码 , 再调用call方法进行执行 , call的第一个参数的js代码中的函数名 , 第二个参数是该函数需要的参数(如果有多个参数 , 直接逗号写下一个参数即可) 。
常见的问题js代码返回的字符串如果有特殊字符的话可能会出错 。
解决方法就是先将字符串进行base64编码后再返回 。
function a(str) {return new Buffer(str).toString("base64");}
有了这个方法你就可以不用重写代码了 , 直接扣js代码运行即可 , 扣代码有时会有些变量未声明 , 在js代码中查找补全即可 , 帮助你节省脑力 。
本文的文字及图片来源于网络,仅供学习、交流使用,不具有任何商业用途,版权归原作者所有,如有问题请及时联系我们以作处理 。
【追着幸福跑|在做js逆向的时候,python如何调用js代码】作者:coder 谢公子
- 笙笙千离|惠若琪李宇春同框颁奖,春春身高176还自卑,巨人身高收获幸福
- 资讯早知道|9年后再看《步步惊心》,发现若曦无论跟谁都不会幸福
- 弹钢琴|原创吉娜为1岁宠物兔庆生,郎朗弹钢琴助兴,幸福温馨像一家三口
- 人民日报|岳阳君山区:消费扶贫托起贫困户稳稳的幸福
- “全国人大 ”微信公众号|何健忠:以实施民法典提升人民美好生活的“幸福指数”
- 经济日报-中国经济网|【幸福花开新边疆】219国道旁的“脱贫事”
- 新华网|【幸福花开新边疆】奋发学技能 靠己奔小康
- 【幸福花开新边疆】奋发学技能 靠己奔小康
- 【幸福花开新边疆】219国道旁的“脱贫事”
- 岳阳君山区:消费扶贫托起贫困户稳稳的幸福