您好,登錄后才能下訂單哦!
webpack的js加密代碼該怎么扣 ,相信很多沒有經驗的人對此束手無策,為此本文總結了問題出現的原因和解決方法,通過這篇文章希望你能解決這個問題。
今日網站
aHR0cHM6Ly93d3cuZ205OS5jb20v
這個網站來自咸魚的技術交流群
本來是好奇是什么網站用 Reres 匹配不了看看是不是出了什么新的反爬措施
結果分析下來并不是,不過分析都分析了,就寫篇文章,這個網站的加密使用了 webpack 所以就順手分析下應該怎么扣
還是那句話:通用算法的話不用扣,直接引用加密庫,別給自己找事
知道加密是登陸使用的密碼,所以直接找登陸請求,目的明確的定位里面的加密參數 password
兩種方法定位:
1、檢索password
參數定位
2、在network
按照initator
中列舉的js
直接溯源
用第二種方法,先進去下斷點,然后再次點擊登陸就進入斷點了
多調試幾次就找到了下面這里的位置
s = (new Date).getTime()
r = g.encode(t.password, s)
p = {...password: r,}
根據上面的偽代碼可以看到現在位置的就是g.encode
這個方法
繼續斷點,然后請求,可以看到下面這樣的邏輯
基本就完事了,rsa 加密公鑰的就在上面setPublicKey
地方,使用通用加密導包的方式復現加密,整個流程到這里就結束了
既然開始的時候說到要看看這里使用的 webpack,這里簡單看看
先看看這里 webpack 的特征
將這里全部的代碼復制到編輯器中,將括號都收縮好
整體結構是這樣的偽代碼
!function(x){
xxxxx
}([
function xxx,
function xxxx,
function xxxxx,
]);
是不是和上面的偽代碼一毛一樣
除了結構之外,webpack 最重要的是他還有一個方法的加載器,加載后就是分析 webpack 加密的時候經常會看到xxx(90)、xxx['xxxx']
這樣的調用,扣代碼的時候感覺代碼全是套娃
他的模塊加載器一般在代碼的最上面,也有一些網站是將這個代碼拆分到別的 js 文件中
像我們這個網站是在最上方
他先定義了一個空的s
,然后在n
里面做了判斷,判斷s[t]
有沒有東西,如果有就不進入下面的邏輯了
所以這個模塊加載器一般在網站加載之后就不會再進去了。
所以我們分析的邏輯里會看到一個s=r(3)
是已經加載好的
斷點下在這個位置是不會斷住的
需要在現在模塊加載器上下上斷點,然后刷新網站,就會斷住了
點擊i[3]
的回顯就可以看到s=r(3)
的代碼在什么位置了
1、原來的代碼是有加載器的 我們也弄一個加載器
2、模仿上面偽代碼的方式定義自己的模塊列表
這里自己的模塊列表內容容就是加密參數經過的加密邏輯代碼,摳出來放進去
放到代碼里紅框的位置
3、扣取到代碼不會報錯就可以了,之后就是導出對應的方法照著加密的邏輯一個個拿來用就完事了
看完上述內容,你們掌握webpack的js加密代碼該怎么扣 的方法了嗎?如果還想學到更多技能或想了解更多相關內容,歡迎關注億速云行業資訊頻道,感謝各位的閱讀!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。