想要開發一款安全的Android應用程序,最佳方法之一是進行滲透測試,其實際狀況就是模擬攻擊者對你的應用程序進行破解分析!首先、咱們設置測試環境;其次、咱們討論一些工具和代理技術--Drozer,Apktool和「中間人」代理 - 在安全評估Android應用程序時派上用場;最後、咱們研究了Android的清單文件。html
在Android應用程序的滲透測試期間,一般須要修改應用程序的源代碼以繞過SSL pinning SSL綁定,檢查篡改保護,繞過應用程序邏輯等步驟。在本文中,咱們將介紹成功修改源代碼的過程。安全
所需工具:
一、下載並設置Apktool
二、jarsigner
三、JD-GUI編輯器
步驟1:將代碼轉換爲Smali格式
設置Apktool並使用如下命令拆卸APK。咱們使用了測試應用程序Sieve。
apktool d <你的apk路徑這裏> -o <輸出路徑>
工具
反彙編的APK文件夾包含Smali文件。可使用任何文本編輯器修改這些文件,如如下屏幕所示:測試
您還可使用JD-GUI(將classes.dex文件轉換爲.jar格式)來標識要修改的類或方法,而後修補相應的Smali文件。加密
步驟2:從新打包APK
修改Smali代碼後,您必須從新打包APK。使用如下命令:
apktool b <deassembled apk path> -o <output apk path>
spa
Android要求每一個APK都要簽名。任何未經簽名的二進制文件都會致使傳遞錯誤。所以,下一步是建立一個密鑰對,並使用該簽名進行簽名。代理
步驟3:建立並簽署密鑰調試
Keytool和Jarsigner包裝在Java Development Kit包中,須要完成此步驟。使用此命令生成密鑰:
keytool -genkey -v -keystore mykey.keystore -alias <任何別名> -keyalg RSA-keysize 2048 -validity 10000
htm
在回答如下一系列問題後,將在C: Users <username>目錄中建立一個密鑰文件(mykey.keystore)。
建立密鑰後,可使用如下命令對APK進行簽名:
jarsigner -verbose -sigalg SHA1withRSA -digestalg SHA1 -keystore mykey.keystore <apk path> alias_name
完成全部步驟後,從新包裝的APK能夠成功安裝在設備上。
若是篡改後的APP可以正常運行,那麼該APP存在被盜版的風險。安卓應用APK加密工具集成多項加密服務,包括Dex文件加密、SO文件加密、DLL文件加密、內存保護、反調試、防二次打包等功能。避免核心代碼被破解,請求協議被僞造,被病毒感染,被植入惡意代碼後重打包等諸多安全風險!