999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

APK加固技術破解方法研究

2023-09-25 19:32:16斯進楊雪裴洪卿岑嘉俊
計算機時代 2023年9期

斯進 楊雪 裴洪卿 岑嘉俊

摘? 要: 為解決智能手機應用程序加固后無法獲得代碼運行邏輯及敏感數據的問題,研究了加殼、代碼加密、結構加固、資源混淆等APK常見加固技術的基本原理。通過脫殼查看核心功能代碼、修復魔數頭、根據ZIP文件結構去除垃圾內容、破解加密算法等方法,對APK進行加固破解。該方法基于大量APK實例總結提煉而來,具有一定的普適性,可為取證人員開展涉案APK分析取證提供支持。

關鍵詞: 手機應用程序; 逆向分析; APK加固技術; App加固破解

中圖分類號:TP399? ? ? ? ? 文獻標識碼:A? ? ?文章編號:1006-8228(2023)09-29-03

Research on cracking methods of APK reinforcement technology

Si Jin1, Yang Xue1, Pei Hongqin2, Chen Jiajun2

(1. Zhejiang Police College, Hangzhou, Zhejiang 310053, China; 2. Hangzhou Pinghang Technology Co., Ltd)

Abstract: To solve the problem that the code running logic and sensitive data cannot be obtained after the smart phone application is reinforced, the basic principles of common APK reinforcement techniques such as shelling, code encryption, structure reinforcement and resource obfuscation are studied. The reinforced APK is cracked by some methods such as shelling to view the core function code, repairing the magic number header, removing the garbage content according to the ZIP file structure, and cracking the encryption algorithm. These methods are based on the summary and extraction of a large number of APK cases, and have a certain degree of universality, which can provide support for forensics personnel to conduct APK analysis and evidence collection.

Key words: mobile application; reverse analysis; APK reinforcement technology; App cracking technology

0 引言

隨著智能手機在我國的普及,人們的上網方式也隨之發生改變。《第50次中國互聯網絡發展狀況統計報告》顯示,截至2022年6月,我國網民規模為10.51億,其中手機網民規模為10.47億,占全體網民的99.6%[1]。手機用戶的高速增長促進了移動支付技術廣泛應用,各類智能手機應用程序(以下簡稱APP)APP迅速覆蓋了人們日常出行、購物娛樂、金融理財等各個領域,其中安卓系統的應用程序占有較高比例,為確保手機端應用程序安全,開發者使用加殼、代碼加密、資源混淆等加固技術,來保護安卓應用程序的安裝包(AndroidPackage,簡稱APK),這種方法在解決手機應用安全問題的同時,也給APK取證分析帶來了困擾。本文對APK常見加固技術進行分析研究,提出基于靜態分析的破解方法,為公安機關開展APK分析取證提供思路和方法。

1 常見APK加固技術

通常情況下,為應對目前移動應用市場領域的破解、反編譯、盜版等現象,企業在開發手機應用時會對APK加固以實現代碼加密。APK加固的目的是保護APK代碼邏輯,其原理是將APK文件進行隱藏、混淆、加密等操作,使反編譯無法獲取APK內的項目源碼和資源。加固后的APK最明顯特征是反編譯后無法直觀地查看APK中的Java代碼,部分APK無法通過正常解包或反編譯得到資源文件,甚至AndroidManifest.xml文件中的特征也被隱藏起來。

常見APK應用加固方法主要有整體型加固、函數抽取加固和虛擬機源碼保護三類。具體特點如表1所示。

隨著APK開發流程的逐步細化,開發者主要通過從市場上購買加殼服務來實現對APK的加固,因此常使用的方式是整體型加固。整體加固需要源程序、加密工具和解殼程序三要素共同參與實現對原APK的dex文件進行加密,啟動應用時對dex解密,通過DexClassLoader進行加載,具體流程如圖1所示[2]。

源程序:需要被加殼保護的Android應用程序的代碼,可以是Android應用的apk也可以是Android應用的dex文件和so庫文件。

加密工具:對源程序進行加密的工具,即對Android應用的APK或者Android應用的dex文件和so庫文件進行加密的工具,為解殼程序提供源程序的解殼數據,語言和平臺不限,加密處理方式根據加殼的需求來處理。

殼dex文件:實現解密解殼數據并通過DexClassLoader動態加載和運行源程序的代碼,實現Android解殼程序與Android源程序的無縫替換,Android源程序APK得到執行[3]。

2 實例分析

如上文所述,整體加固實現對APK的加密、混淆、加殼處理,因此,破解工作并非一蹴而就,市場上主流軟件也難以實現自動化處理[4]。本文將結合實例逐一演示加固技術破解方法。

2.1 加殼處理

