問題タブ [ilspy]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
1 に答える
96 参照

c# - Microsoft が DLL のメタデータから C# 内部クラスを隠す方法は?

すべては、CVE-2017-8759 に関するコードを分析したかったときに始まりました。CVE の修正プログラムは、.Net Framework の一部である System.Runtime.Remoting.dll 内の WsdlParser.cs という名前のクラスにあることを知っていました。おそらく、この dll はコンピューターの次のような場所にあります。

C:\Program Files (x86)\Reference Assemblies\Microsoft\Framework.NETFramework\v4.7\System.Runtime.Remoting.dll

ilspycmd を使用してコードを C# に再アセンブルしたところ、出力ディレクトリに WsdlParser.cs がないことに気付きました。

ここに画像の説明を入力

後で CFF Explorer を使用したところ、TypeDefs のメタデータにこの型が実際に存在しないことがわかりました。

ここに画像の説明を入力

しかし、私はこのクラスが存在することを知っています:

この動作は、この dll のすべての内部クラスで一貫していることに気付きましたが、その意味がわかりません。私の推測では、ビルド後に内部型のデータを削除する手順が存在する可能性がありますが、そうであれば、アセンブリを読み込んでどのようにクラスを見つけることができたのでしょうか? CIL は TypeDef メタデータを使用して型をロードすると思いましたが、このデータを格納する追加のスペースはありますか?

理解を深めるために、内部クラスを含む C# テスト プロジェクトを作成し、CFF エクスプローラーを使用してメタデータを調べました。内部クラスは、本来あるべき姿で、デバッグおよびリリース ビルドに存在していました。

では、このブードゥー教は何ですか?

みんなありがとう。

0 投票する
1 に答える
186 参照

c# - ILSpy にコンパイラで生成されたコードを表示させる方法

私はこのアプリを書いて構築しました:

bin/Debug フォルダーの .exe に基づいて ILSpy でコードを表示すると、期待していたステート マシン コードが表示されません。 ここに画像の説明を入力

コンパイラが生成したコードを表示するにはどうすればよいですか?

0 投票する
2 に答える
112 参照

c# - ILSpy,ILコードをマシンコードではなくネイティブC#に近づける方法

これが私の結果です

これは私が見たいものです

ILSpy を使い始めたばかりです。dll は Unity Self でコンパイルされています。Assembly-CSharp.dll を ILSpy にドラッグするだけです。長い間検索しましたが、何も見つかりませんでした。必要な設定はありますか?