該文章主要提供交流學習使用,請勿利用其進行不當行爲!
如本篇文章侵犯了貴公司的隱私,請聯繫我馬上刪除!
如因濫用解密技術而產生的風險與本人無關!html
先了解一下拼多多,如下複製百度百科。python
拼多可能是國內主流的手機購物APP,成立於2015年9月,用戶經過發起和朋友、家人、鄰居等的拼團,以更低的價格,拼團購買商品。旨在凝聚更多人的力量,用更低的價格買到更好的東西,體會更多的實惠和樂趣。web
2018年7月26日,拼多多在美國上市。 2019年9月7日,中國商業聯合會、中華全國商業信息中心發佈2018年度中國零售百強名單,拼多多排名第3位。2019年6月11日,拼多多入選「2019福布斯中國最具創新力企業榜」。 json
2019年10月25號(美國當地時間10月24號),拼多多股價報39.96美圓,上漲12.56%,市值增長至464億美圓,超過京東。數組
2019年12月,拼多多入選2019中國品牌強國盛典榜樣100品牌。微信
不得不說。拼多可能是個神話。。。。。
cookie
今天來搞一下拼多多的web頁面的anti_content參數。app
爲何搞這個參數呢,也是由於我在某論壇看到懸賞。python爬蟲
哈哈哈哈,雖然看到的有點晚。
函數
可是不妨礙咱們研究。
畢竟大神太多了。
我搞了兩天才把這個參數完成。
人和人差距太特麼大了、、、、、
好了,好了,不廢話了,,
咱們開幹!
打開拼多多的網址http://yangkeduo.com/
而後在搜索接口隨便搜個東西。
咳咳咳。。
打錯了
重來!!
這裏咱們找到接口。
而後並未看到anti_content這個參數。
那咱們下拉,或者點擊銷量,價格等。
而後看到這個參數。密密麻麻的一大串的東西。
那就先搜索一下這個參數名吧。
而後和anti_content相關的都看不出個因此然。
那就換xhr調試吧。
能夠看到網址的type爲xhr。
而後點擊價格。。那個都行。。
咱們在這裏看到了這個參數
根據右邊的調用棧定位生成的位置。
逐一分析。
而後在這裏看到:
params: r.requestModelParams
打上斷點,從新發送請求。
繼續跟右邊的調用棧查找。
找來找去啥也沒找到。。。。。。。。。。。。。
在第三個調用棧中,咱們分析到。n就是所有的參數。
i就是anti_content參數。
那繼續追。
到這個函數中。t就是咱們的anti_content參數,
並且這個函數只有t參數,
並且這個函數小。。
是和咱們下斷點觀察。
打上斷點。開始觀察。
而後t顯示undefined
咱們f8執行。
依舊是undefined
繼續
仍是undefined
而後仍是,仍是,仍是。。。
而後看到
t = kt{}。
而後再次運行,
t就是咱們須要的anti_content參數了。
咱們能夠捋一捋。
先是kt={}
然後就是咱們的參數了。
那就是中間發生了不可見人的祕密。
咱們f11進入,,而後單步f10到這裏。
能夠看到PromiseValue。
你們能夠搜一下Promise。
看到這個地方,有個一步定位加密的方法,
就是全局搜索Promise。
若是走f11。。能走到天荒地老,才能看到加密的位置。。
這裏不廢話,就搜索Promise
在這裏看到,這個js文件叫風險控制,,
那百分一萬就是他呀。
進去瞅瞅。
看到Promise。
咱們下個斷點撒。
而後打印。
通過分析。
其實Kt()就是加密的結果。
知道加密位置了,那咱們就進入這個函數,看看咯!
這個函數有點長。我分兩次講解。
前半部分是給n添加方法。直接複製既可。
加密的過程全都在這裏。
混淆得馬馬虎虎吧。
屬於輕度混淆。
講一下。。
這個R參數,就是隨機的,「」和「N」,額,固定下來就行。。
e參數,,,就是個大數組。。。
由十幾個小數組搞成的,,
小數組裏面驗證了鼠標的位置。
後續還驗證了元素的高寬。
最後的加密結果。
是兩個拼起來的。
加密過程基本上就是這樣。
裏面涉及到一個位置。
就是這個地方。
這裏運行代碼不會報錯。。。由於沒有就是undefined,或者flase。
驗證了ua,cookie,location,document,window相關的十幾種屬性。。。
我是由於有一個時間戳出現了問題,才偶爾發現了這裏。
也算是塞翁失馬。哈哈哈哈哈。
接下來咱們再看看整個js文件。
由於谷歌沒有摺疊代碼的功能。
咱們拷貝到開發工具裏。
能夠看到整個js代碼。
加密過程就在第二個函數裏面。
這裏看第二個函數。
額。。換個工具,,,這個摺疊有問題。。
能夠看到。。。這些函數全在一個大數組裏面。。。
這裏能夠這樣搞,由於你要按照缺什麼補什麼的思路,,,那估計能扣到明年去。。。咱們所有複製出來,修改修改,,而後,執行函數,根據錯誤,調試和網頁一塊兒進行。。
那個地方錯誤了,就會很明顯的發現。
我這裏寫了js接口。。
用python的exejs和js2py執行。。。。實在受不了。。太垃圾了了,據說做者都不維護了。。。。。
參數裏的這兩個,均可以在html裏面找到。
第一頁是html。而後返回list_id和flip。
而後後面的頁數都是json數據。
flip也在其中。
還有若是寫js接口,,
若是你定義了
window.Buffer = undefined;
js會報錯。
這裏看到執行效果。
今天的分享到此結束了撒!歡飲關注公衆號。謝謝!!!
本文分享自微信公衆號 - python爬蟲與js逆向(pythonORjs)。
若有侵權,請聯繫 support@oschina.cn 刪除。
本文參與「OSC源創計劃」,歡迎正在閱讀的你也加入,一塊兒分享。