Dotfuscator はどのように機能しますか? クラスのいくつかを難読化しようとしましたが、メソッド/クラスの名前が a、b、c などに変更されました。しかし、これらのメソッド内のコードをまだ見ることができますか? それは、私は何か間違ったことをしているのですか?
アセンブリの分解を完全にブロックするのを防ぐものはありますか?
Dotfuscator はどのように機能しますか? クラスのいくつかを難読化しようとしましたが、メソッド/クラスの名前が a、b、c などに変更されました。しかし、これらのメソッド内のコードをまだ見ることができますか? それは、私は何か間違ったことをしているのですか?
アセンブリの分解を完全にブロックするのを防ぐものはありますか?
コードの難読化は、クラス、メンバー、および変数の単純な名前変更をはるかに超えていますが、それは重要な部分です。
たとえば、Dotfuscator はオーバーロード誘導と呼ばれる特許取得済みの手法を使用しており、多くのメソッドの名前が同じ名前に変更されています (署名が異なる限り、これは可能です)。PreEmptive ソリューションは、コード内のすべてのメソッドの 3 分の 1 が a() に名前が変更されたケースを挙げています。他の手法には、単純な反復を再帰として書き直すことや、コード モーフィングが含まれます。
実際、最新の難読化技術は、コードを少なくとも手動でリバース エンジニアリングすることを実質的に不可能にするのに十分に適しています。原則として .NET アセンブリが再セーフになることはあり得ないのは事実ですが、難読化はかなり手ごわい障壁となる可能性があります。
私たちのほとんどにとって、それで十分です。
それが機能することになっている方法です。コードは引き続きアクセス可能であり、理解するのがさらに困難です。「より強力な」ものが必要な場合は、XenocodePostBuildをご覧ください。
.netでの分解をブロックすることはできません
残念ながら、誰かがあなたのアセンブリを反映し、それをあなたのソースコードに分解するのを防ぐ方法はありません。Dotfuscatorのような難読化ツールを使用すると、分解されたコードを実際に読むことが非常に難しくなります。この場合、人間が読める形式の名前はすべて、意味のない記号に置き換えることができます。
コードをどこかでリリースする場合、誰かが十分に判断すれば、コードをリバースエンジニアリングすることができます。あなたができる最善のことは、そうする価値がないようにすることです。
Visual Studio に付属するバージョンは限定的であり、顧客のサイトに何かをデプロイする必要がある場合、完全な難読化を行うために Visual Studio に依存することはありません。あなたが見たいと思うかもしれない無料のものはEazfuscator.netです。
ProfessionalまたはGoldDotfuscatorを使用している場合は、Reflectorプログラムがアセンブリを開くのをブロックできます。
Dotfuscatorは、逆コンパイルされたソースを読みにくくするだけです。逆コンパイル自体を妨げることはありません。