public sealed class HeaderConsistencyRule : IValidationRule
{
public string RuleName => nameof(HeaderConsistencyRule);
public ValidationSeverity Severity => ValidationSeverity.Error;
public Task<ValidationResult> ValidateAsync(PeImageInfo peInfo, CancellationToken cancellationToken)
{
var ok = peInfo.DosHeader.Magic == 0x5A4D && peInfo.NtHeaders.Signature == 0x00004550;
return Task.FromResult(new ValidationResult(RuleName, Severity, ok, ok ? "Headers are consistent." : "Invalid MZ/PE signature."));
}
}