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

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

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

你可能感兴趣的:(python,python,爬虫)