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

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

按照順序走一圈,先來看混淆,博文在這兒 
那麼接下來讓我們再來看看加固吧,哈哈大笑
現在有很多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包進行簽名

發佈了30 篇原創文章 · 獲贊 15 · 訪問量 9萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章