私はのようなプログラム(例えばILSpy for C#を使用しています)をソースコードのように暗号化しています。A.cs、AA.cs、AB.csなど... そしてまた、それらの内側メソッド、変数、定数、でもクラスはとしても、暗号化されているのと同じAA、私は、JavaとC#のコードでこれを見ている私のプログラムのソースコードを暗号化するには?
ABC、IJ ..プログラマはこの暗号化されたスタイルで書いているのですか、または後で暗号化を使用しますか?彼らはどのようにそれをするのですか?
私はのようなプログラム(例えばILSpy for C#を使用しています)をソースコードのように暗号化しています。A.cs、AA.cs、AB.csなど... そしてまた、それらの内側メソッド、変数、定数、でもクラスはとしても、暗号化されているのと同じAA、私は、JavaとC#のコードでこれを見ている私のプログラムのソースコードを暗号化するには?
ABC、IJ ..プログラマはこの暗号化されたスタイルで書いているのですか、または後で暗号化を使用しますか?彼らはどのようにそれをするのですか?
これは暗号化ではありません。
コードをコンパイルすると、元の変数名が削除されます。コンパイラには関心がなく、これらの変数が存在するメモリの場所だけです。
これを逆コンパイルすると、元の変数名は使用できなくなります。逆コンパイラは人間が読める名前をつけます。通常は文字と数字の組み合わせです。
プログラムを逆コンパイルから保護したい場合は、難読化ツール@ Roman Puchkovskiyのように、commentを使用することができます。私はそのようなツールはリバースエンジニアリングから最小の保護しか提供しないというそのユーザーの警告に留意する必要があります。エンドユーザーが実行可能ファイルにアクセスできる場合は、リバースエンジニアリングを行う機会がありますが、これを難しくすることはできません。不可能にすることはできません。
obfuscatorが必要です。https://stackoverflow.com/questions/2537568/best-java-obfuscator –
例はProguardです:https://www.guardsquare.com/en/proguardリバースエンジニアリングからの「最小限の」保護。 –
私はJavaとC#の間に大きな違いがあると思います。 Javaバイトコードには依然として元の名前が含まれているためです。 – devpuh