通过Java加载文件而不使用新的URL()

时间:2012-05-03 18:39:19

标签: java url dropbox

所以我正在制作一个小游戏,而我所处的市场相当......具有竞争力......因此竞争激烈,将其免费向公众泄露是非常普遍的。要泄漏游戏,该人必须删除HWID系统和Killswitch系统。要做到这一点,最常见的方法是在整个项目中搜索“新URL”并检查它所做的所有链接,然后在需要时删除它们。

这必须只使用默认的Java类,我不能使用任何库或其他可链接的下载。

我的问题是:“是否可以向我的Dropbox文件发出请求以读取文本文档而不使用URL类?”

不确定我是否涵盖了我需要涵盖的所有内容,如果您感到困惑,我可以提供更多信息。

提前致谢!

3 个答案:

答案 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;
    }
}