1. 程式人生 > >混淆,加固,重簽名,對齊操作一趟串

混淆,加固,重簽名,對齊操作一趟串

混淆,加固,重簽名,對齊操作

按照順序走一圈,先來看混淆,博文在這兒  那麼接下來讓我們再來看看加固吧,哈哈大笑 現在有很多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庫.所以我們需要到

"JDK"的安裝目錄的Bin子目錄下,按住shift + 滑鼠右鍵選擇“在此處開啟命令視窗”進入本地命令模式。

輸入以下命令:
例子:keytool -genkeypair -alias  mydemo.keystore -keyalg RSA -validity  100 -keystore mydemo.keystore


命令說明如下:

 -genkeypair  :指定生成數字證實

-alias :指定生成數字證書的別名

-keyalg:指定生成數字證書的演算法  這裡如RSA演算法

-validity:指定生成數字證書的有效期

-keystore :指定生成數字證書的儲存路徑。  (這裡預設在keytool.exe 目錄下)
然後回車 出現如圖互動式介面   輸入數字證書費密碼 作者  公司等詳細資訊

如圖 :

怎麼使用命令對APK包進行簽名
完成後,keystore庫建立完成,你可以在指定的儲存目錄下找到它 如:怎麼使用命令對APK包進行簽名
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包   數字證書別名

注意有效期哦。怎麼使用命令對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  如圖:
怎麼使用命令對APK包進行簽名
sdk目錄下tool目錄下使用zipalign.exe工具優化APK安裝包。

將已經簽名的apk包放在zipalign.exe同目錄下,如圖:

怎麼使用命令對APK包進行簽名

使用如下命令:

zipalign -f -v 4 -Note.apk -Notes.apk

命令說明:

-f  :指定強制覆蓋已有檔案

-v  指定生成詳細輸出

4:指定檔案整理基於的位元組數  一般是4  也有基於32位的。

-Note.apk  :優化前APK

-Notes.apk   優化後的APK

怎麼使用命令對APK包進行簽名

執行命令後,在該目錄下生成一個-Notes.apk,這個就是優化過的APK安裝包,該安裝包可以對外發布。
如圖:(注意命令之間的空格區域)

怎麼使用命令對APK包進行簽名 怎麼使用命令對APK包進行簽名



怎麼使用命令對APK包進行簽名 怎麼使用命令對APK包進行簽名