如果我有一个游戏,我想检测是否有人在反射某些类中的字段,我该怎么做呢?我知道他们必须将字段设置为可访问。
有人告诉我,我无法检测是否有人加载了我的类并正在使用反射访问字段。
我想知道我是否可以创建一个线程来不断检查 someField.isAccessible() 是否返回 true。
这是一个好方法吗?它会工作吗?它在我自己的类中工作,但如果有人创建一个类来加载我的 jar 并获取字段,它会工作吗?他们必须将其设置为可访问,这就是为什么我要问这是否是一个好方法。
有什么想法或建议吗?
最佳答案
如果他们真的想做这些事情,您就无法阻止他们做这些事情。
即使您的方法有效,他们也可以反编译您的类,去掉麻烦的检查,然后编译他们自己的版本。
防止您的软件被“黑客攻击”的唯一方法是不分发它,而是在您自己的机器上运行它(“软件即服务”)。可能是“安全关键”部分的唯一选择。
关于java - 检测 Java 反射,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25416662/