internal override bool Analyze(DirectoryInfo baseDirectory, FileInfo file)
{
if (!base.Analyze(baseDirectory, file)) return false;
if (!HasMagicBytes(file)) return false;
Name = file.Name;
Architecture = new Architecture(OS.Linux, Cpu.All);
IELF elfData = null;
try
{
if (ELFReader.TryLoad(file.FullName, out elfData))
{
if (elfData.Class == Class.NotELF || elfData.Type != FileType.Executable) return false;
Architecture = new Architecture(OS.Linux, GetCpu(elfData));
}
}
catch (NullReferenceException)
{}
finally
{
elfData?.Dispose();
}
return true;
}