加固

Java 的代码容易被反编译,可以直接拿到源代码,虽然被混淆过,

但是依旧可以调试、查找关键字符串、甚至是二次打包。

这样带来的后果都不会太小,我举两个例子。

  • 可以直接查看你请求的接口与服务器 IP 甚至验证的 Token 和密钥
  • 可以通过拿到的接口窃取用户信息
  • 可以对你的 app 进行二次封装打包, 并且植入病毒后门
  • ....

Tip

并且现在 App 的管控越来越严了,不仅上架需要备案。

还会不定时被抽查,一旦发现你的 App 可以被反编译,有漏洞。直接下限期整改通知和下架(被查过) 😦

加壳的好处

加壳实际上就是把你的 APP 套一层保护膜,这样会增加反编译的难度。对方还得先脱壳才能反编译,脱壳的难度是比较大的。

加固平台

App 加固有免费的和收费的,下面我推荐一些免费和收费的平台

免费收费
360天御open in new windowWeTest(腾讯云)
...阿里云

二次签名

加固后的 App 是不可以直接安装的, 因为套了个壳。

所以需要用证书进行二次签名,然后才能正常使用以及上架到应用商店。

如何做

需要使用 apksigner

用之前先配置好 build-tool 的环境变量,因为它包含在里面,请参考 如何安装 apksigner ?open in new window 实现。

简洁版:【安装 Android Studio】 >> 【设置 > Android SDK > sdk tool】 >> 【勾选 Android SDK Build-Tools 应用安装】 >> 【配置环境变量:SDK目录/build-tools/版本/】

apksigner sign --ks 你的证书.keystore --ks-key-alias 证书别名 加固后的APP.apk

注意:路径有空格请使用双引号包裹

回车执行后会提示输入密码, 输入证书的密码就可以了 😃

Last Updated:
Contributors: 余小波