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

البداية السريعة

سيساعدك هذا الدليل على فحص الملفات في أقل من 5 دقائق.

أول فحص لك

فحص ملف واحد

batin scan suspicious.exe

مثال على المخرجات:

╭──────────────────────────────────────────────────────────────╮
│ 🔍 BATIN │
│ Security-Hardened File Type Detection │
╰──────────────────────────────────────────────────────────────╯

╭─────────────────┬──────┬────────────┬───────────┬───────────╮
│ الملف │ النوع │ الثقة │ التهديد │ التفاصيل │
├─────────────────┼──────┼────────────┼───────────┼───────────┤
│ suspicious.exe │ exe │ 95% │ ⚠ مشبوه │ 📦 مضغوط │
╰─────────────────┴──────┴────────────┴───────────┴───────────╯

فهم المخرجات

العمودالوصف
الملفمسار الملف الممسوح
النوعنوع الملف المكتشف (بناءً على المحتوى، وليس الامتداد)
الثقةمدى ثقة باطن في الكشف (0-100%)
التهديدمستوى تقييم المخاطر
التفاصيلعلامات إضافية (مضغوط، مشفر، متعدد الصيغ، إلخ)

مستويات التهديد

المستوىالرمزالمعنى
آمنلم يتم اكتشاف تهديدات
مشبوهقد يكون خطيراً (مثل الملفات التنفيذية، السكربتات)
خطيرمخاطر عالية (مضغوط، متعدد الصيغ، أو تهديدات مضمنة)
حرجتهديد فوري (ماكرو تنفيذ تلقائي مكتشف)

فحص المجلدات

الفحص التكراري

batin scan /path/to/directory --recursive

تصفية النتائج

عرض التهديدات فقط

batin scan /downloads --recursive --min-threat suspicious

استبعاد الأنماط

batin scan /project --recursive --exclude "*.log" --exclude "node_modules/*"

صيغ الإخراج

إخراج JSON

batin scan file.pdf --json

إخراج CSV

batin scan /directory --recursive --csv --output results.csv

المراقبة في الوقت الحقيقي

مراقبة مجلد للملفات الجديدة:

batin watch /downloads

الاستخدام كمكتبة

الإضافة إلى Cargo.toml

[dependencies]
batin = "0.1"
tokio = { version = "1", features = ["full"] }

الاستخدام الأساسي

use batin::{FileType, DetectionConfig};

#[tokio::main]
async fn main() -> Result<(), Box<dyn std::error::Error>> {
let config = DetectionConfig::default();
let result = FileType::from_file_path("test.pdf", &config).await?;

println!("النوع: {}", result.extension);
println!("MIME: {}", result.mime_type);
println!("التهديد: {:?}", result.threat_level);

Ok(())
}

الخطوات التالية