5

今、私はそれを知っています...

十分な時間とリソースがあれば、何でもリバース エンジニアリングできます。

しかし、 GCJのようなツールを使用して Java コードをネイティブ コードにコンパイルすると、逆コンパイルが難しくなるでしょうか? つまり、数分あれば、JD-GUIを使用して .jar を逆コンパイルでき、比較的正確です。「Java から EXE へ」のコンバーターのほとんどは、JVM 用の .exe ランチャーにすぎません。JVM には多くのメリットがありますが、ソース コードのセキュリティはその 1 つではないと私は信じています。

結論: GCJ のようなものを使用して、Java ソース (または .class) ファイルをネイティブ マシン コードにコンパイルできますか。

編集:理想的には、難読化以上のものになるでしょう。特定のプロジェクトは商用ゲームであるため、私たちが探しているのは、ソース コードを理解するだけでなく、最初からソース コードに到達するのをより困難にする方法です。また、Steam が .jar を受け入れるかどうかもわかりません。新しいGreen Lightプロジェクトに提出する予定です。

4

3 に答える 3

5

ソースセキュリティのためだけにそのアプローチを選択するつもりはありません。

ProGuardなどのいくつかの難読化ツールをチェックしてください

これらのツールがソース コードにどのような影響を与えるかを確認したい場合は、逆コンパイルされた Minecraft の jar ファイルが手元にあればそれを読んでみてください。


これを使用することの欠点は、コードがリフレクションの使用に依存している場合、それらの関数/クラス/その他を無視するようにツールを構成する必要があることです。そうしないと実行時に見つからないためです。

于 2012-08-30T19:42:39.317 に答える
4

技術的には、はい。GCJ のようなものを使用すると逆コンパイルが難しくなりますが、これを行うと Java を使用することのいくつかの大きな利点が失われることに注意してください。つまり、クロスプラットフォーム アプリケーションを作成する能力が失われます。

難読化ツールを使用して、コードを逆コンパイルしにくくし、Java を使用する利点を維持することができます。

于 2012-08-30T19:42:30.943 に答える
0

thisthisおよびthisのようなソースコードの難読化ツール は、変数、関数などを他の人が読み取れないようにします(論理的な意味はありません)。ここも読むべし!

于 2012-08-30T19:43:43.877 に答える