public static bool IsAssembly(string file)
{
using (var stream = File.OpenRead(file))
{
if (stream.Length < 318)
{
return false;
}
if (stream.ReadUInt16() != 0x5a4d)
{
return false;
}
if (!stream.Advance(58))
{
return false;
}
if (!stream.MoveTo(stream.ReadUInt32()))
{
return false;
}
if (stream.ReadUInt32() != 0x00004550)
{
return false;
}
if (!stream.Advance(20))
{
return false;
}
if (!stream.Advance(stream.ReadUInt16() == 0x20b ? 222 : 206))
{
return false;
}
return stream.ReadUInt32() != 0;
}
}