要解決APK加殼問題,首先需要了解加殼的原理和類型,以便能夠正確識別APK的殼。APK加殼就是通過在二進制的程序中植入一段代碼,使其在運行時優先取得程序的控制權,以達到完成一些額外功能的目的。APK被加殼時,會將源dex文件進行加密拼接寫入殼dex文件中,同時記錄位置以方便殼知道從哪里開始加載源dex文件內容。這意味著新的dex文件內容由殼dex文件和加密后的源dex文件組成。

⑴ 基于Xposed類工具的安卓端脫殼方法[5]

該方法原理是針對加載已解密dex內容的com.Android.dex.Dex類對象內容進行提取,進而得到源dex文件。脫殼時,需要準備一個具有root權限的安卓設備,或者使用具有root權限的安卓模擬器安裝Xposed框架和脫殼工具進行APK脫殼,并且需要通過adb命令導出脫殼后的源dex文件。

⑵ 利用Frida工具暴力提取 dex文件

該方法原理是先使用具有root權限的安卓設備(手機/模擬器)安裝運行加固APK,再將加載到安卓設備內存中的源dex文件提取到計算機本地。dex文件具有一定結構特征,如文件頭為“dex 035”,對應hex值為6465780A303335,在APP運行時,通過手工操作可以把內存中的dex文件“dump”到取證工作站。圖2展示dex文件頭的結構。

2.2 AndroidManifest.xml文件混淆修復

APK常采用文件頭結構修改、文件編碼修改等復合混淆方式,對AndroidManifest.xml文件進行混淆,導致文件內容無法查看。

⑴ 文件頭結構修改

分析AndroidManifest.xml文件的結構發現,其文件頭標識被修改成“0x0000”,此外,可以發現16位和32位處有異常的“F”位,被修改的三個地方分別對應AndroidManifest.xml文件的魔數頭、字符總數和樣式符偏移,如圖3所示。AndroidManifest.xml正常的文件頭標識為“0x0300”,因此,修復被篡改文件頭方法非常簡單,只需將前兩位“0x0000”改回“0x0300”即可正常反編譯。

修復AndroidManifest.xml的文件頭后文件格式恢復正常,但文件內容仍有大量亂碼。在以往的APK逆向分析中,我們發現針對Androidmanifest.xml的正文混淆通常會采用“Android”標簽替換成任意字符串的方式,只需要在自研解析工具中根據“Android”標簽的偏移找到該字符串并將其強制替換回“Android”即可修復,但在最近研究發現,開發者還會在Androidmanifest.xml中插入大量無用標簽來干擾分析,因此還需要按照一定規則把垃圾標簽和內容剔除。

⑵ 混淆文件編碼修改

通過本文方法對AndroidManifest.xml文件修復后,可以成功反編譯一部分內容,但顯示的內容可能是中文亂碼,導致數組索引出現問題而報錯,這是因為該AndroidManifest.xml文件使用UTF-16寬字節編碼,導致反編譯工具不兼容,需要在解析過程中針對寬字節識別和判斷后,進行單字節處理,最后實現對混淆文件的編碼修改。

2.3 APK資源代碼加密破解

對大量的加密樣本研究發現,在APK內部進行加解密需自動化實現,因此加密常采用對稱加密算法。對稱加密是一種比較傳統的加密方式,其加密運算、解密運算使用的是同樣的密鑰,單鑰加密的安全性依賴于加密算法的強度和密鑰的秘密性。雖然加密類型較為單一,但在不同APK加密對象不盡相同。有的針對APK資源文件加密,有的對APK與服務器通訊地址的代碼加密,也有的對APK文件進行整體加密。本文介紹以下常見加密類型的破解方法。

⑴ APK資源加密破解

常見APK大都是通過APP打包公司將搭建好的網站前端進行封裝而成的WebAPP。WebAPP是一種框架型APP開發形式(H5AP框架開發形式),具有跨平臺的優點,該框架由“HTML5云網站+APP應用客戶端”構成。APP應用客戶端只安裝應用的外觀部分,而數據則是在每次運行APP時加載網站數據,呈現給手機用戶。這類APK大多可以通過分析資源文件,直接獲取通訊地址、打包公司惟一ID號等。下文為一個WebAPP的JSON文件內容。

為了防止攻擊者獲取資源文件,打包公司會對資源文件進行加密,一些主流的打包公司,如APIcloud和“第八區打包”等,使用RC4對稱加密算法進行加密。APIcloud會通過特定方法從so文件中提取密鑰,而第八區則是通過特定的函數對密鑰進行拆分和拼接。對使用第八區進行資源文件加密的APK進行反編譯,可搜索到資源加密的算法。代碼中的加密類定義了多個拆散的原始字符串值,加密算法主要通過對這些字符串值進行base64加密和拼接處理,最后生成RC4加密的密鑰。

需要說明的是,個別打包公司在打包APP時會選擇對APK資源文件進行加密。由于市面上有不少“山寨”公司通過使用大公司的打包ID和代碼實現打包。不同打包公司的資源文件加解密方法會有差異,在做加密破解時間還需要具體分析APK的加密算法程序腳本。

