إنتقل إلى المحتوى الرئيسي

تعمق في وحدة التحقق

تحليل شامل لوحدة src/analysis/validation.rs.

الغرض

وحدة التحقق تتحقق من بنية الملفات بعد البايتات السحرية لزيادة دقة الكشف.

دوال التحقق

pub fn validate_pdf(data: &[u8]) -> ValidationResult
pub fn validate_png(data: &[u8]) -> ValidationResult
pub fn validate_zip(data: &[u8]) -> ValidationResult
pub fn validate_pe(data: &[u8]) -> ValidationResult

مثال: التحقق من PDF

pub fn validate_pdf(data: &[u8]) -> ValidationResult {
// التحقق من الرأس
if &data[0..5] != b"%PDF-" {
return ValidationResult { is_valid: false, .. };
}

// التحقق من علامة EOF
let has_eof = find_pattern_reverse(data, b"%%EOF").is_some();

// التحقق من جدول xref
let has_xref = find_pattern(data, b"xref").is_some();

ValidationResult {
is_valid: has_eof && has_xref,
confidence_boost: 0.1,
details: "بنية PDF صالحة".to_string(),
}
}

لماذا التحقق؟

مطابقة البايتات السحرية وحدها يمكن تزويرها. التحقق من البنية:

  • يزيد دقة الكشف
  • يكشف الملفات المقطوعة أو الفاسدة
  • يميز الصيغ المتشابهة