在windows下由于execjs本质是用子进程调用shell去执行js 会导致编码错误的问题 默认是gbk
网上主要解决该方案的问题都是修改subprocess库的Popen实例化方法的encoding默认值
个人不赞同 每次都改一次问题很大
在本地代码添加一段代码
#popen.py
import subprocess
from functools import partial
subprocess.Popen = partial(subprocess.Popen, encoding="utf-8")
在Popen实例化方法下打个断点 测试是否生效
image.png
测试一下
# 注意:这里必须在execjs之前导入 让hook生效
import popen
import execjs
if __name__ == '__main__':
execjs.compile('function a(){}')
这里注意先导入popen这个我们修改subprocess文件
run一下
image.png
ojbk
又可以愉快的逆向了
网友评论