2

一部の商用難読化ツールは、 ILDASM (および Reflector などの他の同様のツール)をクラッシュさせることができると主張しています。

彼らがそれをどのように達成するかについて何か考えはありますか?

ここの多数のスレッドで述べられているように、十分な動機/時間/スキルを持つ人は常にコードを読み取る方法を見つけます (つまり、実行可能であれば、逆コンパイル可能です)。 Reflector がそれを実行できない場合は、コードを作成してください。

私の IP に対するこのレベルの保護 (つまり、私が投げるすべてのトリックを回避する方法をおそらく見つけるハードコアな人以外の誰に対しても保護される) は、私にとって間違いなく十分です。

4

1 に答える 1

7

CLR は実行できるが、ILDASM などでは処理できない無効な IL を導入する可能性が非常に高いものもあります。私の考えでは、これは悪いことです。CLR は、将来それについて不平を言うかもしれません。

他のものは、何らかの形で予想外であるためにILDASMとReflectorをたまたまつまずかせる有効なILを作成する可能性があります。ばかげた例として、識別子に印刷できない文字が含まれているとします。私の記憶では、CLR は識別子を不透明なブロブとして扱うため、これは有効ですが、識別子を表示しようとすると失敗する可能性があります。これは一時的な助けに過ぎない可能性があります。ILDASM はそれほど頻繁に更新されませんが、Reflector は頻繁に更新されます。開発者がこのような問題を見つけたら修正することを期待しています。

逆アセンブリではなく高レベルの逆コンパイルには役立つ 3 番目の代替案は、C#/VB に明らかな類似物がないが完全に有効な IL を作成することです。実際、反復子ブロックはすでにこれを行っている場合があります(記事の下部を見てください)。

合法で、実行可能であることが保証されているものはすべて、現在または少なくとも将来的に分解可能になると期待しています。Reflector のクラッシュは、現在 (というか、宣伝文句が書かれた時点) では、将来のクラッシュの良い兆候ではありません。

于 2009-02-23T12:04:55.063 に答える