抖音直播間的X-Bogus和短視頻接口的X-Bogus兩者不是同一個東西,如果貿然混用結果是很不美麗,今天我們來聊一聊短視頻接口的X-Bogus到底是怎么生成的。抖音的x-bogus不同于其他網站的加密方式可以通過關鍵字搜索,抖音的加密字段是通過jsvmp動態生成的,所以關鍵字搜索在這里不管用。這次我們用電其他的方法。
打開開發者工具,添加一個xhr調式斷點,插入關鍵字X-Bogus 那么只要接口中包含x-bogus字段都會進入斷點
image.png
如圖所示程序已經進入了調試模式,接下來就是找加密入口,直接debug跟著程序往下走,前期調試是一個非常耗時的過程,稍微不注意就會跳出程序,因為jsvmp就是通過不斷的將函數的入口,取值賦值等等操作都放到一個大的數組中然通過下標記計算來獲取相關的值以及執行函數,所以前面的調試不要急躁跟著程序一步步走就行,同時注意調試框右側的值,這里包含了函數的入參以及返回值
image.png
分享一個小經驗,一般加密往往都會接口的請求參數有關,所以重點關注右邊框的值是否涉及到我們的請求參數。
再一遍遍的調試后終于發現了我們心心念念的入口
image.png
果然如我剛才所說,接口參數再這里出現了。將函數單獨執行出現了我們想要的結果再次印證了這個方法就是我們想要的入口
image.png
仔細觀察后發現這是一個內部方法,外面無法訪問,我們的只需要將函數導出即可,隨便在window中賦值一個函數來承接我們想要的方法。至此我們的工作已經完成了一半。剩下的就是補環境和驗證。
補環境無非就是老三樣,window, document 和 navigator,將相關的參數補齊
image.png
補環境是一個不斷試錯的過程,不同的加密方法可能涉及到不同的環境參數,我們通過不斷的調試對比我們自己補的環境和能夠正常請求的環境參數有什么不同,來一步一步完善,誰也不能保證一次就能將環境補好,除非你是開發人員。
接下來在python中驗證生成的加密方法是否正確
image.png
看著結果還是很喜人的,期間也會在網上找其他人是怎么實現的,奈何結果都不太滿意,只能自己動手豐衣足食