加固
Java 的代码容易被反编译,可以直接拿到源代码,虽然被混淆过,
但是依旧可以调试、查找关键字符串、甚至是二次打包。
这样带来的后果都不会太小,我举两个例子。
- 可以直接查看你请求的接口与服务器 IP 甚至验证的 Token 和密钥;
- 可以通过拿到的接口窃取用户信息;
- 可以对你的 app 进行二次封装打包, 并且植入病毒后门;
- ....
Tip
并且现在 App 的管控越来越严了,不仅上架需要备案。
还会不定时被抽查,一旦发现你的 App 可以被反编译,有漏洞。直接下限期整改通知和下架(被查过) 😦
加壳的好处
加壳实际上就是把你的 APP 套一层保护膜,这样会增加反编译的难度。对方还得先脱壳才能反编译,脱壳的难度是比较大的。
加固平台
App 加固有免费的和收费的,下面我推荐一些免费和收费的平台
免费 | 收费 |
---|---|
360天御 | WeTest(腾讯云) |
... | 阿里云 |
二次签名
加固后的 App 是不可以直接安装的, 因为套了个壳。
所以需要用证书进行二次签名,然后才能正常使用以及上架到应用商店。
如何做
需要使用 apksigner
。
用之前先配置好 build-tool
的环境变量,因为它包含在里面,请参考 如何安装 apksigner ? 实现。
简洁版:【安装 Android Studio】 >> 【设置 > Android SDK > sdk tool】 >> 【勾选 Android SDK Build-Tools 应用安装】 >> 【配置环境变量:SDK目录/build-tools/版本/】
apksigner sign --ks 你的证书.keystore --ks-key-alias 证书别名 加固后的APP.apk
注意:路径有空格请使用双引号包裹
回车执行后会提示输入密码, 输入证书的密码就可以了 😃