python爬虫AES魔改案例:某音乐素材下载网

2023-12-04 07:28

本文主要是介绍python爬虫AES魔改案例:某音乐素材下载网,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

声明:
该文章为学习使用,严禁用于商业用途和非法用途,违者后果自负,由此产生的一切后果均与作者无关

一、找出需要加密的参数
  1. js运行 atob(‘aHR0cHM6Ly93d3cuYWlnZWkuY29tL3NvdW5kL2NsYXNzLw==’) 拿到网址,F12打开调试工具,点击任意导航发送请求,找到 gei-common/jsonComp/f/awd/log.json 请求
  2. 分析请求头、参数、响应结果会发现响应结果 b 加密
    在这里插入图片描述
  3. 鼠标右击请求找到Copy>Copy as cUrl(bash),打开网站:https://spidertools.cn/#/curl2Request,把拷贝好的curl转成python代码,新建 aigei.py,把代码复制到该文件,
    在这里插入图片描述
  4. 把header、cookie注释,运行文件 aigei.py,会发现可以请求成功,说明heaer、cookie中不包含加密参数
    在这里插入图片描述
  5. 新建 aigei.js 文件,用于放扣下的代码
二、定位参数加密位置
  1. 切换到sources,添加XHR拦截common/jsonComp/f/awd/log.json
    在这里插入图片描述
  2. 点击任意导航发送请求,一直点击跳到下一个函数,看见 ajax 函数中的 success 打上断点
    在这里插入图片描述
  3. 结束此次调试,点击任意导航发送请求,一直点击跳过断点,当看到 success 断点,并且有 b 加密数据过来,说明解密是在此处解密,分析代码会发现是经过 ajaxSuccJson 方法处理的,而 ajaxSuccJson 方法 就在下方,在 ajaxSuccJson 方法内部打上断点,点击跳过断点,进入ajaxSuccJson方法内部,会发现是经过 c(b) 解密的,鼠标悬浮到 c 方法上,点击蓝色部分找到该方法,并在方法内部的 if 、else都打上断点,点击跳过断点,会发现断点进入 esle 内部,点击跳过函数调用,会发现 u 是解密成功的明文数据,把 else 内部的代码复制到 aigei.js
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
三、分析解密代码,扣代码
  1. 看代码会发现 r、n、new AudioWaveParam、u = (new llii1i1iill).ilil111lii(u)、u = ili11liii(u, “il1looOo”) 是需要分析的,把 r 打印在控制台上可以看出r响应结果,分析代码得知 n 对应的是请求参数中的 w,把请求参数复制到 aigei.js,把 r 复制后,从请求中复制 b 的返回结果修改 r 中 b 的值
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
  2. 鼠标悬浮到 new AudioWaveParam,点击蓝色部分找到该代码位置,把该代码复制到 aigei.js
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
  3. 鼠标悬浮到 (new llii1i1iill).ilil111lii,点击蓝色部分找到该代码位置,会看到 this.ilil111lii ,this.ilil111lii 是在 llii1i1iill 方法内部,把 llii1i1iill 方法复制到 aigei.js
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
  4. 鼠标悬浮到 ili11liii,点击蓝色部分找到该代码位置,会看到 ili11liii 方法,会发现代码内部有个 GeiJS,在代码内部打上断点,并把 ili11liii 方法复制到 aigei.js,
    在这里插入图片描述在这里插入图片描述
    在这里插入图片描述
  5. Ctrl+F,在文件内搜索 GeiJS 会找到赋值的地方,找到 GeiJS 第一次出现的地方,新建 GeiJS.js 把代码全部拷贝到 GeiJS.js,GeiJS 就属于魔改后的算法
    在这里插入图片描述
  6. 导入GeiJS.js,运行 js 后,数据解密成功,main 后面两行代码注释,是因为这两行代码是用来创建播放器对象的
    在这里插入图片描述
    在这里插入图片描述
四、验证结果
  1. 点击任意导航发送请求,点击跳过断点,直到看到 G=24 循环完毕,打印出 u 的值
    在这里插入图片描述
  2. 修改 aigei.py,运行成功后,数据 b 解码成功,复制刚才请求中的参数,对比 b 的值是相同的
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述

