0

わかりました、私は今ちょっと窮地に陥っています。

コア/外部セクションに分割したJavaプログラムがあります。

外部コード (公開予定) が参照できる Java ライブラリにコアを照合しました。

ただし、この Java ライブラリの内容を逆コンパイル可能にしたくありません。

そこで、優れた Java 難読化ツールを探しに行きました。

私の状況を複雑にしているのは、私のJavaライブラリが正確にモジュール化されていないという事実です-それは外部コードの状態を参照/変更します(はい、それはひどいですが何でも)

すべてのプレミアム難読化ツール (ZKM、allatori など) と無料の難読化ツールのデモを試しましたが、どちらも

  1. 私が必要としている非常に弱い制御フローの難読化があります
  2. jar自体には含まれていないが、まだ参照されているJavaライブラリ/依存関係への参照が原因で停止します。

何かアドバイス?

4

3 に答える 3

2

難読化によって逆コンパイルが妨げられることはありません。いつでも逆コンパイルできます。後でコードを読みにくくするのに役立ちます。ロジックのみを難読化し、インターフェイスはそのままにしておきます。

于 2012-04-06T21:14:04.833 に答える
0
  1. 基準を満たす制御フローの難読化を備えた難読化ツールがない場合は、独自の難読化ツールを作成するか、既存のベンダーに製品の改善を依頼する必要があります。

  2. 難読化ツールを使用して、プログラムの外部部分と内部部分の両方を同時に実行します。ただし、すべての外部コードの除外ルールを作成してください。内部コードのパブリック API の除外ルールも記述する必要があります。内部コードにパブリック API レイヤーがない場合、外部コードは難読化された名前で内部コードを参照する必要があり、非常に保守が難しく、管理が困難になるため、苦労することになります。外部ソース コードを読み取ります。

于 2012-04-06T21:40:05.480 に答える
0

ahanin さんのコメントに続きます。

ただし、難読化ツールを探している場合、かなり堅牢なルール セットを備えた優れたツールはProguardです。コードを可能な限り最小限 (小さく) する必要がある Android スペースで頻繁に使用されます。

リンク:プロガード

于 2012-04-06T21:40:43.093 に答える