ホームページ >Java >&#&チュートリアル >Javaを逆コンパイルする方法
逆コンパイルとは何ですか?
逆コンパイル プロセスはコンパイルの逆であり、コンパイルされたプログラミング言語をコンパイルされていない状態に戻すことです。プログラミング言語のソースコードを探している状態です。機械が理解できる言語をプログラマが理解できる言語に変換することです。
Java 言語における逆コンパイルとは、一般的にクラス ファイルを Java ファイルに変換することを指します。 (推奨学習: java コース)
逆コンパイル ツールを使用すると、さまざまなことができます。最も重要な機能は、逆コンパイル ツールを使用すると、次のことができることです。 Java コンパイラによって生成されたバイトコードを読んで理解します。 たとえば、 は Java 構文シュガーの背後にある原理についての洞察を得ることができます。
一般的に使用される Java 逆コンパイル ツール
主に 4 つの Java 逆コンパイル ツール (javap、jad、cfr) とビジュアル逆コンパイル ツール JD-GUI# # を紹介します。
#JAVAP
javap は jdk に付属するツールで、コードを逆コンパイルし、Java コンパイラによって生成されたバイトコードを表示できます。 javap と他の 2 つの逆コンパイル ツールの最大の違いは、javap が生成するファイルが Java ファイルではなく、他の 2 つのツールで生成されるコードほど理解しにくいことです。 javap はバイトコードを Java ファイルに逆コンパイルしませんが、理解できるバイトコードを生成します。実際、javap によって生成されたファイルは依然としてバイトコードですが、プログラマはそれをもう少し理解できるようになります。バイトコードについてある程度の知識がある場合でも、上記のコードを理解できます。実際には、文字列をハッシュコードに変換して比較します。JAD
JADは比較的優れた逆コンパイルツールで、実行ツールをダウンロードすればクラスファイルを逆コンパイルすることができます。上記のソース コードのままで、jad を使用して逆コンパイルした後の内容は次のとおりです。 コマンド: jad.exe Decompilation.class は Decompilation.jad ファイルを生成しますCFR
JAD は非常に便利ですが、残念ながら長い間更新されていないため、新しいツールに置き換えるしかありません。CFR が良い選択です。JAD と比較すると、構文が若干異なる場合がありますCFR は最新の Java 機能を逆コンパイルします – Java 8 ラムダ (Java およびそれ以前のバージョンの Java beta 103)、Java 7 String は逆コンパイルされていますが、CFR は完全に Java 6 で書かれています。JD-GUI
JD-GUI は、C で開発された Java 逆コンパイル ツールで、Pavel Kouznetsov によって開発され、Windows、Linux、および Windows をサポートしています。 Apple Mac OS の 3 つのプラットフォーム。また、Eclipse プラットフォームでプラグイン JD-Eclipse を提供します。 JD-GUI は GPLv3 オープン ソース ライセンスに基づいており、個人使用の場合は完全に無料です。 JD-GUI の主な機能は視覚的な操作を提供することです。ファイルをウィンドウに直接ドラッグ アンド ドロップできます。レンダリングは次のとおりです。以上がJavaを逆コンパイルする方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。