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解决字典中的值是列表问题的方法
Mar 04 Python
python中wx将图标显示在右下角的脚本代码
Mar 08 Python
在centos7中分布式部署pyspider
May 03 Python
使用python进行文本预处理和提取特征的实例
Jun 05 Python
python实现逆序输出一个数字的示例讲解
Jun 25 Python
解决python线程卡死的问题
Feb 18 Python
python线程中的同步问题及解决方法
Aug 29 Python
django中瀑布流写法实例代码
Oct 14 Python
Python 实现opencv所使用的图片格式与 base64 转换
Jan 09 Python
Python 如何操作 SQLite 数据库
Aug 17 Python
python打包生成so文件的实现
Oct 30 Python
python如何利用traceback获取详细的异常信息
Jun 05 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 中执行排序与 MySQL 中排序
2009/04/21 PHP
php过滤html标记属性类用法实例
2014/09/23 PHP
php实现的一段简单概率相关代码
2016/05/30 PHP
Yii框架实现的验证码、登录及退出功能示例
2017/05/20 PHP
laravel框架中路由设置,路由参数和路由命名实例分析
2019/11/23 PHP
PHP 数组操作详解【遍历、指针、函数等】
2020/05/13 PHP
javaScript矢量图表库-gRaphael几行代码实现精美的条形图/饼图/点图/曲线图
2013/01/09 Javascript
Javascript MVC框架Backbone.js详解
2014/09/18 Javascript
JavaScript 表单处理实现代码
2015/04/13 Javascript
基于JavaScript代码实现微信扫一扫下载APP
2015/12/30 Javascript
AngularJS ngModel实现指令与输入直接的数据通信
2016/09/21 Javascript
jQuery实现弹窗居中效果类似alert()
2017/02/27 Javascript
Bootstrap表单控件学习使用
2017/03/07 Javascript
JS正则验证多个邮箱完整实例【邮箱用分号隔开】
2017/04/19 Javascript
详解Nodejs内存治理
2018/05/13 NodeJs
小程序实现多列选择器
2019/02/15 Javascript
解决layui弹出层layer的area过大被遮挡的问题
2019/09/21 Javascript
VueJS实现用户管理系统
2020/05/29 Javascript
[01:01]2020完美高校联赛(秋)西安落幕
2021/03/11 DOTA
Python实现拼接多张图片的方法
2014/12/01 Python
在Python的Django框架中实现Hacker News的一些功能
2015/04/17 Python
用Python编写一个每天都在系统下新建一个文件夹的脚本
2015/05/04 Python
Python第三方Window模块文件的几种安装方法
2018/11/22 Python
解决python写入带有中文的字符到文件错误的问题
2019/01/31 Python
彻底搞懂 python 中文乱码问题(深入分析)
2020/02/28 Python
Python使用Excel将数据写入多个sheet
2020/05/16 Python
使用keras框架cnn+ctc_loss识别不定长字符图片操作
2020/06/29 Python
Java里面StringBuilder和StringBuffer有什么区别
2016/06/06 面试题
药学专业大学生自荐信
2013/09/28 职场文书
幼儿园教师备课制度
2014/01/12 职场文书
争论的故事教学反思
2014/02/06 职场文书
给校长的一封检讨书
2014/09/20 职场文书
自主招生推荐信格式模板
2015/03/24 职场文书
硕士毕业答辩开场白
2015/05/27 职场文书
迁徙的鸟观后感
2015/06/09 职场文书
餐饮行业关注的9大营销策略
2019/08/26 职场文书