作为Android应用开发者,不得不面对一个尴尬的局面,就是自己辛辛苦苦开发的应用可以被别人很轻易的就反编译出来。那么我们改如何防止程序被恶意的反编译窃取源代码呢,这里记录两种解决方式:

1:通过代码混淆(具体混淆方法,网上有很多例子,这里就不做记录),但是代码混淆只是加深了代码的阅读难道,并不能完全解决防止反编译问题,

2.采用第三方提供的加固工具:如 360加固宝http://jiagu.360.cn/protect/  , 这种方式是在线加固,需要注册360开发者账号,审核通过

注册此种方式加密的是java源文件部分,对应资源文件部分是没有起到加密作用的。

现在介绍操作步骤:

1;注册,开通账号

2:上传应用:注意上传的apk是通过正式签名打包的apk

android apk 去广告 反编译 防止apk反编译_android apk 去广告 反编译

如图,上传完成 ,当前状态是 显示 正在加固中,大概10分钟左右会出现加固成功,表示apk加固成功。

注:测试过程中出现,加固失败的请求(重新上传即可)


3.重新签名加固后的apk:

下面介绍如何重新签名:


签名工具使用流程

一、准备工作:


1、 下载加固后的应用安装包。请在“应用保护记录”页面,选择需您进行加固保护后要发布的应用,进行下载。

 


2、 下载签名工具,并解压缩。解压缩。解压后是两个文件夹,选择keystore签名工具。

下载地址:http://yunpan.cn/lk/Q7wWewv7nYm3n

3、 联系您应用的开发人员索要密码和签名文件(扩展名为jks或keystore的文件)。



二、操作步骤:

1、 双击运行360Signer.exe文件,出现如下界面:

 

2014-4-3 11:19 上传

下载附件 (28.8 KB)


2、 点击“请选择”,找到您的APK包所在路径并框选文件进行选择。

3、 点击“请选择Keystore路径下的‘请选择’”,选择签名文件(***.jks或***.keystore)存放的路径并输入密码。

注意: 签名文件和密码可以找您应用的开发人员索要。

4、 输入路径和密码后,会自动填充别名,接着再输入一次密码。

5、 输入签名后文件的保存路径和文件名(默认为待签名文件的路径,文件名为原文件名加上signedAligned)。

注:签名后的文件已自动进行了Zipalign对齐,可直接上传google play市场

6、 点击 ”一键签名“,请稍等5秒钟,弹出”签名成功“的状态栏,签名成功。。

 


7、 在签名后路径下找到已被签名的文件,即可在平台上传发布啦。

8

 

注: 加固后的apk出现下载失败的情况,重新上传加固,可以解决这个问题


至此apk加密完成。


2015-08-27

现在通过反编译,对比下加固前后的情况:

加密前,反编译后的java源码,工程结构,清晰可见。

android apk 去广告 反编译 防止apk反编译_上传_02




加密后:工程结构都不可见啦,只有两个类,这两个类并不是我们自己项目的代码,而是360的代码。

android apk 去广告 反编译 防止apk反编译_android apk 去广告 反编译_03