.NET モジュール内のすべてのメソッドを列挙し、小さなヘッダーまたは太いヘッダーがあるかどうかを確認する必要があります。強力なdnlib .NET モジュール処理ライブラリを使用することにしました。
dnlib.DotNet.Writer.MethodBody
tiny/fat メソッド ヘッダーを示すクラスがあります (IsTiny()
およびを参照IsFat()
)。ただし、このクラスにアクセスする方法がわかりません。
クラスは Writer 名前空間にあります - Writer Listener を使用しましょう:
public void OnWriterEvent(ModuleWriterBase writer, ModuleWriterEvent evt)
{
すべてのメソッドを列挙して、名前空間にある他の を取得するのは簡単であることに注意してください。MethodBody
Emit
foreach (TypeDef type in module.GetTypes())
{
foreach (MethodDef method in type.Methods)
{
dnlib.DotNet.Emit.MethodBody body = method.MethodBody;
}
}
}
残念ながら、このクラスは有用なものを明らかにしていません。次の擬似コードに似たものが機能するはずです。
public void OnWriterEvent(ModuleWriterBase writer, ModuleWriterEvent evt)
{
foreach (TypeDef type in module.?)
{
foreach (? method in type.?)
{
dnlib.DotNet.Writer.MethodBody body = method.?;
}
}
}