<kbd id="afajh"><form id="afajh"></form></kbd>
<strong id="afajh"><dl id="afajh"></dl></strong>
    <del id="afajh"><form id="afajh"></form></del>
        1. <th id="afajh"><progress id="afajh"></progress></th>
          <b id="afajh"><abbr id="afajh"></abbr></b>
          <th id="afajh"><progress id="afajh"></progress></th>

          Python 爬蟲(chóng)進(jìn)階必備 | 某音樂(lè)網(wǎng)站查詢(xún)參數(shù)加密邏輯分析(分離式 webpack 的加密代碼扣取詳解)

          共 1658字,需瀏覽 4分鐘

           ·

          2021-08-26 11:20

          點(diǎn)擊上方“咸魚(yú)學(xué)Python”,選擇“加為星標(biāo)

          第一時(shí)間關(guān)注Python技術(shù)干貨!

          今日網(wǎng)站

          aHR0cDovL3d3dy5rdXdvLmNuL3NlYXJjaC9saXN0P2tleT0lRTQlQjglOEIlRTUlQjElQjE=

          首先聲明,本網(wǎng)站的這個(gè)參數(shù)不是必要的參數(shù),通過(guò) postman 測(cè)試不帶參數(shù)也可以返回?cái)?shù)據(jù),那么這篇文章講什么?

          之前分析了一篇 webpack 加密的網(wǎng)站,講了大概一個(gè)使用了 webpack 的網(wǎng)站他的參數(shù)應(yīng)該如何扣取。

          本篇是他的續(xù)篇,主要講述當(dāng)模塊分發(fā)器不在同一個(gè)文件的 webpack  應(yīng)該如何扣取

          Python 爬蟲(chóng)進(jìn)階必備 | 某游戲網(wǎng)站密碼加密邏輯分析(webpack 的 js 加密代碼怎么扣 -思路分析)

          加密參數(shù)定位

          首先看下我們需要的分析的參數(shù)是什么

          這里的 reqId 就是需要分析的參數(shù),這個(gè)參數(shù)看著是不是特別像 uuid

          直接檢索參數(shù)名可以找到下面這個(gè)文件

          在文件里再次檢索可以定位到下面幾個(gè)位置

          這里的reqId的值分別等于rn,但是這里的rn的邏輯都指向下面這個(gè)邏輯c()()

          所以我們需要斷點(diǎn)一下看下reqId是否就是在這里生成的,如果是這里再看看c的具體邏輯

          這里打上斷點(diǎn)刷新可以看到,確實(shí)斷點(diǎn)的位置在上面標(biāo)記的兩個(gè)位置中,并且參數(shù)也是c()()生成的

          加密參數(shù)分析

          經(jīng)過(guò)上面的定位已經(jīng)可以知道參數(shù)是由c()()生成的,那么c的邏輯分析出來(lái)就完成了。

          往上翻下代碼可以看到下面的邏輯

          l = n(109)
          c = n.n(l)
          reqId = c()()

          所以這里的關(guān)鍵參數(shù)就是lln(109)生成的,這里的n就是我們今天的重點(diǎn)webpack整出來(lái)的。

          按照前一篇的介紹,要看下模塊分發(fā)器的位置把他扣取出來(lái),然后把加密邏輯用到的模塊都塞到分發(fā)器里調(diào)用就可以了。

          但是在開(kāi)始的位置沒(méi)有看到分發(fā)器

          所以現(xiàn)在要在l的位置單步到分發(fā)器的位置,原來(lái)在另一個(gè)文件中

          這里就是分發(fā)器的位置了,這里的e存的就是全部的模塊

          代碼運(yùn)行到函數(shù) d 的時(shí)候會(huì)把所有方法都塞到這個(gè)列表里,然后就可以用n(xxx)調(diào)用了,我們要做的就是和這里一樣把reqId的邏輯組成一個(gè)這樣的函數(shù),我們直接調(diào)用d(xxx)這樣的代碼就可以直接生成 reqId

          現(xiàn)在就是把分發(fā)器還有reqId用到的模塊都扣出來(lái)然后組裝到一起。

          代碼扣取

          先扣模塊的分發(fā)器,把除了d之外的全刪了

          因?yàn)?code style="font-size: 14px;padding: 2px 4px;border-radius: 4px;margin-right: 2px;margin-left: 2px;background-color: rgba(27, 31, 35, 0.05);font-family: "Operator Mono", Consolas, Monaco, Menlo, monospace;word-break: break-all;color: rgb(71, 193, 168);">d里面用到了t,所以在d前面補(bǔ)一個(gè)var t={}

          這個(gè)時(shí)候剩下的代碼應(yīng)該是下面這樣的

          接下來(lái)就是找l用到的代碼了

          可以看到l用到的是n(109),所以我們需要找到109對(duì)應(yīng)的代碼

          注意:這里最好是在模塊分發(fā)器里找 109 對(duì)應(yīng)的代碼像下圖這樣,如果將斷點(diǎn)打在 l 的位置單步進(jìn)去可能會(huì)出現(xiàn)偏差

          然后通過(guò)點(diǎn)擊上面圖示中的回顯,來(lái)找到對(duì)應(yīng)的代碼

          將這部分代碼放到我們扣好的分發(fā)器里面

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

          按照我們上面方法重復(fù)把他們兩個(gè)都扣出來(lái)

          這個(gè)時(shí)候就得到了所有用到的代碼,接下來(lái)就是需要在外部得到這個(gè)模塊分發(fā)器運(yùn)行起來(lái)的結(jié)果

          為啥需要這么做?

          完成上面的操作后,我們得到的是一個(gè)自執(zhí)行的函數(shù),也就是說(shuō)我們一運(yùn)行代碼他就會(huì)自動(dòng)執(zhí)行了。

          函數(shù)執(zhí)行結(jié)束我們要的方法的列表的就沒(méi)了,所以就需要把這個(gè)函數(shù)列表導(dǎo)出到一個(gè)全局變量里,然后在這個(gè)全局變量里面調(diào)用對(duì)應(yīng)的方法完成reqId的生成

          所以我們?cè)谕饷嬲{(diào)用一個(gè)var xianyu;

          在自執(zhí)行的方法里把d方法賦值給xianyu

          之后再照網(wǎng)站上的調(diào)用邏輯調(diào)用一下就可以了

          !

          運(yùn)行就可以生成reqId

          就這樣就完事了~

          以上就是今天的全部?jī)?nèi)容了,咱們下次再會(huì)~

          對(duì)了,看完記得一鍵四連,這個(gè)對(duì)我真的很重要。

          瀏覽 24
          點(diǎn)贊
          評(píng)論
          收藏
          分享

          手機(jī)掃一掃分享

          分享
          舉報(bào)
          評(píng)論
          圖片
          表情
          推薦
          點(diǎn)贊
          評(píng)論
          收藏
          分享

          手機(jī)掃一掃分享

          分享
          舉報(bào)
          <kbd id="afajh"><form id="afajh"></form></kbd>
          <strong id="afajh"><dl id="afajh"></dl></strong>
            <del id="afajh"><form id="afajh"></form></del>
                1. <th id="afajh"><progress id="afajh"></progress></th>
                  <b id="afajh"><abbr id="afajh"></abbr></b>
                  <th id="afajh"><progress id="afajh"></progress></th>
                  亚洲国产第一页 | 天天躁天干天干 | AA片免费看 | 一区高清无码 | 经典素人-熊猫成人网 |