以编程方式找出是否对Java类进行了修补?

之前

如果有人修补了已编译代码的类,尤其是在Android中,是否可以通过编程方式解决?示例:我的建筑物(例如.apk)包含一个PiracyCheck.class类。是否可以在编译时运行该类的某种“校验和”(由另一类执行)?我想我可以从中获得任何价值,例如abcdefg。如果有人修补此类,则校验和将突然变为123456,而不是abcdefg。我在后端服务器上验证校验和。如果校验和正确,则继续,否则,中止。还是有更好的解决方案来实现这一目标?

(btw:如果破解者想重新打包应用程序并为应用程序签名,那么我已经很安全了,因为我还要检查签名,但是我敢肯定,任何人都可以通过反编译和编辑字节码本身来绕过此检查,意味着不需要辞职,证书也不会更改)。

斯蒂芬·C

您可以做一些这样的事情。但是,您不能将它们组合到一个系统中,该系统将阻止某人运行代码的“破解”版本。

是否可以在编译时运行该类的某种“校验和”(由另一类执行)?

如果有可能在编译时生成类的加密校验和,请在服务器端或“ .apk”中或两者中进行记录。

也可以在客户端计算这种校验和。

您无法执行的操作是强制Android平台或被黑的“ .apk”生成真实的校验和:

  • 我认为Android平台不提供此功能,如果可以,则可以在“有根”设备上进行颠覆。

  • 自然,如果有人麻烦破解您的“ .apk”,他们可以颠覆“ .apk”中的任何“自我校验和”代码以提供原始校验和,而不是实际代码的校验和。

无论哪种方式,您的服务器都会看到它期望的校验和,而不是实际代码的有效校验和。它将被愚弄。


基本上,如果您需要在有效控制用户的平台上执行代码,则不能阻止用户破坏您的代码。您所希望的最好的办法就是使具有适当技能的人变得更加努力。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

检查Git是否以编程方式进行了更改

Ubuntu是否已针对KRACK攻击进行了修补?

如何知道Jenkins是否在CentOS 7上进行了修补

内核是否进行了碎片整理

是否对克隆语句进行了优化?

如何找出JVM对我的代码进行了哪些优化?

找出谁对Powershell进行了文件的最后更改?

是否对不使用模板参数的模板化类的方法进行了编译器优化?

如何修改并检查是否在Java 8中进行了修改?

Java编译器是否针对不同的语言环境进行了翻译?

检查是否对numpy数组进行了排序

Ubuntu是否针对多核CPU进行了优化?

SoX 中的 noiseprof 是否对声音进行了平均测量?

检查用户是否对某项投票进行了投票

数组是否在 jOOQ 和 PostgreSQL 中进行了优化?

OpenCV是否在调试模式下进行了优化?

确定是否对小标题进行了分组

检查ConcurrentHashMap的computeIfAbsent是否进行了更改

如何确定Swift是否使用优化进行了编译

如何知道jtextarea中是否进行了任何更改?

是否对JavaScript引擎尾部调用(TCO)进行了优化?

验证是否在电话提示后进行了呼叫

如何确定卫星是否进行了机动?

如何检查rsync是否对bash进行了任何更改?

检查用户是否对范围进行了投票

是否对来自ServiceLoader的Iterable对象进行了排序?

检查客户是否对Woocommerce中的产品进行了评论

是否对if(0)和if(1)语句进行了优化?

如何知道 Hsqldb "MERGE INTO" 是否进行了插入或更新