ジレンマがあります。基本的に、私は友人のグループに、グループ外の誰にも知られたくないソース コードを利用するプログラムを提供しました。ほとんどの難読化ツールはオブジェクトの名前を変更したり、コードをスクランブルしたりするだけなので、Java があらゆるレベルの難読化を行うのは絶対にひどいことは誰もが知っています。私はそのようなツールを使用しましたが、正直に言うと、プログラムのセキュリティ。
アプリケーションは、使用するサーバーにログインするためにユーザー名、パスワード、およびその他の識別子を必要とするため、ユーザーが JAR を保護するために一意の AES キーを生成できないかと考え始めていました。
基本的に、ある種のランチャーを実行してログインすると、ランチャー アプリはサーバーに AES キーを要求し、それを使用してサーバーから既にダウンロードされている保護された JAR を復号化します。キーは各ユーザーに対して完全に一意であり、サーバーはユーザーごとに異なる方法で JAR を暗号化する必要があります。
今、私はこれがどれほどクレイジーに聞こえるかを知っています。しかし、これは非常に低レベルのことなので、任意のタイプのストリームから JAR を復号化して実行する方法があるかどうかを知る必要があります。または、それが不可能な場合、ファイルを復号化して実行し、再暗号化するのが合理的でしょうか?