問題タブ [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.
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 のメタデータにこの型が実際に存在しないことがわかりました。
しかし、私はこのクラスが存在することを知っています:
- Microsoft のドキュメントにあります: https://referencesource.microsoft.com/System.Runtime.Remoting/metadata/wsdlparser.cs.html
リフレクションと LoadAssembly() を使用すると、次のクラスを見つけることができました。
/li>
この動作は、この dll のすべての内部クラスで一貫していることに気付きましたが、その意味がわかりません。私の推測では、ビルド後に内部型のデータを削除する手順が存在する可能性がありますが、そうであれば、アセンブリを読み込んでどのようにクラスを見つけることができたのでしょうか? CIL は TypeDef メタデータを使用して型をロードすると思いましたが、このデータを格納する追加のスペースはありますか?
理解を深めるために、内部クラスを含む C# テスト プロジェクトを作成し、CFF エクスプローラーを使用してメタデータを調べました。内部クラスは、本来あるべき姿で、デバッグおよびリリース ビルドに存在していました。
では、このブードゥー教は何ですか?
みんなありがとう。
c# - ILSpy にコンパイラで生成されたコードを表示させる方法
私はこのアプリを書いて構築しました:
bin/Debug フォルダーの .exe に基づいて ILSpy でコードを表示すると、期待していたステート マシン コードが表示されません。
コンパイラが生成したコードを表示するにはどうすればよいですか?
c# - ILSpy,ILコードをマシンコードではなくネイティブC#に近づける方法
ILSpy を使い始めたばかりです。dll は Unity Self でコンパイルされています。Assembly-CSharp.dll を ILSpy にドラッグするだけです。長い間検索しましたが、何も見つかりませんでした。必要な設定はありますか?