所以我正在制作一个小游戏,而我所处的市场相当......具有竞争力......因此竞争激烈,将其免费向公众泄露是非常普遍的。要泄漏游戏,该人必须删除HWID系统和Killswitch系统。要做到这一点,最常见的方法是在整个项目中搜索“新URL”并检查它所做的所有链接,然后在需要时删除它们。
这必须只使用默认的Java类,我不能使用任何库或其他可链接的下载。
我的问题是:“是否可以向我的Dropbox文件发出请求以读取文本文档而不使用URL类?”
不确定我是否涵盖了我需要涵盖的所有内容,如果您感到困惑,我可以提供更多信息。
提前致谢!
答案 0 :(得分:5)
这真是古老的“如何从X保护我的Java应用程序?”。
事实是你做不到。任何有足够时间和工作的人都可以拆开你的Java应用程序并将其重新组合在一起。你当然可以使用一些很棒的obfusacater,这对任何想要快速完成它的人来说都是不切实际的。
过去这一点,你提出了一个微不足道的问题。这是“如何隐藏'新网址'”。我假设你最终会依赖urlconnection类来实际使用url。这可以处理大量优化,您可以添加更多层,例如将类名和url存储为字节数组和许多其他内容。它也可以用于构造函数和类的一些缓存。 我真的建议你不要使用它!
public static URLConnection getConnection() {
try {
Class<?> cla = Class.forName("java.net.URL");
return (URLConnection) cla.getMethod("openConnection", new Class[0]).invoke(cla.getConstructor(String.class).newInstance("http://somtopsecereturl.tld"), new Object[0]);
} catch (ClassNotFoundException e) {
e.printStackTrace();
} catch (IllegalArgumentException e) {
e.printStackTrace();
} catch (SecurityException e) {
e.printStackTrace();
} catch (InstantiationException e) {
e.printStackTrace();
} catch (IllegalAccessException e) {
e.printStackTrace();
} catch (InvocationTargetException e) {
e.printStackTrace();
} catch (NoSuchMethodException e) {
e.printStackTrace();
}
return null;
}
你当然可以继续沿着堆栈进行反射调用实际阅读,这样你就不会引用真正的对象类型,因此很难找到。
答案 1 :(得分:1)
您可以改用URI。
URI uri = new URI("http://...");
uri.toURL().openConnection():
答案 2 :(得分:1)
相当低技术的混淆:创建一个包含URL实例的类:
class myFoo {
private URL url;
myFoo (String s) throws MalformedURLException {
this.url = new URL(s);
}
public getHatSize() {
return this.url;
}
}