抖音數據採集教程,一例APK脫殼反編譯尋找AES密鑰過程記錄

數據採集教程,一例APK脫殼反編譯尋找AES密鑰過程記錄

應客戶需求對一款名爲「**主治醫師總題庫」包名爲com.zitibaohe.zhuzhiyishierke)的APP進行採集可行性分析。
  這款APP和服務器的通訊使用的是HTTP協議,很容易抓到數據包,惋惜返回的數據是加密的,以下圖所示。
image.png
  根據以往經驗,內容應該是被AES加密了。要想還原出明文,必需要反編譯拿到KEY才行。
  下載APK文件,用JADX對其進行反編譯,發現被加殼了,使用的是360的加殼工具,以下圖所示。
image.png
  必須先脫殼才能反編譯到真實的APK源碼。脫殼咱們使用Xposed + FDex2插件(PS:若是你對Xposed還不熟悉,建議先閱讀Xposed相關文章)。
  安裝好FDex2插件(不要忘了重啓系統),啓動插件,點選要脫殼的APP,以下圖所示。
image.png
  而後啓動目標APP(兒科主治醫師總題庫)。使用Root Explorer瀏覽到APP的數據目錄(/data/data/com.zitibaohe.zhuzhiyishierke/)下,若是看到多個dex文件(本來該目錄下沒有這些文件,以下圖所示),說明脫殼成功了。
image.png
  將這幾個dex文件pull下來,而後依次用JADX對其進行反編譯。因爲有多個dex,怎麼快速定位咱們關注的代碼在哪個裏呢?咱們能夠搜一些特徵字符串,好比前面抓包看到的請求URL中的個「questions」,若是找到了,說明八成就是這個dex文件(以下圖所示)。
image.png
  而後咱們再搜索AES相關的關鍵詞好比「AES/」,"SecretKeySpec"或「IvParameterSpec」,最終成功定位(以下圖所示),其使用了"AES/CBC/NoPadding"加密算法,對應的KEY和IV都是明文的。
image.png
  咱們來驗證下KEY和IV是否正確。藉助「AES Online」(http://aes.online-domain-tools.com/)這個在線工具,選擇對應的加密算法,輸入密文、KEY、IV(以下圖所示)。
image.png
  而後點擊"Decrypt",成功還原出明文(以下圖所示)。點擊「[Download as a binary file]」下載解密後的數據文件,發現內容是JSON格式的,解析以後以下圖所示。
image.png
  至此,目標實現。
  除了上述經過反編譯源碼來獲取祕鑰外(過程很繁瑣),咱們還能夠利用Xposed的方式(你須要先了解Xposed相關知識),經過HOOK javax.crypto.spec.SecretKeySpec和javax.crypto.spec.IvParameterSpec類來截獲KEY和IV,操做過程簡單,下面介紹兩個相關插件。
1.使用Inspeckage(https://github.com/ac-pm/Inspeckage)這個Android動態分析工具。以下圖所示是Inspeckage截獲到的AES的KEY,與咱們上面經過源碼獲取到的一致(不過沒有獲取的IV,緣由未知)。
image.png
2.我還測了一個叫作CryptoFucker的Xposed插件(https://github.com/Chenyuxin/CryptoFucker),用起來雖然沒有Inspeckage方便(沒有UI),不過,效果很好,成功獲取到了KEY和IV,以下圖所示(HEX形式顯示)。
image.png
java

更多抖音,快手,小紅書數據實時採集接口,請查看文檔: TiToDatagit


免責聲明:本文檔僅供學習與參考,請勿用於非法用途!不然一切後果自負。github

相關文章
相關標籤/搜索