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

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

سيساعدك هذا الدليل على فحص الملفات في أقل من 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(())
}

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