apk防止反编译
作为Android应用开发者,不得不面对一个尴尬的局面,就是自己辛辛苦苦开发的应用可以被别人很轻易的就反编译出来。那么我们改如何防止程序被恶意的反编译窃取源代码呢,这里记录两种解决方式:
1:通过代码混淆(具体混淆方法,网上有很多例子,这里就不做记录),但是代码混淆只是加深了代码的阅读难道,并不能完全解决防止反编译问题,
2.采用第三方提供的加固工具:如 360加固宝http://jiagu.360.cn/protect/ , 这种方式是在线加固,需要注册360开发者账号,审核通过
注册此种方式加密的是java源文件部分,对应资源文件部分是没有起到加密作用的。
现在介绍操作步骤:
1;注册,开通账号
2:上传应用:注意上传的apk是通过正式签名打包的apk
如图,上传完成 ,当前状态是 显示 正在加固中,大概10分钟左右会出现加固成功,表示apk加固成功。
注:测试过程中出现,加固失败的请求(重新上传即可)
3.重新签名加固后的apk:
下面介绍如何重新签名:
签名工具使用流程
一、准备工作:
1、 下载加固后的应用安装包。请在“应用保护记录”页面,选择需您进行加固保护后要发布的应用,进行下载。
2、 下载签名工具,并解压缩。解压缩。解压后是两个文件夹,选择keystore签名工具。
3、 联系您应用的开发人员索要密码和签名文件(扩展名为jks或keystore的文件)。
二、操作步骤:
1、 双击运行360Signer.exe文件,出现如下界面:
2、 点击“请选择”,找到您的APK包所在路径并框选文件进行选择。
3、 点击“请选择Keystore路径下的‘请选择’”,选择签名文件(***.jks或***.keystore)存放的路径并输入密码。
注意: 签名文件和密码可以找您应用的开发人员索要。
4、 输入路径和密码后,会自动填充别名,接着再输入一次密码。
5、 输入签名后文件的保存路径和文件名(默认为待签名文件的路径,文件名为原文件名加上signedAligned)。
注:签名后的文件已自动进行了Zipalign对齐,可直接上传google play市场
6、 点击 ”一键签名“,请稍等5秒钟,弹出”签名成功“的状态栏,签名成功。。
7、 在签名后路径下找到已被签名的文件,即可在平台上传发布啦。
8 、 支持批量签名:可一次性选择多个需要签名的文件,一次性完成多个加固文件的签名工作
注: 加固后的apk出现下载失败的情况,重新上传加固,可以解决这个问题
至此apk加密完成。
2015-08-27
现在通过反编译,对比下加固前后的情况:
加密前,反编译后的java源码,工程结构,清晰可见。
加密后:工程结构都不可见啦,只有两个类,这两个类并不是我们自己项目的代码,而是360的代码。