これは本当に古い「Java アプリケーションを X から保護するにはどうすればよいですか?」です。
事実はあなたができないということです。十分な時間と作業があれば、Java アプリケーションを分解して、再びつなぎ合わせることができます。もちろん、すぐに実行したい人にとっては実用的ではない、優れた難読化ツールを使用することもできます。
その時点を過ぎて、あなたはやや些細な質問をしました。「「新しい URL」を非表示にする方法」です。実際に URL を操作するには、urlconnection クラスに依存することになると想定しています。これにより、かなりの最適化に対処でき、クラス名と 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;
}
もちろん、スタックをたどって実際にリフレクション呼び出しを読み取ることもできるので、実際のオブジェクト タイプを参照することはなく、見つけるのが非常に難しくなります。