前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Python 爬虫进阶必备 | 某音乐网站查询参数加密逻辑分析(分离式 webpack 的加密代码扣取详解)

Python 爬虫进阶必备 | 某音乐网站查询参数加密逻辑分析(分离式 webpack 的加密代码扣取详解)

作者头像
咸鱼学Python
发布2021-09-08 10:42:50
6610
发布2021-09-08 10:42:50
举报
文章被收录于专栏:咸鱼学Python

今日网站

aHR0cDovL3d3dy5rdXdvLmNuL3NlYXJjaC9saXN0P2tleT0lRTQlQjglOEIlRTUlQjElQjE=

首先声明,本网站的这个参数不是必要的参数,通过 postman 测试不带参数也可以返回数据,那么这篇文章讲什么?

之前分析了一篇 webpack 加密的网站,讲了大概一个使用了 webpack 的网站他的参数应该如何扣取。

本篇是他的续篇,主要讲述当模块分发器不在同一个文件的 webpack 应该如何扣取,视频演示的版本,请看咸鱼公众号最新文章

Python 爬虫进阶必备 | 某游戏网站密码加密逻辑分析(webpack 的 js 加密代码怎么扣 -思路分析)

加密参数定位

首先看下我们需要的分析的参数是什么

这里的 reqId 就是需要分析的参数,这个参数看着是不是特别像 uuid

直接检索参数名可以找到下面这个文件

在文件里再次检索可以定位到下面几个位置

这里的reqId的值分别等于rn,但是这里的rn的逻辑都指向下面这个逻辑c()()

所以我们需要断点一下看下reqId是否就是在这里生成的,如果是这里再看看c的具体逻辑

这里打上断点刷新可以看到,确实断点的位置在上面标记的两个位置中,并且参数也是c()()生成的

加密参数分析

经过上面的定位已经可以知道参数是由c()()生成的,那么c的逻辑分析出来就完成了。

往上翻下代码可以看到下面的逻辑

代码语言:javascript
复制
l = n(109)
c = n.n(l)
reqId = c()()

所以这里的关键参数就是lln(109)生成的,这里的n就是我们今天的重点webpack整出来的。

按照前一篇的介绍,要看下模块分发器的位置把他扣取出来,然后把加密逻辑用到的模块都塞到分发器里调用就可以了。

但是在开始的位置没有看到分发器

所以现在要在l的位置单步到分发器的位置,原来在另一个文件中

这里就是分发器的位置了,这里的e存的就是全部的模块

代码运行到函数 d 的时候会把所有方法都塞到这个列表里,然后就可以用n(xxx)调用了,我们要做的就是和这里一样把reqId的逻辑组成一个这样的函数,我们直接调用d(xxx)这样的代码就可以直接生成 reqId

现在就是把分发器还有reqId用到的模块都扣出来然后组装到一起。

代码扣取

先扣模块的分发器,把除了d之外的全删了

因为d里面用到了t,所以在d前面补一个var t={}

这个时候剩下的代码应该是下面这样的

接下来就是找l用到的代码了

可以看到l用到的是n(109),所以我们需要找到109对应的代码

“注意:这里最好是在模块分发器里找 109 对应的代码像下图这样,如果将断点打在 l 的位置单步进去可能会出现偏差

然后通过点击上面图示中的回显,来找到对应的代码

将这部分代码放到我们扣好的分发器里面

可以看到109里面还用到了202 还有203

按照我们上面方法重复把他们两个都扣出来

这个时候就得到了所有用到的代码,接下来就是需要在外部得到这个模块分发器运行起来的结果

为啥需要这么做?

完成上面的操作后,我们得到的是一个自执行的函数,也就是说我们一运行代码他就会自动执行了。

函数执行结束我们要的方法的列表的就没了,所以就需要把这个函数列表导出到一个全局变量里,然后在这个全局变量里面调用对应的方法完成reqId的生成

所以我们在外面调用一个var xianyu;

在自执行的方法里把d方法赋值给xianyu

之后再照网站上的调用逻辑调用一下就可以了

!

运行就可以生成reqId

就这样就完事了~

以上就是今天的全部内容了,咱们下次再会~

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2021-08-22,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 咸鱼学Python 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 今日网站
    • 加密参数定位
      • 加密参数分析
        • 代码扣取
        领券
        问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档