如何保护Android APK中存储的资产

我相信这个问题已经被问到,但我不满意他们的答案,并在这里再次发布。

有人可以请告诉我如何保护我的Android应用程序资产从复制猫谁想要build立类似的应用程序?

Solutions Collecting From Web of "如何保护Android APK中存储的资产"

一如既往,便利性与安全性之间有一个折衷。 您希望自己的应用程序越安全,开发的便利程度越低。

由于易于反编译,特别是在使用固定电话的情况下,源代码本质上是不安全的。 为了保护你的源代码,你可以混淆和/或encryption你的代码,这将防止反编译。 不完全确定哪些工具可用于Android,但我相信这会使您的构build过程复杂化。 如果你只是混淆,反编译仍然是可能的,但是将会更加困难,并且如果使用强烈的混淆级别,可能需要试图反编译你的代码的人来了解和理解字节码。

为了保护您的资产,我相信您唯一的select是使用encryption。 这又会使应用程序和/或构build过程复杂化,具体取决于您实施的位置。

即使您使用encryption来保护您的资产,您也必须保护源代码中的encryption密钥。 显然,如果你的encryption密钥在源代码中是明文的,那么使用什么encryptionscheme并不重要,那么任何人都可以获得密钥和资产并进行解密。 这一切是增加一个小栅栏跳过。

但是,如果你正确地保护了encryption密钥并使用了一个好的encryptionalgorithm,那么你就不必担心了。 虽然这是一个相当复杂的过程,但在代码中使用密钥难以保存,而且不能以明文保存。 即使你没有在代码中保存它的明文,在某些时候它也必须在内存中执行解密。 所以如果有人能够在合适的时间附加一个debugging器或者转储内存,这将会危及到这个关键。 当然,这需要一个更熟练的对手。

总的来说,您需要确定究竟是谁担心盗取您的资产。 如果你担心普通的乔复制他们,那么你应该没问题。 如果你担心专业的黑客,脚本小子等获得他们的访问,那么你可能是运气不好。

有人可以请告诉我如何保护我的Android应用程序资产从复制猫谁想要build立类似的应用程序?

一般来说,你不能。 如果在应用程序中,任何人都可以find他们。

欢迎您推出自己的encryptionscheme,或使用DexGuard等工具。 但是,由于解密引擎和密钥必须位于应用程序本身中,所有这些都会增加获取资产所需的工作量。 让它变得更加困难会减less有人从您的APK中抓取资产的可能性,但是这并不妨碍这种可能性。 当然,还有其他方法可以获得这些东西(例如截图和图像编辑器,录制应用程序播放的audio)。

您可以使用强大的encryptionalgorithm对资产文件夹内容进行encryption,并在运行时将其解密。 CopyCats不能通过简单地使用zip工具提取apk来轻松解密和获取资产文件夹内容。