广告
返回顶部
首页 > 资讯 > 后端开发 > Python >JS逆向代码转换为Python代码怎么写
  • 621
分享到

JS逆向代码转换为Python代码怎么写

2023-07-06 02:07:07 621人浏览 安东尼

Python 官方文档:入门教程 => 点击学习

摘要

这篇文章主要介绍“js逆向代码转换为python代码怎么写”,在日常操作中,相信很多人在JS逆向代码转换为Python代码怎么写问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”JS逆向代码转换为Python代码

这篇文章主要介绍“js逆向代码转换为python代码怎么写”,在日常操作中,相信很多人在JS逆向代码转换为Python代码怎么写问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”JS逆向代码转换为Python代码怎么写”的疑惑有所帮助!接下来,请跟着小编一起来学习吧!

JS代码

本文使用的这个JS加密代码来自某个小视频网站,网页上呈现的加密函数如下图所示:

JS逆向代码转换为Python代码怎么写

加密方式不算太难,其中decodeMp4.decode()加密函数核心代码如下所示。

define("tool", function(a, b, c) {var d = a("Jquery"), e = a("support"), f = a("constants"), g = a("base64"), h = "substring", i = "split", j = "replace", k = "substr";b.decodeMp4 = {getHex: function(a) {return {str: a[h](4),hex: a[h](0, 4)[i]("").reverse().join("")}},getDec: function(a) {var b = parseInt(a, 16).toString();# 对应Python中的str(int(a, 16))return {pre: b[h](0, 2)[i](""),tail: b[h](2)[i]("")}},substr: function(a, b) {var c = a[h](0, b[0]), d = a[k](b[0], b[1]);return c + a[h](b[0])[j](d, "")},getPos: function(a, b) {return b[0] = a.length - b[0] - b[1],b},decode: function(a) {var b = this.getHex(a), c = this.getDec(b.hex), d = this[k](b.str, c.pre);return g.atob(this[k](d, this.getPos(d, c.tail)))}};

可以看到调用了decodeMp4中的decode()函数,而decode()函数中依次又调用了getHex(a)、getDec(b.hex)、g.atob()、getPos(d, c.tail)等函数,而我们要做的,就是将这些函数,转换为Python的写法,然后构造对应的加密方式,得到加密后的结果,就可以完成逆向效果了。

转换过程

这里的变量a通过打断点的方式,得到的是一个长字符串,这里以下面的变量作为示例。

a = "c0b1Ly9tdnPflQ3cQpPZpZGVvMTAubWVpdHVkYXRhLmNvbS82MWM0NDNlOGI1MmFmMTYzMi5tcDkBOyQ"

这里先提前把后面需要用到的函数做个简单的整理,这样也方便大家后面查看。

JS逆向代码转换为Python代码怎么写

依次以每个函数来作为拆解,具体如下:

1、getHex(a)函数
var h = "substring",i = "split";getHex: function(a) {return {str: a[h](4),hex: a[h](0, 4)[i]("").reverse().join("")}},

上面这个是对应的getHex()函数JS代码,可以看到直接返回了一个字典,字典的key分别是str和hex,其中str对应的值是a[h](4),h的定义是substring,这个函数的意思是字符串从指定下标开始取值直到到字符串结尾,这里翻译过来就是a.substring(4),也就是字符串a从下标4开始取到结束;a[h](0, 4)[i]("").reverse().join("")这个理解起来复杂一些,首先是取字符串的值,位置是从0到4,之后调用了函数i,即split函数,以空格("")作为分割,调用reverse()函数倒序排序,之后调用join("")进行字符串连接,拆解之后就简单很多了。接下来就是构造Python代码了,对照写完之后如下所示:

def getHex(a):return {"str": a[4:],# JS中的substring(4)指的是从4开始取值到字符串末尾"hex": "".join(list(a[0:4])[::-1])# [::-1]代表的是反向取值}

看着是不是似曾相识呢?同上面的JS代码如出一辙。

2、getDec(a)函数

其JS代码如下:

 getDec: function(a) {var b = parseInt(a, 16).toString(); return {pre: b[h](0, 2)[i](""),tail: b[h](2)[i]("")}},

根据对应关系,可以写出对应的Python代码如下所示:

def getDec(a):b = str(int(a, 16))print(b)return {"pre": list(b[:2]),"tail": list(b[2:])}
3、substr(a, b)函数

其JS代码如下:

substr: function(a, b) {var c = a[h](0, b[0]), d = a[k](b[0], b[1]);return c + a[h](b[0])[j](d, "")},

根据对应关系,可以写出对应的Python代码如下所示:

def substr(a, b):c = a[0: int(b[0])]print(c)d = a[int(b[0]):int(b[0])+int(b[1])]print(d)return c + a[int(b[0]):].replace(d, '')
4、getPos(a, b)函数

其JS代码如下:

getPos: function(a, b) {return b[0] = a.length - b[0] - b[1],b},

根据对应关系,可以写出对应的Python代码如下所示:

def getPos(a, b):b[0] = len(a) - int(b[0]) - int(b[1])print(b[0])return b
5、decode(a, b)函数

其JS代码如下:

decode: function(a) {var b = this.getHex(a), c = this.getDec(b.hex), d = this[k](b.str, c.pre);return g.atob(this[k](d, this.getPos(d, c.tail)))}

根据对应关系,可以写出对应的Python代码如下所示:

 b = getHex(a)# print(b)c = getDec(b['hex'])print(c)# d = k(str(b), c.pre)d = substr(b['str'], c['pre'])# print(d)return base64.b64decode(substr(d, getPos(d, c['tail'])))
效果展示

直接通过网络爬虫进行请求,你拿不到最终的这个加密后的地址的,不论你怎么请求,都是拿不到的,你只能拿到data-src,即上面说的字符串变量a,只有通过逆向之后,通过上面的解析,运行代码,即可得到和网页上一样的请求地址,如下图所示,逆向成功!

JS逆向代码转换为Python代码怎么写

把这个地址放到浏览器,是可以播放的,然后一个请求下载,即可把视频拿下。

到此,关于“JS逆向代码转换为Python代码怎么写”的学习就结束了,希望能够解决大家的疑惑。理论与实践的搭配能更好的帮助大家学习,快去试试吧!若想继续学习更多相关知识,请继续关注编程网网站,小编会继续努力为大家带来更多实用的文章!

--结束END--

本文标题: JS逆向代码转换为Python代码怎么写

本文链接: https://www.lsjlt.com/news/357460.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • JS逆向代码转换为Python代码怎么写
    这篇文章主要介绍“JS逆向代码转换为Python代码怎么写”,在日常操作中,相信很多人在JS逆向代码转换为Python代码怎么写问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”JS逆向代码转换为Python代码...
    99+
    2023-07-06
  • 盘点一份JS逆向代码转换为Python代码的教程
    前言前几天在Python星耀和最强王者交流群里边,好几个人都在问JS逆向的视频和相关代码,看来都在学习进阶的知识,真是卷不动了。正好这几天我也在看JS的部分学习资料,看到一个还不错的案例,这里拿出来给大家分享一下,也当记录一下。JS代码关于...
    99+
    2023-05-14
    Python 网络爬虫 JS逆向问题
  • 做JS逆向时,Python如何调用JS代码
    这篇文章主要介绍了做JS逆向时,Python如何调用JS代码的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇做JS逆向时,Python如何调用JS代码文章都会有所收获,下面我们一起来看看吧。配置环境node.js...
    99+
    2023-06-27
  • kotlin怎么转换为java代码
    要将Kotlin代码转换为Java代码,可以使用以下步骤:1. 打开Kotlin文件,并将其复制到剪贴板中。2. 在Android ...
    99+
    2023-09-20
    java kotlin
  • C#时间戳转换代码怎么写
    本篇内容介绍了“C#时间戳转换代码怎么写”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!代码如下:   &nbs...
    99+
    2023-07-05
  • 怎么将vue代码转换为网页
    这篇文章主要介绍“怎么将vue代码转换为网页”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“怎么将vue代码转换为网页”文章能帮助大家解决问题。1.理解Vue.js首先,我们需要了解Vue.js是什么...
    99+
    2023-07-05
  • php怎么替换js代码
    本文操作环境:Windows7系统、PHP7.1版、Dell G3电脑。php怎么替换js代码?php利用正则替换过滤掉js(script)代码利用php中的preg_replace正则匹配函数过滤掉网页中的js代码,preg_replac...
    99+
    2019-05-21
    php js代码
  • 怎么将HTML代码转换成JSP代码
    今天小编给大家分享一下怎么将HTML代码转换成JSP代码的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来了解一下吧。I. HTML和JSP...
    99+
    2023-07-06
  • VBS字符串编码转换函数代码怎么写
    这篇“VBS字符串编码转换函数代码怎么写”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇“VBS字符串编码转换函数代码怎么写”文...
    99+
    2023-07-06
  • Python代码怎么写
    本篇内容介绍了“Python代码怎么写”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!1、类有两个方法,一个是 new,一个是 init,有什...
    99+
    2023-06-22
  • js基本ajax代码怎么写
    这篇文章将为大家详细讲解有关js基本ajax代码怎么写,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。 代码如下:var xmlhttp = nul...
    99+
    2022-10-19
  • android跳转代码怎么写
    在Android中,可以使用Intent来实现跳转功能。下面是一个示例代码,展示了如何在一个按钮点击事件中实现跳转到另一个Activ...
    99+
    2023-09-22
    android
  • html跳转代码怎么写
    这篇文章主要介绍了html跳转代码怎么写,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。html有什么特点1、简易性:超级文本标记语言版本升级采用超集方式,从而更加灵活方便,适...
    99+
    2023-06-14
  • PHP中将时间戳转换为字符串的代码怎么写
    这篇文章主要介绍“PHP中将时间戳转换为字符串的代码怎么写”,在日常操作中,相信很多人在PHP中将时间戳转换为字符串的代码怎么写问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”PHP中将时间戳转换为字符串的代码...
    99+
    2023-07-05
  • python 转换 Javascript %u 字符串为python unicode的代码
    web采集的数据为 %u6B63%u5F0F%u4EBA%u5458,需要读取并转换为python对象,想了下不调用Javascript去eval,只能自己翻译了。 核心代码: import re i...
    99+
    2022-06-04
    字符串 代码 python
  • javascript常见数字进制转换代码怎么写
    本篇内容主要讲解“javascript常见数字进制转换代码怎么写”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“javascript常见数字进制转换代码怎么写”吧!基本思路是先把其他进制的转化成 ...
    99+
    2023-07-04
  • 怎么编写更好的JS代码
    这篇文章主要介绍“怎么编写更好的JS代码”,在日常操作中,相信很多人在怎么编写更好的JS代码问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”怎么编写更好的JS代码”的疑惑有所帮...
    99+
    2022-10-19
  • 怎么写出干净的JS代码
    本篇内容介绍了“怎么写出干净的JS代码”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!1. 将数字定义为常量...
    99+
    2022-10-19
  • Python:实现文本转换为Excel文件(附代码)
    Python:实现文本转换为Excel文件(附代码) 在日常办公和生活中,我们经常需要将文本文件转换为Excel文件,以便更好地进行管理和处理。利用Python编程语言,可以非常方便地实现这一操作。 ...
    99+
    2023-09-17
    python excel 数学建模
  • 怎么实现Python与JavaScript间代码的转换
    怎么实现Python与JavaScript间代码的转换?针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。Jiphy所谓Jiphy,就是JavaScript输入,Python输出...
    99+
    2023-06-14
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作