重複の可能性:
商用 Java コードを難読化していますか?
jar が他の誰かによって開かれないように保護するための難読化以外の方法はありますか? 問題は、誰もコードにアクセスしたくないということです。それが、私が Java を好まない理由です。私が使用した逆コンパイラによると、C# と Java で作成されたプログラムには、変数の名前などすべてがそのまま含まれているため、無料ではないプログラムに簡単にアクセスできます。さらに悪いことに、ソースコードを出してください。
重複の可能性:
商用 Java コードを難読化していますか?
jar が他の誰かによって開かれないように保護するための難読化以外の方法はありますか? 問題は、誰もコードにアクセスしたくないということです。それが、私が Java を好まない理由です。私が使用した逆コンパイラによると、C# と Java で作成されたプログラムには、変数の名前などすべてがそのまま含まれているため、無料ではないプログラムに簡単にアクセスできます。さらに悪いことに、ソースコードを出してください。
これらのポイントのほとんどは上記のコメントでカバーされていますが、ここで少し詳しく説明します。
コードがユーザーのマシンで実行されている場合、ユーザーはコードを逆コンパイルできます。それがどの言語であるかは問題ではありません。Java、C、空白、ブレインファック、それは問題ではありません。コードがコンピューター上で実行される場合、人間はそれを読み取ることができます。独自の自作言語とコンパイラを作成したとしても、コンパイルされたコードは標準の機械語命令のシーケンスであり、逆コンパイラは C または任意の言語で読み取り可能なコードに簡単に変換します。
例外なく。気にしないで。
しかし、目的を達成する方法はいくつかあります。それは、いくつかの秘密のビジネス ロジックを保護することです。これを行う簡単な方法は、ビジネス ロジックを独自のマシンに配置し、それを Web サービスで公開することです。ユーザーは引き続きクライアント リクエストとサービス レスポンスを表示できますが、それ以外の場合、ロジックはブラック ボックスです。
また、独自のマシンを作成してロックし、ユーザーに配布することもできます。これは可能ですが、正しく行うのは技術的に非常に難しく (すべてのハッキングされたゲーム機やスマートフォンを考えてみてください)、サービスのコストが大幅に増加することに注意してください。
私の知る限り、jar
ファイル(NetBeansで生成されたもの)には.class
、ソースコードではなくJavaバイトコードであるファイルのみが含まれている可能性があります。ファイルをリバースエンジニアリングする方法があるかどうかはわかりませんが、ASCIIで使用できるテキスト.class
はほとんどありません。