这篇关于python爬虫AES魔改案例:某音乐素材下载网的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/452636

相关文章

Python脚本实现自动删除C盘临时文件夹

《Python脚本实现自动删除C盘临时文件夹》在日常使用电脑的过程中,临时文件夹往往会积累大量的无用数据,占用宝贵的磁盘空间,下面我们就来看看Python如何通过脚本实现自动删除C盘临时文件夹吧... 目录一、准备工作二、python脚本编写三、脚本解析四、运行脚本五、案例演示六、注意事项七、总结在日常使用

Python将大量遥感数据的值缩放指定倍数的方法(推荐)

《Python将大量遥感数据的值缩放指定倍数的方法(推荐)》本文介绍基于Python中的gdal模块,批量读取大量多波段遥感影像文件,分别对各波段数据加以数值处理,并将所得处理后数据保存为新的遥感影像... 本文介绍基于python中的gdal模块,批量读取大量多波段遥感影像文件,分别对各波段数据加以数值处

python管理工具之conda安装部署及使用详解

《python管理工具之conda安装部署及使用详解》这篇文章详细介绍了如何安装和使用conda来管理Python环境,它涵盖了从安装部署、镜像源配置到具体的conda使用方法,包括创建、激活、安装包... 目录pytpshheraerUhon管理工具:conda部署+使用一、安装部署1、 下载2、 安装3

Python进阶之Excel基本操作介绍

《Python进阶之Excel基本操作介绍》在现实中,很多工作都需要与数据打交道,Excel作为常用的数据处理工具,一直备受人们的青睐,本文主要为大家介绍了一些Python中Excel的基本操作,希望... 目录概述写入使用 xlwt使用 XlsxWriter读取修改概述在现实中,很多工作都需要与数据打交

使用Python实现在Word中添加或删除超链接

《使用Python实现在Word中添加或删除超链接》在Word文档中,超链接是一种将文本或图像连接到其他文档、网页或同一文档中不同部分的功能,本文将为大家介绍一下Python如何实现在Word中添加或... 在Word文档中,超链接是一种将文本或图像连接到其他文档、网页或同一文档中不同部分的功能。通过添加超

Golang操作DuckDB实战案例分享

《Golang操作DuckDB实战案例分享》DuckDB是一个嵌入式SQL数据库引擎,它与众所周知的SQLite非常相似,但它是为olap风格的工作负载设计的,DuckDB支持各种数据类型和SQL特性... 目录DuckDB的主要优点环境准备初始化表和数据查询单行或多行错误处理和事务完整代码最后总结Duck

Python MySQL如何通过Binlog获取变更记录恢复数据

《PythonMySQL如何通过Binlog获取变更记录恢复数据》本文介绍了如何使用Python和pymysqlreplication库通过MySQL的二进制日志(Binlog)获取数据库的变更记录... 目录python mysql通过Binlog获取变更记录恢复数据1.安装pymysqlreplicat

利用Python编写一个简单的聊天机器人

《利用Python编写一个简单的聊天机器人》这篇文章主要为大家详细介绍了如何利用Python编写一个简单的聊天机器人,文中的示例代码讲解详细,感兴趣的小伙伴可以跟随小编一起学习一下... 使用 python 编写一个简单的聊天机器人可以从最基础的逻辑开始,然后逐步加入更复杂的功能。这里我们将先实现一个简单的

基于Python开发电脑定时关机工具

《基于Python开发电脑定时关机工具》这篇文章主要为大家详细介绍了如何基于Python开发一个电脑定时关机工具,文中的示例代码讲解详细,感兴趣的小伙伴可以跟随小编一起学习一下... 目录1. 简介2. 运行效果3. 相关源码1. 简介这个程序就像一个“忠实的管家”,帮你按时关掉电脑,而且全程不需要你多做

Python实现高效地读写大型文件

《Python实现高效地读写大型文件》Python如何读写的是大型文件,有没有什么方法来提高效率呢,这篇文章就来和大家聊聊如何在Python中高效地读写大型文件,需要的可以了解下... 目录一、逐行读取大型文件二、分块读取大型文件三、使用 mmap 模块进行内存映射文件操作(适用于大文件)四、使用 pand