如果有人修补了已编译代码的类,尤其是在Android中,是否可以通过编程方式解决?示例:我的建筑物(例如.apk)包含一个PiracyCheck.class类。是否可以在编译时运行该类的某种“校验和”(由另一类执行)?我想我可以从中获得任何价值,例如abcdefg。如果有人修补此类,则校验和将突然变为123456,而不是abcdefg。我在后端服务器上验证校验和。如果校验和正确,则继续,否则,中止。还是有更好的解决方案来实现这一目标?
(btw:如果破解者想重新打包应用程序并为应用程序签名,那么我已经很安全了,因为我还要检查签名,但是我敢肯定,任何人都可以通过反编译和编辑字节码本身来绕过此检查,意味着不需要辞职,证书也不会更改)。
您可以做一些这样的事情。但是,您不能将它们组合到一个系统中,该系统将阻止某人运行代码的“破解”版本。
是否可以在编译时运行该类的某种“校验和”(由另一类执行)?
如果有可能在编译时生成类的加密校验和,请在服务器端或“ .apk”中或两者中进行记录。
也可以在客户端计算这种校验和。
您无法执行的操作是强制Android平台或被黑的“ .apk”生成真实的校验和:
我认为Android平台不提供此功能,如果可以,则可以在“有根”设备上进行颠覆。
自然,如果有人麻烦破解您的“ .apk”,他们可以颠覆“ .apk”中的任何“自我校验和”代码以提供原始校验和,而不是实际代码的校验和。
无论哪种方式,您的服务器都会看到它期望的校验和,而不是实际代码的有效校验和。它将被愚弄。
基本上,如果您需要在有效控制用户的平台上执行代码,则不能阻止用户破坏您的代码。您所希望的最好的办法就是使具有适当技能的人变得更加努力。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句