3

システムで dll を使用しようとしています。メソッドの 1 つは、オブジェクト ブラウザで次のように定義されたディクショナリ オブジェクトを返します。

"System.Collections.Generic.Dictionary<<string,1.5>>"

1.5とは?それとも、意図しない使用から dll をロックするセキュリティ メカニズムですか?

4

1 に答える 1

3

「1.5」は、一般的な .NET 言語では有効な型名ではありません。型名は文字で始める必要があります。プログラムが解析される前に、ソースコードをトークンに前処理するコンパイラの一部であるレクサーの仕事を単純にするために重要です。レクサーは、「1.5」を識別子ではなく数値として識別します。

CLR には、それに関するより緩い規則がありますが、型名にはほぼ何でも当てはまります。これは、難読化ツールによって利用されます。アセンブリからのソース コードのリバース エンジニアリングを困難にする、アセンブリのビルド後に実行するプログラム。Reflector や ILSpy など、.NET で使用できる非常に優れた逆コンパイラがいくつかあります。難読化ツールは、それらを無効にするように設計されています。

使用しているアセンブリが難読化されている可能性が高い。

于 2013-06-17T01:28:14.333 に答える