爬蟲app資訊抓取之apk反編譯抓取

竊語發表於2019-05-10

之前也抓過一些app,資料都比較好取,也沒有研究的太深,畢竟還有android 模擬器+ appium 的方法。直到遇見了一款app ,具體名字就不說了,它安裝在模擬器上竟然打不開 !!第一次遇見上網查了許久 ,換了好幾個模擬器都不行,最後猜測是apk裡設定了檢測模擬器的機制(這裡沒有再往下研究有可能是設定問題 等等,下次有時間在研究這一方面看到底模擬器與真機的區別)。

軟體用手機代理抓包傳送request請求時,發現請求頭中有個特殊的參配,每次請求都有變化,猜測是app中的一個加密演算法 ,有可能在apk中找到。所以本次抓取思路:

1.將apk 反編譯 成java 檔案

2.從java 檔案中找到生成欄位的程式碼,將其修改為可讀的java程式(java好長時間沒用過,還好大部分都還記得)

3.將java程式碼 改為python 程式碼(本來想從網上找找有沒有python 執行java的方法 但安裝完發現麻煩是一方面,主要還是不太好用)

4.嘗試模擬請求獲取資料

具體過程如下:

首先,抓包工具使用的是Burp Suite , 先使用代理抓取手機端的具體請求--->檢視header --->使用BurpSuite 工具中的Repeat--->在raw 上修改引數,刪除引數--->得到必需欄位 為Access_tk (Burp Suite 的使用安裝下載自行百度)

之後,開始反編譯apk.反編譯工具在網上有兩種,一種是Android Killer 這是一個整合好的反編譯工具直接安裝即可使用 使用連結    https://www.cnblogs.com/common1140/p/5198460.html  適用於 簡單的app ,如果在apk里加了防止反編譯的化就不太好用,但它的搜尋很好用,可以直接尋找檔案中的欄位,通過它 我們可以找到我們點選的頁面 從而找到響應的方法名

第二種就是網上常見的反編譯思路 :

1、android-apktool 主要是進行反編譯的

2、dex2jar-0.0.9.15 將反編譯後的classes.dex檔案轉化為jar

3、jd-gui-0.3.6.windows 對第2步獲得的jar,進行檢視

具體安裝工程參照下面的作者https://blog.csdn.net/lmj623565791/article/details/23564065 (注:不需要在反編譯回去)

剩下的就是在資料夾中尋找了 最後在一個util包中 找到一個headers.java的檔案 ,檔案中剛好有生成的規則,具體規則就不放了 ,放一張規則中使用的md5加密演算法。

最後完善程式碼 ,修改為python 。 可以成功獲取資料。 

注意:

1. 在查詢檔案中,可以通過名字查詢。像有一些問價你就可以逃過去不用在看了,而且查詢時要有目標,優先檢視檔案帶header,http,request,response 的檔案這樣效率會很快

2. 說個scrapy Request 的坑,使用Request 會自動修改headers中引數名的大小寫,這個坑使我一度以為我缺了什麼引數 導致請求不成功,其實就是因為一個字母大寫伺服器端就不認了。

最後這是本人原創 要轉載請附上原始連結 ,有別的想法歡迎留言一起討論。

 

Android Killer

相關文章