2017-12-14 4 views
-2

私はのようなプログラム(例えばILSpy for C#を使用しています)をソースコードのように暗号化しています。A.cs、AA.cs、AB.csなど... そしてまた、それらの内側メソッド、変数、定数、でもクラスはとしても、暗号化されているのと同じAA、私は、JavaとC#のコードでこれを見ている私のプログラムのソースコードを暗号化するには?

ABC、IJ ..プログラマはこの暗号化されたスタイルで書いているのですか、または後で暗号化を使用しますか?彼らはどのようにそれをするのですか?

+2

obfuscatorが必要です。https://stackoverflow.com/questions/2537568/best-java-obfuscator –

+1

例はProguardです:https://www.guardsquare.com/en/proguardリバースエンジニアリングからの「最小限の」保護。 –

+0

私はJavaとC#の間に大きな違いがあると思います。 Javaバイトコードには依然として元の名前が含まれているためです。 – devpuh

答えて

2

これは暗号化ではありません。

コードをコンパイルすると、元の変数名が削除されます。コンパイラには関心がなく、これらの変数が存在するメモリの場所だけです。

これを逆コンパイルすると、元の変数名は使用できなくなります。逆コンパイラは人間が読める名前をつけます。通常は文字と数字の組み合わせです。

プログラムを逆コンパイルから保護したい場合は、難読化ツール@ Roman Puchkovskiyのように、commentを使用することができます。私はそのようなツールはリバースエンジニアリングから最小の保護しか提供しないというそのユーザーの警告に留意する必要があります。エンドユーザーが実行可能ファイルにアクセスできる場合は、リバースエンジニアリングを行う機会がありますが、これを難しくすることはできません。不可能にすることはできません。

関連する問題