私はJARファイルを解析するクローズドソースのJavaアプリケーションを開発中です。 www.reversed-javaの:私は私のサーバー上でアプリケーションを実行し、 それがここfernflowerのような多くを結果だ返されますオンラインサービスを提供するJava以来 を簡単に逆コンパイルすることができ、難読化は本当に大したことではありません、 。 com/fernflower /。Java - 動的なjarロードはどのように悪用可能ですか?
問題は、私は決して瓶を実行していないにもかかわらず、私のアプリが潜在的に harmfull jarsをサーバーにロードするという災害のレシピです。 私がやっているのは、URLClassLoaderとJarInputStreamを使ってロードすることだけです。
悪意のあるコード を実行するか、自分のプログラムを台無しにするために、元のアプリでクラスを上書きすることができますか?
動的にjarファイルをロードにおけるリスクは何ですか?
どのようにロードしますか?クラスは、クラスが「通常の」方法でロードされるときにコードを実行する静的な初期化子を持つことができます。 – Thilo
'jarLoader =新しいURLClassLoaderの(新しいURL [] {。this.jarFile.toURI()toURL()}にThread.currentThread()getContextClassLoader())。 jarLoader.loadClass( "MyClassの"); ' – YLivay
最も可能性の高い' Myclass'の静的初期化子を実行します。そこにSystem.out.printlnを置き、それがどこかに現れているかどうか確認してください。無限ループ。 – Thilo