混淆,加固,重簽名,對齊操作一趟串
混淆,加固,重簽名,對齊操作
按照順序走一圈,先來看混淆,博文在這兒 那麼接下來讓我們再來看看加固吧,哈哈! 現在有很多Apk加固的第三方平臺,譬如愛加密,360加固,梆梆加密等,但是這些平臺都是收費的。那麼我們就來一個免費的APK加固工具APK Protect。測試點評
- APK Protect是一款Android APK加密服務,PC Edition免費,其他高階版收費。
- 服務支援Android 2.1-4.2。
- 對於APK而言,使用PC Edition加密後其體積增加30-50KB,影響較小。
- 企業版同時提供Java和C++程式碼的加密。
- 提供加密操作流程和視訊教程(英文)。
- 更新比較及時,目前最高支援Android 4.2。
加固流程
(1)選擇版本:有多個版本,此處選用免費版(APK Protect PC Edition)。
我把軟體也上傳到CSDN伺服器,下載地址。
下載後解壓目錄如下:
(2)目標應用:SplashAct.apk
(3)加密過程:
無需安裝,解壓後直接執行apkcrypt.exe;
選擇需要加密的APK;
指定生成目標的名字;
點選按鈕開始加密,軟體會在同一目錄下生成加密後的APK。
加密前:18823KB
加密後:18885KB
注:點選開始後,可能會彈出錯誤資訊:The application need Java jre , please install jre and retry
解決辦法:由於電腦是64位的,我只安裝了64位的jre,再去裝個32位的jre就可以了
重新簽名
獲取到加固之後的APK檔案,這時還不能立即安裝,會提示APK未簽名,所以我們需要使用簽名工具對其進行簽名。
步驟:首先我們需要有.keystore 或.jks檔案,那怎麼生成呢?
.keystore 或.jks檔案的生成(可跳過):
.jks檔案的生成如下:
可通過AS中build中的下邊這個↓,調出上邊↑這個影象化介面生成.jks檔案即可;
.keystore的生成
.keystore的生成麻煩一點兒,需要鍵入cmd命令進入命令模式。因為需要通過keytool.exe
工具來建立keystore庫.所以我們需要到
輸入以下命令:
例子:keytool -genkeypair -alias mydemo.keystore -keyalg RSA -validity 100 -keystore
mydemo.keystore
命令說明如下:
-genkeypair :指定生成數字證實
-alias :指定生成數字證書的別名
-keyalg:指定生成數字證書的演算法 這裡如RSA演算法
-validity:指定生成數字證書的有效期
-keystore :指定生成數字證書的儲存路徑。 (這裡預設在keytool.exe 目錄下)
然後回車 出現如圖互動式介面 輸入數字證書費密碼 作者 公司等詳細資訊
如圖 :
完成後,keystore庫建立完成,你可以在指定的儲存目錄下找到它 如:
key檔案生成完了,那麼我們就利用xx.keystore或xx.jks,來生成簽名的apk吧!
簽名就需要使用“JDK”安裝目錄下bin子目錄下的jarsigner.exe工具來進行簽名啦。
使用如下命令進行簽名:
jarsigner -verbose -keystore mydemo.keystore -signedjar -Note.apk Notes.apk mydemo.keystore
以上命令的說明:
-verbose:指定生成詳細輸出
-keystore:指定數字證書儲存路徑
-signedjar:該選項的三個引數分別為 簽名後的apk包 未簽名的apk包 數字證書別名
注意有效期哦。
但是有時候也會出現這樣的問題:這個警告的話本身對簽名沒有影響,要想去掉這個警告只要在命令上再加上:
-tsa https://timestamp.geotrust.com/tsa 就可以了,不過考慮到在安裝的時候就可能會提示安裝失敗,沒有簽名,所以再加這段話: -digestalg SHA1 -sigalg MD5withRSA ,結果新的命令語句就是:
例:jarsigner -verbose -digestalg SHA1 -sigalg MD5withRSA -keystore test.keystore -storepass test123 -signedjar signed_client.apk client.apk test
簽名後的apk 如圖:
sdk目錄下tool目錄下使用zipalign.exe工具優化APK安裝包。
將已經簽名的apk包放在zipalign.exe同目錄下,如圖:
使用如下命令:
zipalign -f -v 4 -Note.apk -Notes.apk
命令說明:
-f :指定強制覆蓋已有檔案
-v 指定生成詳細輸出
4:指定檔案整理基於的位元組數 一般是4 也有基於32位的。
-Note.apk :優化前APK
-Notes.apk 優化後的APK
執行命令後,在該目錄下生成一個-Notes.apk,這個就是優化過的APK安裝包,該安裝包可以對外發布。
如圖:(注意命令之間的空格區域)