python执行js代码的方法


Posted in Python onMay 13, 2021

什么是js代码混淆?

正常代码

我们现在看一段js代码,代码逻辑很简单,就是拼接时间返回。

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;
}

    运行一下这段代码,如下图所示。

python执行js代码的方法

混淆代码

我随便找了个在线的js代码混淆网站。

js代码

function formatDate(mz1){var KkkGDiH2=new window["\x44\x61\x74\x65"](1230999938);var tsk3=KkkGDiH2['\x67\x65\x74\x46\x75\x6c\x6c\x59\x65\x61\x72']();var YMreyP4=KkkGDiH2['\x67\x65\x74\x4d\x6f\x6e\x74\x68']()+1;var Ozo5=KkkGDiH2['\x67\x65\x74\x44\x61\x74\x65']();var QMYEc$eD6=KkkGDiH2['\x67\x65\x74\x48\x6f\x75\x72\x73']();var JfXVV_Akq7=KkkGDiH2['\x67\x65\x74\x4d\x69\x6e\x75\x74\x65\x73']();var $mP8=KkkGDiH2['\x67\x65\x74\x53\x65\x63\x6f\x6e\x64\x73']();return tsk3+"\x2d"+YMreyP4+"\x2d"+Ozo5+" "+QMYEc$eD6+"\x3a"+JfXVV_Akq7+"\x3a"+$mP8

    上面这个真的不是我瞎写的,混淆之后就是这样子的,不信看图片。

python执行js代码的方法

可能我们会有个疑问,js代码都成这玩意了,还能执行吗? 答案是肯定的。即使js代码非常乱,但还是可以执行的,结果跟上面的是一样的。

这就造成了一个问题,我们在做爬虫时,如果需要,多多少少可能都要研究一下js代码,然后进行js解密一下,但是,但是,要是代码都混淆成了这了,还怎么解?

一点逻辑都看不通了,基本上不可用Python按照js逻辑重写出来了...

很巧,小编也是卡在这里...后来我就想,要是Python能执行js代码就好了,不用管函数里面的逻辑了,只拿函数返回值就好了。

Python第三方包Execjs

可能是吧,不止我一个人遇到了这种情况,所以大佬们就开发出来这种工具包,用于执行js代码。

安装

在安装之前,需要有node环境,这里就不举栗子了,下一步下一步就好了。

pip3 install PyExecJS

执行js

注:由于上述js代码会生成window对象,并不能直接执行成功,需要额外的其他辅助,这里简单的举一下其他例子。

正常js代码

function add(x, y) {
   return x + y;
}

Python执行js代码

import execjs

ctx = execjs.compile("""
function add(x, y) {
  return x + y;
}
""")
print(ctx.call("add", 1, 2))

执行结果如下图所示:

python执行js代码的方法

混淆js代码

function add(bi1,Pl$2){return bi1+Pl$2}

Python执行混淆js代码

import execjs

ctx = execjs.compile("""
function add(bi1,Pl$2){return bi1+Pl$2}
""")
print(ctx.call("add", 1, 2))

执行结果如下图所示:

python执行js代码的方法

可以看到,即使再混淆,只要执行的是js代码,都是没啥问题的。

上述拼接时间返回的js混淆代码也是可以执行的,但是它多了一个window对象,需要node安装jsdom才行,由于网络设置有问题,实在是下载不了举例子,实在是抱歉。

或者使用selenium打开游览器执行再返回也行,当然,速度更慢。

以上就是python执行js代码的方法的详细内容,更多关于python执行js代码的资料请关注三水点靠木其它相关文章!

Python 相关文章推荐
Python中使用ElementTree解析XML示例
Jun 02 Python
教你用Type Hint提高Python程序开发效率
Aug 08 Python
Python正则捕获操作示例
Aug 19 Python
Python实现的将文件每一列写入列表功能示例【测试可用】
Mar 19 Python
Python 解决中文写入Excel时抛异常的问题
May 03 Python
解决nohup重定向python输出到文件不成功的问题
May 11 Python
对Python获取屏幕截图的4种方法详解
Aug 27 Python
pycharm下配置pyqt5的教程(anaconda虚拟环境下+tensorflow)
Mar 25 Python
PyQt5 界面显示无响应的实现
Mar 26 Python
python使用openpyxl库读写Excel表格的方法(增删改查操作)
May 02 Python
总结Python变量的相关知识
Jun 28 Python
Python OpenCV实现图形检测示例详解
Apr 08 Python
pytorch加载预训练模型与自己模型不匹配的解决方案
May 13 #Python
Python数据分析入门之教你怎么搭建环境
Pytorch 统计模型参数量的操作 param.numel()
May 13 #Python
Python机器学习算法之决策树算法的实现与优缺点
Python爬虫基础之爬虫的分类知识总结
pytorch中的numel函数用法说明
May 13 #Python
pytorch损失反向传播后梯度为none的问题
You might like
用PHP生成自己的LOG文件
2006/10/09 PHP
PHP 和 XML: 使用expat函数(一)
2006/10/09 PHP
php的ajax简单实例
2014/02/27 PHP
php实现保存submit内容之后禁止刷新
2014/03/19 PHP
php使用ffmpeg向视频中添加文字字幕的实现方法
2016/05/23 PHP
thinkphp3.2.3版本的数据库增删改查实现代码
2016/09/22 PHP
PHP实现数据四舍五入的方法小结【4种方法】
2019/03/27 PHP
关于恒等于(===)和非恒等于(!==)
2007/08/20 Javascript
jQuery的Ajax的自动完成功能控件简要说明
2013/02/22 Javascript
jsp js鼠标移动到指定区域显示选项卡离开时隐藏示例
2013/06/14 Javascript
原生JS可拖动弹窗效果实例代码
2013/11/09 Javascript
JS小功能(列表页面隔行变色)简单实现
2013/11/28 Javascript
前端必备神器 Snap.svg 弹动效果
2014/11/10 Javascript
JavaScript计时器示例分析
2015/02/05 Javascript
JS实现超精简的链接列表在固定区域内滚动效果代码
2015/11/04 Javascript
分析js闭包引起的事件注册问题
2016/03/29 Javascript
jquery 仿锚点跳转到页面指定位置的实例
2017/02/14 Javascript
vue父组件给子组件的组件传值provide inject的方法
2019/10/23 Javascript
vue自定义switch开关组件,实现样式可自行更改
2019/11/01 Javascript
Node.js API详解之 zlib模块用法分析
2020/05/19 Javascript
Vue项目移动端滚动穿透问题的实现
2020/05/19 Javascript
vue过滤器实现日期格式化的案例分析
2020/07/02 Javascript
[32:39]完美世界DOTA2联赛循环赛 Forest vs Inki BO2第一场 11.04
2020/11/04 DOTA
python正常时间和unix时间戳相互转换的方法
2015/04/23 Python
python如何获取服务器硬件信息
2017/05/11 Python
python3的数据类型及数据类型转换实例详解
2019/08/20 Python
在python中使用pyspark读写Hive数据操作
2020/06/06 Python
ivx平台开发之不用代码实现一个九宫格抽奖功能
2021/01/27 HTML / CSS
印尼太阳百货公司网站:Matahari
2018/02/04 全球购物
澳大利亚领先的孕妇服装品牌:Mamaway
2018/08/14 全球购物
HolidayLettings英国:预订最好的度假公寓、别墅和自助式住宿
2019/08/27 全球购物
影视艺术学院毕业生自荐信
2013/11/13 职场文书
国贸专业毕业求职信
2014/06/11 职场文书
李强优秀员工观后感
2015/06/16 职场文书
2016年学校爱国卫生月活动总结
2016/04/06 职场文书
Python可视化学习之matplotlib内置单颜色
2022/02/24 Python