導航:首頁 > 配伺服器 > 怎麼通過代理伺服器拿包

怎麼通過代理伺服器拿包

發布時間:2023-03-05 12:15:27

⑴ 如何使用HTTP代理

第一步、選擇好提取數量,以及協議,和格式,點擊生成api鏈接,就可以獲取到鏈接了。

⑵ Android如何利用VpnService來抓包

通過這張圖可以看出在未使用VpnService的情況下,App會走系統網路來進行各種網路通信。而在使用VpnService的情況下,IP層網路通信傳輸的包將經由本地的虛擬通道交由VpnService來處理,這樣一來我們便可以捕獲這些數據從而達到抓包的目的。

至今還沒有完全理解這個API的意義。按照google的文檔來說就是:

看起來像是添加一個虛擬IP地址的意思,然而按照教程中的描述則為:

參數變成了子網掩碼,但是按照實際的使用來看更偏向於第一種。

添加路由來過濾發送特定IP地址的流量,如果不進行任何過濾則需要設置為0.0.0.0/0或::/0

添加DNS伺服器的地址,如果不添加的話將使用手機默認的DNS伺服器。

添加白名單,白名單中的app的流量將不會經過vpn虛擬通道而直接走系統網路。

設置是否為阻塞模式,默認為非阻塞。個人感覺很重要的API,github上的很多項目沒有設置為阻塞導致具體實現的時候用的都是線程輪詢的方式,這一樣一來大大提升了系統的開銷。設置為阻塞模式後將大大減少進程上下文的切換。

設置虛擬通道的最大傳輸位元組數,需要根據具體情況具體分析。在抓包的場景下最好盡可能得設置大一些。

簡單來說是否允許一些app在使用一些非主流的方式訪問網路的情況下不走虛擬通道。個人覺得最好允許。

VpnService啟動後創建Builder進行各種初始化,結束後調用establish()獲得本地虛擬通道的文件描述符(mFD)。通過輸入流讀取需要發送IP數據包後解析包的解析(網上有各種第三方的庫可供選擇)。首先判斷是版本是IPV4還是IPV6,之後根據不同的版本來判斷使用的是什麼協議。
實際抓包的時候可以看到很多協議種類,當然主要的還是UDP與TCP。

可以創建一個稀疏數組,key為源埠,value為Datagram通道,通過Datagram通道向外發送UDP數據,從而減少系統開銷。最終通過Datagram通道拿到UDP響應數據後寫入mFD的輸出流。

TCP的情況比較麻煩,涉及到三次握手以及四次分手,在github上看到個人感覺比較好的做法是,本地建立一個代理伺服器來模擬這個過程。這個還需要深入研究。

套接字在發送之前一定要調用protect來防止循環鏈接,否則發出去的包又回回到mFD的輸入流造成死循環。

另外mFD如果不關閉的話是沒辦法停止VpnService的。

閱讀全文

與怎麼通過代理伺服器拿包相關的資料

熱點內容
榮耀50什麼時候升級安卓12 瀏覽:75
pdf文件怎麼轉成jpg 瀏覽:259
比澤爾壓縮機代理商 瀏覽:629
什麼app能下載多鄰國 瀏覽:234
伺服器藍色什麼意思 瀏覽:226
vb組態軟體源碼 瀏覽:698
加密蚊帳防蚊門簾 瀏覽:828
vs2010多線程編程 瀏覽:214
新股上市指標源碼 瀏覽:699
c語言51單片機教程 瀏覽:554
app中的hd是什麼意思 瀏覽:279
手機什麼解壓器最好 瀏覽:49
什麼是適合自己的app 瀏覽:451
雲伺服器怎麼補漏洞 瀏覽:176
如何看自己的安卓是什麼等級 瀏覽:633
被丁磊挖走的程序員 瀏覽:19
gsk980ta編程 瀏覽:507
單片機離線 瀏覽:84
解壓助眠敲擊外國長指甲 瀏覽:421
3次元編程 瀏覽:803