2

アプリをビルドするたびに、すべてのクラスが (論理的に) .jar に表示されます。私のMYSQLサーバーへの情報を保持するクラスと同様に(アプリが接続するため)。しかし、私はこの情報を公開したくありません!

このコードを「隠す」、またはクラスを「隠す」にはどうすればよいですか?

ありがとう!!

4

1 に答える 1

1

jarファイル内の.classで誰かにリバースエンジニアリングをさせたくないということだと思います。それを行うことができる多くの逆コンパイラがあります。そのため、難読化ユーティリティを使用してコードを難読化する必要があります。

難読化のプロセスにより、バイトコードは論理的に同等のバージョンに変換されます。このバージョンは、逆コンパイラが分解するのが非常に困難です。逆コンパイル プロセスは非常に複雑であり、バイパスされた難読化されたコードに簡単に「微調整」することはできないことに注意してください。基本的に、プロセスは次のとおりです。

  1. 通常のコンパイラ (つまり、JDK) を使用して Java ソース コードをコンパイルします。
  2. 難読化ツールを実行し、コンパイル済みのクラス ファイルをパラメーターとして渡します。結果は、別の出力ファイルになります (おそらく別の拡張子を持つ)。

このファイルは、.class ファイルとして名前を変更すると、元のバイトコードと機能的に同等になります。仮想マシンは引き続きそれを解釈できるため、パフォーマンスには影響しません。

このプロセスをより詳細に説明し、初期の難読化ツールである Crema を紹介する記事を次に示します。

http://www.javaworld.com/javaworld/javatips/jw-javatip22.html

于 2013-07-24T20:47:00.567 に答える