JS逆向之webpack实战二(酷某音乐)

练习别搞,webpack的实战练习。别干违法违规的事情,所有行为与本公众号无关,只做一个学习分享,就一起进步进步,有别的想法的别看文章。

01逆向参数

网址:

aHR0cDovL3d3dy5rdXdvLmNuLw==

接口:

aHR0cDovL3d3dy5rdXdvLmNuL2FwaS93d3cvbG9naW4vbG9naW5CeUt3

逆向参数:

  • reqId

02实战流程

01抓包找接口

发现要逆的参数reqId。

02下断

重新登录调试。

XHR下断没有立马找到reqId,那我们就搜索下断。

直接搜到了,看一下代码。

分析一下,t.data.reqId = r,那我们要找r,那就要去上文里找r。

这不就是webpack的特点嘛,一个同名方法通过不同的参数获取不同函数方法。

直接将断点打过来调试,让他作用域到这里,去找到他的加载器。

然后我们就能发现这个不就是webpack加载器的代码嘛,那就是主函数。,咱二话不说全部先抠下来。

扣下来之后发现传入的数组是空的,那肯定是多文件打包了。

我在刚打开的时候就看到标志性文件头。

这个window.webpackJsonp还有.push追加到缓存里可太经典了,我们有三种办法可以解决他呢。(不知道的可以看下之前的:JS逆向之webpack基础)

直接全抠吧,省的动脑子。

结果是这样,那我们就要调一下代码让它跑起来。

首先肯定是要window的,然后定义一个全局变量接收加载器。

然后把最后一行init初始化删了,把加载器变为全局变量接收。

看看原调用。

那我们script(10)玩玩。

发现运行报错。

改改,直接删,所有删的方案和天翼云的那个一样,代码都差不多。

不多多了一点环境问题,删的东西有点多,反正报错看看是否判断||或者,啥的全删了就完事了。

补个document环境少处理很多事,最终该删的删完后,就能正常运行了,不过在我这报了warning。

我们再细看一下代码,r在下面c()()重新定义过。

先获取l = n(109)

然后再取c = n.n(l),再拿r=c()()执行,发现运行出结果了。

03总结

看到webpack就要想着找他的特征一,找到特征之后直接,找主文件,找主文件之后,看他是不是多文件,是多文件就找他的子文件,全部抠下来就完事了。

03完整代码

源码四万行太长,交流群自取,交流群在公众号:关于我的->交流群。

喜欢就点个关注一起进步吧

此文章仅做学习之用,请勿做违法违纪之事。

声明:文中观点不代表本站立场。本文传送门:https://eyangzhen.com/218411.html

(0)
联系我们
联系我们
分享本页
返回顶部