我写了一个APP,里面有相关算法及逻辑,害怕被反编译,有没有办法保护下?
我曾经使用过腾讯云的乐固,感觉不错,把教程放出来:
我我们知道对于有过反编译经验的同学分分钟把正常的安卓程序源代码搞出来。一直也在寻找此类服务,之后发现腾讯云上有一个叫乐固的服务,支持反破解,反调试,反窃取,防篡改,防二次打包, 兼容2.x至 7.x 任何安卓系统, 兼容yunOS系统,重要的是免费的,支撑的团队响应速度也很及时,拖入专项问题讨论组,乐固团队人员帮你处理,这个太佩服,效率绝对的高。
前序:准备好之前已经签名好的产品apk。
进入以后
选择好我们的apk文件。
等到上传完毕以后:
提交,系统就会自动进行加固。
下载加固包。
会提示:
此时,如果没有下载签名工具,就先下载签名工具,如果已经下载好了 就点击 “继续下载加固包”。
这是一个已经加固,但是没有签名的包。需要我们重新用我们自己的签名和密码重新打包签名一下。
首先下载好乐固提供的自助加固工具。
正常情况下打开根目录的LeguPC.exe。
(插曲:我的win8当时打不开,应该是权限问题,我直接找到\Bin\LeguPC.exe)
我们选择辅助工具:
APK原包:就是我们下载的加固包
输出路径:选择一个目录然后,程序会把签名好的apk生成在这里
下面keystore、密码别名等就把我们生成签名的数据填写上
点击立即签名 完成加固。
我不相信任何吹嘘,验证一下是否可行。
用工具尝试还原代码,已经失败了。
目录结构是混淆后的了
目前我们这边正式产品已经使用上,表现良好兼容性也很强。
我看有人讲乐固的教程,但是不够全,我这里列一下PC的使用教程。
配置AndroidManifest.xml文件(如果不需要多渠道打包可跳过)
这里android:name=“channel”
生成正式签名的apk,默认文件名为app-release.apk
可以先提前在腾讯云官网上登陆,确认可以登陆后,再使用PC工具登陆。
开始配置签名等相关信息:
签名:
选择签名路径,输入密码,如果密码正确,Keystore别名会自动显示。
多渠道设置:
注意这里的Android Name 与 AndroidManifest.xml中要保持一致,这里为channel。
以上步骤正常完成后,辅助工具中的默认配置和设置中的多渠道和签名配置是保持一致的。
添加应用开始加固,添加完成后开始上传app,下载加固包完成打包和签名。
前面配置了输出目录,因此可直接在该目录中找到加固并重签名的安装包。
这是完成后的文件名,增加了“_legu_signed_zipalign”,此安装包可正常安装和运行。
如果不需要多渠道打包,此时加固工作已经完成。可在应用宝那里上传app-release_legu_signed_zipalign.apk。
先去腾讯云官网乐固处上传apk
下载该加固包,此时下载的文件名为:app-release_legu.apk。
选择pc工具中的多渠道打包
立即打包,完成后出现:
分别签名:
完成后的文件名:
多渠道打包和签名完成,以上两个apk可直接安装运行。
制作签名:
安装JDK,推荐64位版本,配置好环境变量
执行命令:keytool -genkey -alias key -keyalg RSA -keysize 2048 -keystore android.keystore -validity 10000
在cmd中执行此命令,输入密码和其他信息,确认完成后生成android.keystore签名文件,此时别名为“key”,有效期为10000天
或者直接使用Android studio生成签名文件,此时签名文件的扩展名为jks。
我看其他回答说没必要加固,还有人说兼容性和性能会有影响,绝对不可取!
应用加固是基于加密、加壳技术对 App 进行保护。理论上对应用加固后的兼容性会产生一定影响。如果对性能有要求的同学,请谨慎。