混淆,加固,重簽名,對齊操作
測試點評
- 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 目錄下)
然後回車 出現如圖交互式界面 輸入數字證書費密碼 作者 公司等詳細信息
如圖 :
完成後,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