問題タブ [ilasm]
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# - 静的フィールドをロードする方法は?
Reflection.Emitを介して、静的フィールドnum1、num2などのタイプを生成しています。
生成された型の静的フィールドの内容を静的メソッドの評価スタックにロードするコードを出力する方法がわかりません。私がこれまでに試したことは次のとおりです。
しかし、静的メソッドに提供されていない「this」にインスタンスフィールドをロードしようとするため、明らかにこれは機能しません。
静的フィールドにアクセスするには、どのオペコードを使用する必要がありますか?
c# - この MSIL コードを正しく理解できていますか?
私はC#で次のコードを持っています
そして、私は IL コードを読んでいます。以前にアセンブリをプログラムしたことがないので、各行の動作が正しいかどうかを尋ねています。
このプログラムを正しく理解していますか?
c# - ProcessInfo を使用して ILAsm を実行できない
Bat ファイルと C# を使用して IL コードをコンパイルしようとしています。ここにC#コードがあります
ここにバットファイルがあります
ILAsm を実行するための文字列はまったく同じです (つまり、processStartInfo.Arguments = Arguments = "c:\\Windows\\Microsoft.NET\\Framework\\v4.0.30319\\ilasm.exe Source.il /exe /output:my-assebmly.exe /debug=IMPL")
それにもかかわらず、C# を使用して実行するとエラーが発生します。
お使いのコンピューターに Fusion.dll が存在しないため、プログラムを開始できません。この問題を解決するには、プログラムを再インストールしてみてください。
どうすれば修正できますか? C# を使用して ILAsm を実行する必要があります。
compiler-construction - ILASM を使用して IL を EXE にコンパイルすると失敗する
何が悪いのかを理解するのに何時間も費やしました。MonoDevelop で .il をデバッグしてテストしたので、プログラムが機能していることはわかっていますが、コンパイルできません。これは、コマンド プロンプトからのログです。
どんな助けでも感謝します。
.net - mdbgで評価スタックを確認できますか?
次のCILがあるとします。
次にilasm /debug main.il
、mdbgで使用するexeファイルとpdbファイルをアセンブルするために使用します。
私の質問は、3行目で、操作が実行される前に、前にロードした2つのint32定数40と2を表示する評価スタックadd
を確認したいということです。
この評価スタックをmdbgで表示するにはどうすればよいですか?
c# - .NET のバージョン/環境に関係なく、ildasm.exe および ilasm.exe ファイルのファイルパスを見つける確実な方法は?
ildasm.exe/ilasm.exe 実行可能ファイルの FileInfo/Path をプログラムで取得する方法はありますか? dll / exeファイルにいくつかの変更を加えた後、適切に逆コンパイルして再コンパイルしようとしています(PostSharpはコンパイル後にILを変更するのと同様のことをしていると思います)。
次のようなブログ投稿を見つけました。
ただし、このコードを実行したときにディレクトリが存在しなかったため (主に SDK のバージョンが 7.1 であるため)、ローカル マシンの正しいパスは@"Microsoft SDKs\Windows\v7.1\bin"
. ildasm.exe を実際に見つけられるようにするにはどうすればよいですか?
同様に、ilasm.exe にアクセスする方法に関する別のブログ投稿を次のように見つけました。
これが機能している間、Framework と Framework64 があり、Framework 自体に v4.0.30319 (Framework64 と同じ) までのすべてのバージョンがあることに気付きました。では、どちらを使用するかをどのように知ることができますか? 対象としている .NET Framework のバージョンに基づく必要がありますか?
概要:
- ildasm.exe への正しいパスを見つけることを適切に保証するにはどうすればよいですか?
- コンパイルする正しい ilasm.exe を適切に選択するにはどうすればよいですか?
winforms - ilasm を使用したトークン MZ での構文エラー
使用しようとしているビルド済みの dll アセンブリがあります。これは winforms ライブラリであり、参照するとデザイナー/コードでエラーなしで使用できます。実行すると、次のようになります。
アセンブリの生成に失敗しました -- 参照されたアセンブリ 'YARTE' に厳密な名前がありません
ildasm => ilasm ラウンドトリップを実行することにしましたが、このエラーが発生し続けます
私は他の場所で多くの助けを見つけていませんが、これはまれな問題ではないと思います.
.net - アセンブリの再コンパイルとアセンブリの負荷の問題
実行可能ファイル(Foo.exe)とライブラリBar.dllがあります。両方のバイナリは厳密な名前で署名されていません。Bar.dllライブラリは実行可能ファイルに依存しており、マニフェストで次のように指定されています。
ildasmとilasmを使用してFoo.exe->msil->Foo.exeからラウンドトリップします。ildasmを使用して逆コンパイルすると、単一の.ilファイル、.resファイル、および複数の.resourcesファイルが生成されます。私はそのような方法でアプリケーションを再コンパイルします:
再コンパイル後、アプリケーションは機能し、起動できます。問題は、実行可能ファイルに依存するライブラリBar.dllが、再コンパイル後にロードに失敗することです(Foo.exe実行可能ファイル)。これは、融合ログが私に与えるものです:
再コンパイルの前に、ファイルは正常にロードされ、フュージョンログの唯一の違いは最後の4行です。