我正在尝试开发一款应用程序,其中包括Android自加密应用程序。自加密应用程序,以避免在非rooted安卓设备上出现乱码
的想法是以下几点:
- 应用程序应该执行它的功能(例如显示的 “Hello world!”),但...
- 完全存储在应用程序代码(部分)进行加密,即“所有什么可以加密应该被加密“,所以它不能通过简单的反汇编以正确的方式被读取(即,它被字面加密(例如通过AES),所以它被表示为系统中的许多随机命令/符号或者不适用不正确)。
- 应用程序的“部分”应在执行前解密;
- 应用程序未使用的“部分”应在使用后解密;
- 上面提到的所有操作都应该由app自己完成。
所以核心思想是自我加密。
我知道什么是混淆,所以请不要提及它。任何一侧的应用程序都是一样的。我不会花我所有的余生在逆向工程中)))。所以...
- 自加密Android(JAVA)代码的正确方法是什么?
- 怎样才能实现上面提到的算法?
- 请提供任何代码片段,如果妳能够做这样的事情或任何链接/信息/用品/伪/想法
我的事情的想法是伟大的,真正有趣的,再加上很多人会很高兴知道如何保护他们的应用程序。
[编辑] 感谢@Pace和@JimmyB为自定义ClassLoader的想法。我会尽力实施它。我还要感谢@xalo提出了变质发动机的概念,我会深入探讨这个主题,因为我认为它会更大程度上满足我的目标。
这个问题是这个网站太宽泛。你可能想要创建一个自定义类加载器。 – Pace
您可以使用/实现一个自定义的['ClassLoader'](https://developer.android.com/reference/java/lang/ClassLoader.html)来加密解密类。但是,*如果*您的应用可以'解密'代码,那么攻击者/黑客也可以。 – JimmyB
谢谢你们的定制类加载器的想法。而现在我明白我的问题实在太广泛了(((( –