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

And*_*dré 1 java url dropbox

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

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

我的问题是:"是否可以向我的Dropbox文件发出请求,以便在不使用URL类的情况下读取文本文档?"

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

提前致谢!

小智 5

这真是古老的"我如何保护我的Java应用程序免受X?".

事实是你做不到.任何有足够时间和工作的人都可以拆开你的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;
}
Run Code Online (Sandbox Code Playgroud)

你当然可以继续沿着堆栈进行反射调用实际读取,这样你就不会引用真正的对象类型,这使得它很难找到.