0

私は貴重な知的財産と見なす Java ライブラリを開発しました。許可されていないソフトウェアによって使用されないように保護したい。

私のライブラリにはクリーンな API があると言い、(ライブラリではなく) それを使用しているプロジェクトのソース コードを顧客に配布します。

つまり、私の会社のプロジェクトでのみ適切に機能するようにライブラリを変更したいのですが、他のプロジェクトでは誰も使用できませんでした。

ライブラリを保護するための最適なソリューションは何ですか?

ライブラリを難読化できることを追加する必要があります (ただし、顧客のアプリケーションは難読化できません)。

4

1 に答える 1

2

2 つの可能性:

  • アプリのソース コードを公開し、クライアントが自分でコンパイルしてソースを変更できるようにしたい。この場合、言語に関係なく、ライブラリを保護することは技術的に不可能です。
  • 情報提供のみを目的としてソースを提供し、ソースをコンパイルまたは変更してほしくありません。この場合、少なくとも 2 つのレベルのセキュリティを実装できることがわかります。

    1. ライブラリのソースを使用してアプリケーションをコンパイルし、難読化します。そうすれば、すべてのパブリック API が難読化され、ほとんど使用できなくなります (誰かが本当に難読化を解除したい場合を除きます。頑張ってください...)。クラスを再パッケージ化することもできます。すべてのライブラリ クラスはアプリと同じパッケージに含まれるため、どのファイルがライブラリの一部であり、何を行っているかを知ることは非常に困難です。
    2. コンパイル時にアプリ jar のハッシュを計算するメカニズムを実装し、ライブラリ ソース コードを変更して、アプリが本当に自分のアプリであることを実行時に確認します。

難読化で十分だと思います。誰かがあなたの難読化されたコードを理解することに成功した場合、彼はソリューション 2 を非常に簡単にクラックします。

それ以外は何もできません。そのためのメカニズムはありません。

難読化には、 Proguardを強くお勧めします

于 2012-07-12T00:39:36.213 に答える