如何防止手机上已安装的APK应用程序被轻易提取

9

通过应用程序管理器(如)从手机中提取apk应用程序非常容易。

谷歌曾经有一种基本的保护措施,但已被放弃,转而采用更有效的许可证管理方式。然而,旧的保护措施使得在Google Play市场之外不加区分地共享apk变得更加复杂。

拥有一个开源库,但我没有找到任何关于实现GooglePlay基础反apk复制保护的信息。

除了许可证管理保护之外,类似的解决方案将会很有用。

我看到有些应用程序仍然阻止apk复制,方法与旧版Google Play保护相同。

是否有人知道反apk复制是如何工作的,或者是否有类似的开源保护库?

有人问这种操作的原因应该是什么。

原因有很多:

-避免apk通过未经授权的渠道被随意传播

-避免第一个新手简单地用winzip打开您的APK就可以轻松地提取所有资源(如PNG图像、按钮、纹理、数据库等)供他使用

-提高总体安全性

PS

我知道对于每一种保护措施,总会有方法来破解它,但这并不意味着留下非常容易被滥用的方式始终是最好的选择。

1个回答

2

我认为很难防止别人从设备中复制文件。但是你想要实现这一点的原因是什么?如果只是出于安全方面的考虑,还有其他方法。

基本上,您可以使用Proguard混淆代码。如果这还不够,我知道在Java中,有一种机制可以加密.jar文件并使用自定义的ClassLoader来解密文件并加载类。

这在Android中也可以使用。

  1. 使用c和jni提供加密/解密api。(反编译.so文件更加复杂。)
  2. 将核心打包成jar文件。加密jar并将其放置在assets /中。
  3. 使用新的DexClassLoader替换默认的ClassLoader。尝试解密.jar文件并加载类。

我已经对我的问题进行了澄清。 - Silverstorm
1
是的,没有完美的保护措施。我们所能做的就是让它更难被攻破。如果黑客花费的时间太长而无法忍受,我认为这是安全的。 - faylon
有更新吗?我发现最近安装的应用程序无法使用ES文件管理器Astro和类似程序进行备份...我该如何使用类似的保护措施? - AndreaF

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接