0

JD-GUI を使用して .jar ファイルを逆コンパイルしましaた。クラスも同じだったので、一部のファイルにも などの名前が付けられていました。bcd.classa.classb.class

開発者がパッケージや Java ファイルに、後で各ファイルの機能を認識できないような名前を付けているとは思えません。これは、他の技術的な問題によるものだと思います。誰かがこの問題について明確にできますか?

4

1 に答える 1

1

逆コンパイルした Jar は、おそらくProGuardを使用して保護されています。

デフォルトでは、コンパイルされたバイトコードには、ソースファイル名、行番号、フィールド名、メソッド名、引数名、変数名など、多くのデバッグ情報が含まれています。この情報により、バイトコードの逆コンパイルとプログラム全体のリバースエンジニアリングが簡単になります。場合によっては、これは望ましくありません。ProGuard などの難読化ツールは、デバッグ情報を削除し、すべての名前を意味のない文字シーケンスに置き換えることができるため、コードのリバース エンジニアリングがはるかに困難になります。おまけとしてコードをさらにコンパクトにします。プログラムは、例外スタック トレースで指定されたクラス名、メソッド名、および行番号を除いて、機能的に同等のままです。

プログラムをリバース エンジニアリングすることはまだ可能ですが、それを行ってからコードを再利用することは (少なくとも、私が経験した唯一の国である米国では) ライセンス違反であるため、多くの場合違法です。このようなツールを使用する人々は、ほとんどの場合、オープン ソース ソフトウェアを作成していません。

于 2015-07-31T22:16:53.910 に答える