希望改进我的Android应用的安全性,以标记.apk是否已被提取,修改,重新包装和重新签名。这是来自Zdnet的文章,注意到问题link1。
值得关注的是,如果应用程序是黑客攻击的目标,他们可能会添加恶意代码并上传到备用应用商店并欺骗用户下载它。
所以我在考虑验证apk或签名证书的校验和的代码?
我很欣赏应用程序代码可以重新打包并删除任何安全代码,但它确实增加了重新打包的难度,可能足以让他们尝试其他应用程序。
[更新]我知道Google Play商店许可模块提供类似的东西,但我正在寻找非付费应用和其他/非市场的东西。
答案 0 :(得分:3)
我最终使用Dexgaurd(Android的付费混淆器)提供了一个预先形成apk验证的模块。主要是实施简单,并提供更好的平均保护。
以下是执行检查的代码:
dexguard.util.TamperDetection.checkApk(context)
主要问题是在哪里存储apk的校验和以验证是否可以替换它。 dexguard的方法是在本地检查它,但使用其他功能,如类/字符串加密和api隐藏模糊此调用。
答案 1 :(得分:1)
以下是一些可以帮助你的文章。
Retrieving APK signature during runtime。
Self checking an APK signature.
How to check APK signature.
答案 2 :(得分:0)
使用Google许可服务它将与Play商店连接,以确保用户每隔几天购买该应用。 (你可以设定金额)也在ProGuard上玩。它会从代码中删除所有类,方法和变量名称,这使得它在反编译后很难理解。