在外圍擷取APP的重要訊息

來源:互聯網
上載者:User

標籤:等等   tcpdump   擷取   exec   json格式   skill   add      運行   

網路抓包,這類的術語,大家應該聽過不少了。

不管怎麼表達,本質都是分析網路互動時的資料包,以取得想要的資訊。

我們有可能會遇到這樣的情境:“對方這個App是怎麼實現的?它發送的網路請求有沒有帶上時間限制?”、“擷取這個資源的網路地址是什麼,要不要帶token?我能夠類比發送嗎?” ...

在研究某個應用程式時,分析網路資料包,往往就是第一個手段。

本文解決一個問題:通過抓包分析出重要訊息。

小白:何為抓包?

小程:就是截獲網路上收發的資料包。

小白:網路上那麼多資料包,怎麼知道哪些是有用的?

小程:只截獲目標app的資料包就縮小了範圍,但即便是縮小了範圍,也需要進一步分析與排查。

小白:在垃圾堆裡找壞人的行動時間與地點嗎?這是使徒行者2的橋段啊,你有沒有看過?

小程:我在說抓包!不是垃圾堆!不是使徒行者!

小白:你抓,你抓,不要抓急嘛……

抓包的工具有很多,適合在不同的平台上使用。

這裡只介紹charles的使用。

小白:都有什麼樣的抓包工具呢?

小程:比如wireshark、tcpdump、tcpflow、charles、fiddler、sniffer等等。

小白:為什麼只介紹charles,難道其它的不好用嗎?

小白:不是其它的不好用,是我一次只講一個東西!

小白:你......

Charles,是mac上截取網路資料包的工具。

官網:<http://www.charlesproxy.com>。

(1)破解charles

用破解的charles.jar,覆蓋到程式包內Contents/Java目錄即可(比如4.0.1版本)。

(2)使用charles

charles運行後,就可以看到截獲到的資料包。

charles的視圖分“按結構”跟“按順序(時間先後)”,按順序時可以篩選。

兩個視圖都可以選擇特定的url,再選擇focus,這樣就重點觀察這個url的相關請求與響應,不會跳來跳去。

mac上,抓https包,需要安裝ssl認證:

help->ssl proxying ->install charles root cer..,同時要在keychain中資訊這個認證(簡介->信任->ssl設定為始終信任)。

對於https包,確定url後,要右擊選擇enable ssl proxying,才可以做到解密https包

可以右鍵選擇breakpoints,這時會監控這個url的相關行為並下斷點(可以修改發送請求等),在發送請求時、收到回複時、正在接收response body時,都會觸發斷點。觸發斷點後,可以執行“取消(即讓其繼續執行)”、“中止”、“執行”等操作,比如可以修改請求的值後再執行“execute”。

(3)示範:擷取appstore的app的曆史版本

iphone上使用的一些app,新版本還不如舊版本好使。

雖然appstore會把很舊的版本的下載連結給隱藏掉,但存貨還是在的。

如何通過itunus拿到某個app的所有曆史版本的資訊,並下載到曆史版本呢?

操作如下:

開啟charles,再開啟itunes並搜尋到目標app,再下載這個app,會觀察到https://p23-buy.itunes.apple.com 是目標url,focus這個url。對這個url選擇enable ssl proxying,退出charles。啟動charles,刪除掉itunes上已下載的目標aap,重新整理並重新下載。這時,在目標url下面的buyProduct頁面的contents的response部分,會顯示一個array,是一堆id串,這個就是不同版本的下載id(用xml text來查看,可拷貝)。再次刪除已下載的app,並對目標url加上breakpoints,再次下載app。在發送request時會觸發斷點,選擇edit request頁面並選擇xml text查看模式,把下載id替換成目標下載id,之後不斷點擊execute或取消掉斷點再執行。這時,itunes會下載到目標版本的app,之後可以找到對應的ipa,並同步到手機。

以“”為例,大概的步驟是這樣的:

(a)下載時,在charles上focus目標url,並啟用ssl:

(b)刪除已下載的,啟動charles後,重新下載,留意目標url下面的內容:

(c)刪除已下載的,對目標url加上breakpoints,再次下載,修改請求,再execute:


(d)下載到最舊版本的:

(4)示範:抓取qq音樂歌手詳情的資訊

操作如下:

charles,proxy->proxy setting,port使用8888,勾選enalbe transperent http proxying,開啟代理。help->local ip address,查看charles代理的ip地址。手機,如iphone,wifi資訊->http代理,填寫伺服器(charles的代理ip)與連接埠(8888)。手機會串連上charles,允許它串連。對於https協議,手機上需求安裝ssl的認證:在safari上輸入http://charlesproxy.com/getssl,跳轉安裝認證。鎖定目標url,即可拿到資料。比如,對於iphone上的qq音樂的歌手詳情,目標url是https://u.y.qq.com,focus它,右鍵開啟ssl proxy,就可以拿到詳情資訊。

大概的示範是這樣的:

(a)charles開啟代理:

(b)手機連上代理後,對https://u.y.qq.com特別處理,可以看到歌手資訊:

(5)示範:擷取“抖音短視頻”的歌曲下載連結

小白:我知道!這個抖音短視頻很好玩的,所有歌曲都只是副歌部分。它的下載連結是可以用的嗎?歌曲是否加密了?

小程:可以用,歌曲至少現在是沒有加密的。

抖音,大概有50幾萬首歌曲。

可以通過搜尋介面或者分類歌曲介面,來取得歌曲列表資訊。歌曲列表資訊是json格式的內容,其中包括這樣的資訊:

"play_url": {    "url_list": [        "http://p3.pstatp.com/obj/29c90000eb8b5ca6fff2"    ],     "uri": "29c90000eb8b5ca6fff2"}, 

url_list就是歌曲下載連結。除了這個,還可以找到歌手名、歌曲名等。

小白:為什麼不詳細說說請求連結是什麼呀?

小程:因為示範只是為了學習,不應該涉及太多商業的內容。

小白:我去!

在外圍擷取APP的重要訊息

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.