⑵ APK代碼加密破解

APK代碼加密,一般指對代碼中重要信息進行加密,如APK通訊地址、APK中的關鍵值、數據庫密碼等重要信息。APK代碼加密通常也使用對稱加密算法。

通過分析實現代碼得到加密的密鑰和參數,可得到APK真正的通訊地址。此外,對通訊內容進行加密的APK往往會伴隨安全環境的檢測,直接使用動態抓包也可以截取其真正的通訊目標地址。圖4展示了通過指定參數、密鑰和向量,解密AES密文得到通信目標地址的方式。

3 結束語

本文系統地分析了常用的APK加固技術特點和流程,并總結了整體加固流程實現的加殼、混淆、加密防護措施的手動破解思路和方法。該方法基于大量APK實例總結提煉而來,經實踐證明具有較強普適性,可為取證人員開展涉案APK分析取證提供指導。但我們也發現,APK的破解方法也會隨著加固技術的不斷演進而變化,接下來我們還將在取證實踐中不斷歸納和總結新的破解方法和思路,并將其集成于相應的取證工具,為涉案APP的取證分析提供一體化解決方案。

參考文獻(References):

[1] 中國互聯網信息中心.第50次中國互聯網絡發展狀況統計報告[R].北京:中國互聯網信息中心,2022-08-31.

[2] 斜杠青年工作室.apk加固是什么意思(淺談安卓apk加固原理和實現)[EB/OL].http://www.webzuan.cn/szk/7566.html,2022-01-09.

[3] 用友開發中心.APK加固原理和步驟是什么?[EB/OL].https://www.apicloud.com/blogDetails/8553,2022-06-29.

[4] 孟彩霞,林俊豪,張驍.面向非法第四方支付平臺的取證分析技術研究[J].警察技術,2022(4):41-45.

[5] 李佳斌,裴洪卿,鄭雄,等.第三方SDK暗刷流量的取證分析與應用[J].警察技術,2022(3):57-60.

主站蜘蛛池模板: 波多野结衣一区二区三区四区视频| 欧美国产综合视频| 丁香婷婷综合激情| 日韩精品一区二区三区大桥未久| 亚洲专区一区二区在线观看| 一本一本大道香蕉久在线播放| 亚洲色图狠狠干| 青青国产成人免费精品视频| 久久久久青草线综合超碰| 99免费在线观看视频| 四虎永久免费地址| 精品视频一区在线观看| 日本免费福利视频| 五月综合色婷婷| 日韩毛片在线播放| 色偷偷av男人的天堂不卡| 国产黄色片在线看| 久久亚洲中文字幕精品一区| 国产a v无码专区亚洲av| A级毛片无码久久精品免费| 国内精品视频| 国产在线八区| 亚洲色偷偷偷鲁综合| 亚洲国产中文综合专区在| 国产精品毛片一区| 自偷自拍三级全三级视频| 凹凸精品免费精品视频| 女人一级毛片| 免费无遮挡AV| 欧美福利在线观看| 国产SUV精品一区二区6| 亚洲中文字幕23页在线| 国产精品无码制服丝袜| 国产91高清视频| aⅴ免费在线观看| 91精选国产大片| 国产成人精品亚洲77美色| 欧美色伊人| 无码精品国产dvd在线观看9久| 无码'专区第一页| 国产毛片片精品天天看视频| 亚洲精品无码久久毛片波多野吉| 福利片91| 国产在线观看精品| 一级毛片a女人刺激视频免费| 久久人人97超碰人人澡爱香蕉| 91香蕉视频下载网站| 97在线观看视频免费| 亚洲国产无码有码| 国产中文在线亚洲精品官网| 成人国产免费| 暴力调教一区二区三区| 免费国产高清视频| 亚洲成人黄色在线| 精品国产成人av免费| 国产美女在线观看| 日韩高清在线观看不卡一区二区| 亚洲香蕉伊综合在人在线| 999国产精品永久免费视频精品久久 | 欧美色图久久| 欧美日韩一区二区三| 亚洲 欧美 中文 AⅤ在线视频| 亚洲水蜜桃久久综合网站| 亚洲激情区| 婷婷六月综合网| 亚洲精品免费网站| 国产精品亚洲а∨天堂免下载| 青青青草国产| 青青草国产精品久久久久| 尤物视频一区| 亚洲国产欧洲精品路线久久| 91年精品国产福利线观看久久 | 男女精品视频| 亚洲成A人V欧美综合| 国产玖玖视频| 黄色网站不卡无码| 在线观看亚洲精品福利片| 婷婷激情亚洲| 亚洲欧美另类久久久精品播放的| 亚洲日本精品一区二区| 1024国产在线| 999国内精品久久免费视频|