我正在开发一个拖放应用程序构建器。这个概念很简单:用户可以直观地构建他们的应用程序,然后应用程序的设置将转换为配置文件,应用程序将使用该文件来决定如何构建自身(应显示哪些 View 、导航应如何显示等)
我主要担心的是,一旦用户下载了 apk(或 ipa)文件,他们就可以对其进行反编译,更改配置文件中的内容并重新编译/重新签名以将其发布为全新的应用程序。
我正在考虑将部分逻辑放在服务器端,但这会给我带来以下问题:
如果 1000 人使用我的软件构建并发布了一个应用,并且每个应用每天仅向我的服务器发送 10,000 个请求,那么每天就已经有 10,000,000 个请求,这将是相当昂贵的。
如果我的服务器因任何原因关闭,将会有很多愤怒的用户来攻击我。
有什么想法吗?
最佳答案
没有确切的方法来停止 Android 应用或 apk 的反编译/逆向工程过程!
但是在反编译/逆向工程过程之后,有一些机会减少代码可见性的范围!
这是我分享的一些习惯
1) 将重要代码放在服务器上:您可以依赖对受良好保护的服务器的远程过程调用。这减少了您的代码被盗的可能性,因为代码将始终保留在服务器上,除了结果之外什么都看不到。
2) 调试器检测技术:不要使用硬涂层值或字符串,而是使用一些公式或加密方法,这有助于隐藏实际值
3) 用 C/C++ 编写代码的重要部分:您还可以用 C/C++ 编写代码的重要部分,并将它们添加为编译库。虽然它可以被反汇编成汇编代码,但从汇编对大型库进行逆向工程非常耗时。 与 C/C++ 相比,Java 更容易反编译。
这些是优秀开发人员应该注意的一些关键习惯,您还应该查看此answer还有!
关于android - 拖放应用程序构建器许可。如何确保源代码不会被反编译和重复使用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60126575/