Search code examples
c#.net-assemblymono.cecilbit-depth

Targeted architecture of .NET assembly using Mono.Cecil


Can I find whether a .NET assembly has been specifically build for 32 or 64 bits using Mono.Cecil? Or any other way of finding out without having to load the assembly first.


Solution

  • Using mono-ceci, you can do this (the information is available module by module):

    AssemblyDefinition asm = AssemblyFactory.GetAssembly("myassembly.dll");
    
    foreach (ModuleDefinition module in asm.Modules)
    {
        Console.WriteLine("Module " + module.Name);
        Console.WriteLine("IsPE64 " + module.Image.PEOptionalHeader.StandardFields.IsPE64);
    }