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中的各种装饰器详解
Apr 11 Python
python使用socket连接远程服务器的方法
Apr 29 Python
python实现键盘控制鼠标移动
Nov 27 Python
基于numpy中数组元素的切片复制方法
Nov 15 Python
python实现彩色图转换成灰度图
Jan 15 Python
pymongo中group by的操作方法教程
Mar 22 Python
pytorch numpy list类型之间的相互转换实例
Aug 18 Python
tensorflow 重置/清除计算图的实现
Jan 19 Python
解决启动django,浏览器显示“服务器拒绝访问”的问题
May 13 Python
python使用自定义钉钉机器人的示例代码
Jun 24 Python
Python 存取npy格式数据实例
Jul 01 Python
python使用正则表达式匹配txt特定字符串(有换行)
Dec 09 Python
pytorch加载预训练模型与自己模型不匹配的解决方案
May 13 #Python
Python数据分析入门之教你怎么搭建环境
Pytorch 统计模型参数量的操作 param.numel()
May 13 #Python
Python机器学习算法之决策树算法的实现与优缺点
Python爬虫基础之爬虫的分类知识总结
pytorch中的numel函数用法说明
May 13 #Python
pytorch损失反向传播后梯度为none的问题
You might like
我的论坛源代码(四)
2006/10/09 PHP
非常不错的MySQL优化的8条经验
2008/03/24 PHP
PHP学习笔记(二) 了解PHP的基本语法以及目录结构
2014/08/04 PHP
ThinkPHP中URL路径访问与模块控制器之间的关系
2014/08/23 PHP
php+MySQL判断update语句是否执行成功的方法
2014/08/28 PHP
简单谈谈php中的unicode和utf8编码
2015/06/10 PHP
PHP基于cookie与session统计网站访问量并输出显示的方法
2016/01/15 PHP
LaravelS通过Swoole加速Laravel/Lumen详解
2018/03/02 PHP
tp5(thinkPHP5)框架实现多数据库查询的方法
2019/01/10 PHP
JS控制阿拉伯数字转为中文大写示例代码
2013/09/04 Javascript
js的hasownproperty使用示例
2014/03/02 Javascript
jquery实现点击文字可编辑并修改保存至数据库
2014/04/15 Javascript
JavaScript数据结构与算法之栈详解
2015/03/12 Javascript
jquery仿百度经验滑动切换浏览效果
2015/04/14 Javascript
JavaScript检测上传文件大小的方法
2015/07/22 Javascript
Bootstrap每天必学之警告框插件
2016/04/26 Javascript
EasyUI Pagination 分页的两种做法小结
2016/07/09 Javascript
强大Vue.js组件浅析
2016/09/12 Javascript
Html5 js实现手风琴效果
2020/04/17 Javascript
Node.js Express 框架 POST方法详解
2017/01/23 Javascript
Angular实现购物车计算示例代码
2017/02/21 Javascript
angularjs实现多张图片上传并预览功能
2017/02/24 Javascript
Vue2.0用户权限控制解决方案的示例
2018/02/10 Javascript
浅谈layui里的上传控件问题
2019/09/26 Javascript
JavaScript交换两个变量方法实例
2019/11/25 Javascript
详解Vue的mixin策略
2020/11/19 Vue.js
python中函数默认值使用注意点详解
2016/06/01 Python
对Python中TKinter模块中的Label组件实例详解
2019/06/14 Python
什么是命名空间(NameSpace)
2015/11/24 面试题
sealed修饰符是干什么的
2012/10/23 面试题
财务总监管理职责范文
2014/03/09 职场文书
保证金退回承诺函格式
2015/01/21 职场文书
茶楼服务员岗位职责
2015/02/09 职场文书
党校毕业个人总结
2015/02/28 职场文书
2016银行求职自荐信
2016/01/28 职场文书
《吸血鬼:避世 血猎》官宣4.27发售 系列首款大逃杀
2022/04/03 其他游戏