针对Android应用程序的强大安全防范措施,防止其被破解

针对Android应用程序的强大安全防范措施,防止其被破解,android,security,Android,Security,考虑到市场上的付费应用程序很容易被破解,贝宝交易后的基本服务器检查也是如此,你能给我推荐一些好的反破解方法(除了代码混淆)吗 我的想法是在服务器上保存一个(对应用程序来说非常重要)Java对象,并在每次启动时传递给应用程序。你觉得这听起来好吗 请注意,这更像是一个理论问题,因为我不打算在应用程序中实现它,我更像是寻求这方面的知识,而不是问题的具体解决方案 任何想法都将受到欢迎,即使是那些你不太确定它们是否好的想法。记住,问题是Android应用程序。谢谢 编辑:我知道不可能有牢不可破的客户端应用

考虑到市场上的付费应用程序很容易被破解,贝宝交易后的基本服务器检查也是如此,你能给我推荐一些好的反破解方法(除了代码混淆)吗

我的想法是在服务器上保存一个(对应用程序来说非常重要)Java对象,并在每次启动时传递给应用程序。你觉得这听起来好吗

请注意,这更像是一个理论问题,因为我不打算在应用程序中实现它,我更像是寻求这方面的知识,而不是问题的具体解决方案

任何想法都将受到欢迎,即使是那些你不太确定它们是否好的想法。记住,问题是Android应用程序。谢谢


编辑:我知道不可能有牢不可破的客户端应用程序,我要求提供一个好的选项来防止它,而不是混淆。存储在服务器上并提供在设备上执行的代码可以抓取并存储在其他地方,例如本地。(这对您来说可能很难实现,因为攻击者很难修补)

最终,您必须面对这样一个事实:在通用计算平台上,阻止运行授权是不可能的


除非您将实际功能转移到需要单独授权帐户的服务器上执行,关于在用户拥有的设备上运行的代码,您所能希望的只是实现高于平均水平的难度。

否。存储在服务器上并提供给在设备上执行的代码可以抓取并存储在其他地方,例如本地。(这对您来说可能很难实现,因为攻击者很难修补)

最终,您必须面对这样一个事实:在通用计算平台上,阻止运行授权是不可能的


除非您将实际功能转移到需要单独授权帐户的服务器上执行,否则在用户拥有的设备上运行代码时,您所能希望的只是实现高于平均水平的难度。

我同意。使用LVL和模糊处理,除此之外的任何事情都是你应该花时间改进你的应用程序,增加付费客户的价值,增加对潜在客户的吸引力。@Chris Stratton-你的意思是他们可以通过反射来获取并存储它?@Blumer这更像是一个“理论”问题,我甚至不确定理论问题是否应该发布在StackOverflow上,但仍然如此。我不会在这方面浪费时间,而不是改进应用程序。不需要思考就可以抓住它——只需要弄清楚应用程序在做什么并伪造它,或者修补一个副本来记录它下载的内容,或者使用一个修补过的或有根的平台将临时下载复制到其他地方。在您的原始应用程序中运行反射可能涉及,也可能不涉及——无论如何,运行下载的代码都会很尴尬,而且修改您的想法以运行存储在其他地方的代码的保存副本可能非常简单。最基本的技术问题是,一台通用计算机最终完成了Possessors的出价,而不是你的。@Chris Stratton“做和假装”——我指的是在游戏的每一帧之前进行整个计算的一个对象,例如,假装与他们自己做游戏一样,这对我来说很好。“记录它下载的内容”-我说的是使用SSL,当然,毕竟这是一个安全问题。“很难运行下载的代码”-我不认为是这样,只是获取字节并使用它们(当然还有对象的接口)。我同意。使用LVL和模糊处理,除此之外的任何事情都是你应该花时间改进你的应用程序,增加付费客户的价值,增加对潜在客户的吸引力。@Chris Stratton-你的意思是他们可以通过反射来获取并存储它?@Blumer这更像是一个“理论”问题,我甚至不确定理论问题是否应该发布在StackOverflow上,但仍然如此。我不会在这方面浪费时间,而不是改进应用程序。不需要思考就可以抓住它——只需要弄清楚应用程序在做什么并伪造它,或者修补一个副本来记录它下载的内容,或者使用一个修补过的或有根的平台将临时下载复制到其他地方。在您的原始应用程序中运行反射可能涉及,也可能不涉及——无论如何,运行下载的代码都会很尴尬,而且修改您的想法以运行存储在其他地方的代码的保存副本可能非常简单。最基本的技术问题是,一台通用计算机最终完成了Possessors的出价,而不是你的。@Chris Stratton“做和假装”——我指的是在游戏的每一帧之前进行整个计算的一个对象,例如,假装与他们自己做游戏一样,这对我来说很好。“记录它下载的内容”-我说的是使用SSL,当然,毕竟这是一个安全问题。“很难运行下载的代码”-我不认为是这样,只是获取字节并使用它们(当然还有对象的接口)。