我可以找到一个。net程序集是否已经使用Mono.Cecil专门为32位或64位构建?
使用mono-ceci,您可以这样做(信息可以逐个模块获得):
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);
}
moduleDefinition.Architecture
属于TargetArchitecture
类型,定义为:
public enum TargetArchitecture {
I386,
AMD64,
IA64,
ARMv7,
}
还有另一个属性,ModuleAttributes
类型的moduleDefinition.Attributes
:
[Flags]
public enum ModuleAttributes {
ILOnly = 1,
Required32Bit = 2,
StrongNameSigned = 8,
Preferred32Bit = 0x00020000,
}