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共享引用(多个变量引用)示例代码
Dec 04 Python
Python文件夹与文件的操作实现代码
Jul 13 Python
python爬虫入门教程--正则表达式完全指南(五)
May 25 Python
python基础之入门必看操作
Jul 26 Python
用python结合jieba和wordcloud实现词云效果
Sep 05 Python
PyQt5每天必学之工具提示功能
Apr 19 Python
python标准库sys和OS的函数使用方法与实例详解
Feb 12 Python
python中get和post有什么区别
Jun 19 Python
python 爬虫基本使用——统计杭电oj题目正确率并排序
Oct 26 Python
python实现经典排序算法的示例代码
Feb 07 Python
Python中OpenCV实现查找轮廓的实例
Jun 08 Python
Python如何用re模块实现简易tokenizer
May 02 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 上传文件类型判断函数(避免上传漏洞 )
2010/06/08 PHP
PHP关于IE下的iframe跨域导致session丢失问题解决方法
2013/10/10 PHP
CI使用Tank Auth转移数据库导致密码用户错误的解决办法
2014/06/12 PHP
PHP实现从远程下载文件的方法
2015/03/12 PHP
PHP5.4起内置web服务器使用方法
2016/08/09 PHP
php PDO实现的事务回滚示例
2017/03/23 PHP
PHP静态延迟绑定和普通静态效率的对比
2017/10/20 PHP
JS 巧妙获取剪贴板数据 Excel数据的粘贴
2009/07/09 Javascript
javascript动态向网页中添加表格实现代码
2014/02/19 Javascript
href下载文件根据id取url并下载
2014/05/28 Javascript
Javascript快速排序算法详解
2014/12/03 Javascript
浅谈javascript的call()、apply()、bind()的用法
2016/02/21 Javascript
JS之获取样式的简单实现方法(推荐)
2016/09/13 Javascript
JS实现隔行换色的表格排序
2017/03/27 Javascript
jQuery+PHP+Mysql实现抽奖程序
2020/04/12 jQuery
微信小程序获取音频时长与实时获取播放进度问题
2018/08/28 Javascript
解决Angular4项目部署到服务器上刷新404的问题
2018/08/31 Javascript
vue-cli 构建骨架屏的方法示例
2018/11/08 Javascript
vue 父组件中调用子组件函数的方法
2019/06/06 Javascript
JSX在render函数中的应用详解
2019/09/04 Javascript
vue中注册自定义的全局js方法
2019/11/15 Javascript
python运行其他程序的实现方法
2017/07/14 Python
利用python爬取斗鱼app中照片方法实例
2017/12/03 Python
Random 在 Python 中的使用方法
2018/08/09 Python
python使用正则筛选信用卡
2019/01/27 Python
pyqt5 实现 下拉菜单 + 打开文件的示例代码
2019/06/20 Python
详解使用python3.7配置开发钉钉群自定义机器人(2020年新版攻略)
2020/04/01 Python
Python爬虫新手入门之初学lxml库
2020/12/20 Python
英国鲜花递送:Blossoming Gifts
2020/07/10 全球购物
Python中如何定义一个函数
2016/09/06 面试题
大型公益活动策划方案
2014/08/20 职场文书
介绍信如何写
2015/01/31 职场文书
2015大学生求职信范文
2015/03/20 职场文书
工作时间调整通知
2015/04/24 职场文书
活动简报范文
2015/07/22 职场文书
教务处教学工作总结
2015/08/10 职场文书