某度翻譯逆向分析
目標網站:aHR0cHM6Ly9mYW55aS5iYWlkdS5jb20vI2VuL2NodC9oZWxsbw==
請求參數跟值
- 下個XHR斷點,一步一步跟很容易可以來到這處
- 請求參數就是
this.paramData
- 這時一個快捷的方法是先看看
this.constructor
,看paramData
是否在構造函數裡就已經賦值
- 一看發現果然如此
- 然後向上一層就能找到參數生成的地方
- 慢慢調試,會發現除了
sign
外,其他參數都能固定 - 生成
sign
的函數也很容易扣,用一般webpack的扣法就能搞出來
Acs-Token跟值
- 在上述跟值的過程中就能看到
Acs-Token
賦值的地方
打個條件斷點跟到這裡,再往前就是異步
- 在異步的地方下斷點,測試後發現代碼會走2次這裡,若第2次時再按
F8
就會去到上一步條件斷點的位置 - 因此在第2次時按
F11
然後發現n
是生成好的Acs-Token
,代表我們又更前了一步
繼續向前跟會發現Acs-Token
在n.gs
的回調函數中出現
- 跟進
n.gs
,來到另一個名為acs-2060.js?_=XXXX
的代碼中,而n.gs
就會下圖紅框的這個函數 - 根據文件名其實就可以推測
Acs-Token
的值就是在這裡生成,而n.gs
這個函數就可以作為生成Acs-Token的入口,最終結果會在回調函數的參數生傳入
Acs-Token生成
複製整份acs-2060.js?_=XXXX
的代碼,放到補環境框架裡,在日志可以看到,它很貼心地幫我們將入口函數導出了,直接在全局就能使用
- 調用方法如下,然後就是補補環境讓它能出值就可以了
- 經測試發現它對環境的校驗並不強,能出值基本上就能用了?( 或許吧
附上一張請求成功的圖^^
本部落格所有文章除特別聲明外,均採用 CC BY-NC-SA 4.0 許可協議。轉載請註明來自 NgIokWeng's Blog!
評論