聲明:本文只作學(xué)習(xí)研究,禁止用于非法用途,否則后果自負,如有侵權(quán),請告知刪除,謝謝!
目標網(wǎng)站:
aHR0cHM6Ly9wcm9maWxlLnpqdXJsLmNuL3JvZ3VlL3VnYy9wcm9maWxlLz91c2VyX2lkPTM2MjMxMjAzNjE=
引言
最新版的某條反爬出來后,難倒了一大片,可謂其系列產(chǎn)品web端反爬檢測最嚴格的。原來的反爬,只需要根據(jù)報錯,補充環(huán)境,使之能運行即可獲取到數(shù)據(jù)。但最新版的我操作過,能運行但無法獲取數(shù)據(jù)。后來我全部模擬出來,只要有一項檢測錯誤,它都不通過,改了那項后馬上就通過了,說明這次它真的認真了!
其實它的套路還是原來的套路,只是原來檢測了環(huán)境,但可能后端校驗不嚴格,現(xiàn)在增加了一些騷操作后,后端的校驗也嚴格了而已。既然套路一樣,那我們還是走模擬瀏覽器環(huán)境這條路。
筆者試過利用Proxy或Object.defineProperty的方法來監(jiān)測JS調(diào)用了哪些環(huán)境,但這種方法監(jiān)測得不夠全面且不夠深入,容易漏監(jiān)測,一旦漏了,那其實前面監(jiān)測到的可能就全盤無效了,因為不同的環(huán)境,它的控制流會走不同的路線,比如canvas的操作無法監(jiān)測到,或類似下面的代碼無法監(jiān)測到
window.Object.prototype.toString.call.apply(window.Object.prototype.toString, [window])
下面介紹一種簡單高效的環(huán)境自吐法(筆者自取的名字hhh),直接上幾張效果圖,前方高能,不要眨眼?。?!





可以看到,再難再深入的檢測,全部自己吐出來了,連它的算法過程都可以吐出來。有耐心的,甚至可以自己將它翻譯還原了。而且這方法是基于瀏覽器自身環(huán)境,且直接在它的頁面調(diào)用,生成的算法就是它的原生算法,因此只要對照著模擬到位,可以100%獲取數(shù)據(jù)。


想看詳細內(nèi)容,請使用微信瀏覽:
https://mp.weixin.qq.com/s/595CjegcOLbLIyzR8DxuYw
歡迎關(guān)注我的公眾號“逆向新手”,逆向系列將持續(xù)更新!
