2009-05-18 13 views
1

私のアプリケーション用のプラグインシステムを構築しています。誰もが.classファイルを解読できることを読んだので、Ahead-Of-Timeコンパイラを使用することを余儀なくされています。問題は、いくつかのプラグインクラスを動的にロードする必要があることです。今、私はフォルダ内のすべての.classファイルを読み込み、プラグインシステムとして静的メソッド(私は決してオブジェクトを作成します)を呼び出しています。Java AOT +動的にJavaクラスをロード

私のすべてのソースがAOTにコンパイルされている場合、これらのクラスをロードできますか? 別の方法で問題にアプローチする必要がありますか? Javaは私にとって正しい言語ですか?

答えて

4

先行するコンパイルは、コンパイルから人をブロックするためのものではありません。私はその目的のために難読化装置を使うべきだと思います。

プラグイン・システムのクラスを動的にロードすることは、難読化装置とAOTの両方で機能するはずです。

+0

Thx、私は難読化する人の前に私のアプリケーションを展開します。それから私は "問題"を無視します:) – Baversjo

+1

実際、AOTコンパイラは実際にバイトコードをネイティブマシンコードに変換することによって逆コンパイルをブロックします。 Excelsior JETの製品ページ:http://www.excelsior-usa.com/jet.htmlの機能2を参照してください。 –

+0

Javaバイトコードの逆コンパイルをブロックしますが、熟練した経験豊富な攻撃者がネイティブコードをリバースエンジニアリングすることができます。 – Nat

2

Tahit Akhtarが正しい。あなたは難読化装置が必要です。プラグインをロードして呼び出すためにプログラムが動的に使用するクラスとメソッドの名前を難読化しないように、プラグインを設定する必要があります。つまり、プラグインのパブリックSPIを難読化することはできませんが、その実装は可能です。

1

あなたのクラスは、私は難読化をドロップすると言うでしょう、いくつかの本当にトップシークレット機能...

が含まれていない限り、私は自分自身のプラグインフレームワークを構築していると私は、プラグインへのアクセスをブロックするために、同じ考えを持っていましたあなたが考えることができるすべては、すでにWeb上に投稿されています。ソフトウェア開発の秘密はもうありません。)

+0

確かに。私が注意しているように、私は信頼できる顧客にしかアプリケーションを配備しないので、心配することはありません。 – Baversjo

関連する問題