混淆,加固,重签名,对齐操作一趟串

混淆,加固,重签名,对齐操作

按照顺序走一圈,先来看混淆,博文在这儿 
那么接下来让我们再来看看加固吧,哈哈!
现在有很多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)。 
混淆,加固,重签名,对齐操作一趟串_第1张图片 
我把软件也上传到CSDN服务器,下载地址。 
下载后解压目录如下: 
混淆,加固,重签名,对齐操作一趟串_第2张图片

(2)目标应用:SplashAct.apk

(3)加密过程: 
无需安装,解压后直接运行apkcrypt.exe; 
选择需要加密的APK; 
指定生成目标的名字; 
点击按钮开始加密,软件会在同一目录下生成加密后的APK。 
混淆,加固,重签名,对齐操作一趟串_第3张图片

加密前:18823KB 
加密后:18885KB 
这里写图片描述

注:点击开始后,可能会弹出错误信息:The application need Java jre , please install jre and retry 
解决办法:由于电脑是64位的,我只安装了64位的jre,再去装个32位的jre就可以了

重新签名

获取到加固之后的APK文件,这时还不能立即安装,会提示APK未签名,所以我们需要使用签名工具对其进行签名。 
步骤:首先我们需要有.keystore 或.jks文件,那怎么生成呢?

.keystore 或.jks文件的生成(可跳过):
.jks文件的生成
如下

混淆,加固,重签名,对齐操作一趟串_第4张图片

可通过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 目录下)
然后回车 出现如图交互式界面   输入数字证书费密码 作者  公司等详细信息

如图 :

混淆,加固,重签名,对齐操作一趟串_第5张图片
完成后,keystore库创建完成,你可以在指定的保存目录下找到它 如:
混淆,加固,重签名,对齐操作一趟串_第6张图片
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包   数字证书别名

注意有效期哦。混淆,加固,重签名,对齐操作一趟串_第7张图片

但是有时候也会出现这样的问题:

这个警告的话本身对签名没有影响,要想去掉这个警告只要在命令上再加上:

-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  如图:
混淆,加固,重签名,对齐操作一趟串_第8张图片
sdk目录下tool目录下使用zipalign.exe工具优化APK安装包。

将已经签名的apk包放在zipalign.exe同目录下,如图:

混淆,加固,重签名,对齐操作一趟串_第9张图片

使用如下命令:

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

命令说明:

-f  :指定强制覆盖已有文件

-v  指定生成详细输出

4:指定档案整理基于的字节数  一般是4  也有基于32位的。

-Note.apk  :优化前APK

-Notes.apk   优化后的APK

混淆,加固,重签名,对齐操作一趟串_第10张图片

运行命令后,在该目录下生成一个-Notes.apk,这个就是优化过的APK安装包,该安装包可以对外发布。
如图:(注意命令之间的空格区域)

混淆,加固,重签名,对齐操作一趟串_第11张图片
混淆,加固,重签名,对齐操作一趟串_第12张图片

































混淆,加固,重签名,对齐操作一趟串_第13张图片
混淆,加固,重签名,对齐操作一趟串_第14张图片

你可能感兴趣的:(Android)