
تم تصميم analyzeMFT.py لتحليل ملف MFT بالكامل من نظام ملفات NTFS وعرض النتائج بأكبر قدر ممكن من الدقة في صيغ متعددة.
الحالة: جميع الاختبارات ناجحة عبر بايثون 3.8-3.12 على ويندوز وmacOS ولينكس.
# Install
pip install analyzeMFT
# Basic usage
python analyzeMFT.py -f MFT_FILE -o output.csv --csv
# Generate test MFT for testing
python -c "from src.analyzeMFT.test_generator import create_test_mft; create_test_mft('test.mft', 100)"
# Analyze with multiple outputs
python analyzeMFT.py -f test.mft -o output.json --json --hash
AnalyzeMFT هي أداة مبنية على بايثون مصممة لتحليل وتفسير جدول الملفات الرئيسي (Master File Table - MFT) في نظام NTFS.
تقوم بتحويل بيانات MFT الثنائية الخام إلى مخرجات منظمة وقابلة للقراءة البشرية، مناسبة للتحقيق الرقمي الجنائي، والاستجابة للحوادث، وتحليل نظام الملفات. تدعم الأداة مجموعة واسعة من صيغ الإخراج وتوفّر استخراجًا تفصيليًا للبيانات الوصفية، مما يمكّن المحققين من فحص الطوابع الزمنية للملفات، والسمات، والخصائص الهيكلية لوحدات تخزين NTFS.
الغرض الرئيسي من AnalyzeMFT هو مساعدة المحللين الجنائيين في إعادة بناء نشاط نظام الملفات من خلال فك ترميز سجلات MFT. يحتوي كل سجل على معلومات بالغة الأهمية مثل أسماء الملفات، وأوقات الإنشاء والتعديل، وأحجام الملفات، وعلاقات الدليل. تتعامل الأداة مع كلٍّ من الإدخالات النشطة والمحذوفة، مما يتيح تحليلًا شاملًا للخط الزمني واستعادة القطع الأثرية. تتضمن معالجة قوية للأخطاء للتعامل مع إدخالات MFT التالفة أو غير المكتملة، مما يضمن معالجة موثوقة حتى على أنظمة الملفات المتضررة.
يتم دعم صيغ إخراج متعددة للتكامل مع مهام سير العمل الجنائية الشائعة. يمكن للمستخدمين تصدير النتائج كملفات CSV أو JSON أو XML أو Excel للمراجعة وإعداد التقارير. ولتحليل الخط الزمني، تتوفر صيغة ملف body المتوافقة مع mactime والأدوات الأخرى. وينشئ التصدير إلى SQLite بنية قاعدة بيانات علائقية للاستعلام والتخزين طويل الأمد. وتسمح صيغتا TSK timeline وlog2timeline CSV بالإدخال المباشر في منصات التحقيق الجنائي القائمة.
تم دمج تحسينات الأداء في الأداة للتعامل مع ملفات MFT الكبيرة بكفاءة. تتم المعالجة في أجزاء قابلة للتكوين لإدارة استخدام الذاكرة، وهو أمر مهم بشكل خاص عند تحليل ملفات MFT التي يبلغ حجمها مئات الميغابايت. تُستخدم المعالجة المتعددة أثناء حساب التجزئة (hash) لتقليل وقت المعالجة. يمكن للمستخدمين ضبط عدد عمليات العاملين وحجم الأجزاء بناءً على موارد النظام. توفر مؤشرات التقدم تغذية راجعة في الوقت الفعلي أثناء العمليات طويلة الأمد.
تدعم الأداة ملفات تعريف تحليل قابلة للتكوين لتناسب الاحتياجات التشغيلية المختلفة. يوفر ملف التعريف الافتراضي معالجة متوازنة للاستخدام العام. يقلل ملف التعريف السريع من الحمل الزائد للمعالجة للفرز السريع. يمكّن ملف التعريف الجنائي أقصى استخراج للبيانات، بما في ذلك جميع متغيرات الطوابع الزمنية والسمات الموسعة. يضبط ملف تعريف الأداء الإعدادات الداخلية لإعطاء الأولوية للسرعة وكفاءة الموارد على مجموعات البيانات الكبيرة.
حساب التجزئة (Hash) متاح لسمات سجلات الملفات التي تتضمن عمليات تشغيل البيانات (data runs). يمكن إنشاء تجزئات MD5 وSHA256 وSHA512 وCRC32 للبيانات المقيمة وغير المقيمة. تدعم هذه الميزة تحديد هوية الملفات والتحقق من التكامل. يعمل حساب التجزئة بالتوازي افتراضيًا، مع إمكانية تكوين عدد العمليات. يمكن للمستخدمين تعطيل المعالجة المتعددة إذا كانوا يعملون في بيئات محدودة الموارد.
تتم إدارة التكوين من خلال خيارات سطر الأوامر أو ملفات خارجية بصيغة JSON أو YAML. يمكن لملف التكوين تحديد إعدادات الإخراج، وملفات تعريف التحليل، وخيارات التجزئة، ومعايير التصفية. يمكن إنشاء ملفات تكوين نموذجية باستخدام الخيار --create-config. ويعرض الخيار --list-profiles جميع ملفات التعريف المدمجة المتاحة وأوصافها.
يتم تحديد الإدخال باستخدام الخيار -f متبوعًا بمسار ملف MFT. يتم تحديد صيغة الإخراج من خلال امتداد الملف أو علامات التصدير الصريحة. يحدد الخيار -o وجهة الإخراج. عند التصدير إلى SQLite، يجب استخدام علامة --sqlite. بالنسبة لإخراج CSV، لا يلزم وجود علامة إضافية إذا كان ملف الإخراج ينتهي بـ .csv.
يتم تضمين مولّد MFT للاختبار لأغراض التطوير والتدريب. باستخدام الخيار --generate-test-mft، يمكن للمستخدمين إنشاء ملفات MFT اصطناعية بعدد محدد من السجلات. هذه الميزة مفيدة للتحقق من وظائف الأداة، واختبار المحلِّلات، أو إنشاء بيانات توضيحية.
تتضمن خيارات سطر الأوامر عناصر تحكم في مستوى التفصيل مع -v لمزيد من الإخراج و -d لتسجيل مستوى التصحيح. تساعد هذه في تشخيص المشكلات أثناء المعالجة. تسمح خيارات التصدير باختيار الصيغة دون الاعتماد على امتدادات الملفات. تتضمن خيارات ضبط الأداء --chunk-size لحجم دفعة السجلات و --hash-processes لتعيين عدد خيوط التجزئة.
تتضمن الأداة نظام مساعدة منظمًا. يعرض تشغيل البرنامج النصي مع --help جميع الخيارات المتاحة وأوصافها. يعرض ملخص الاستخدام الوسائط المطلوبة والاختيارية. يتم تقديم شروحات مفصلة لكل فئة من فئات الخيارات، بما في ذلك إعدادات التصدير والأداء والتكوين والتصحيح.
يتضمن الإصدار 3.1.1 تحسينات كبيرة على جودة الكود وتغطية الاختبارات. تتضمن مجموعة الاختبارات الآن 224 اختبارًا شاملاً تغطي جميع المكونات الرئيسية. تضمن خطوط أنابيب CI/CD في GitHub Actions جودة الكود عبر بايثون 3.8-3.12 على لينكس وويندوز وماك. تم دمج فحص الأمان باستخدام Bandit والتحقق من التبعيات باستخدام Safety في عملية البناء. يتتبع إعداد تقارير تغطية الكود عبر Codecov فعالية الاختبارات.
تشمل صيغ الإخراج المخطط لها STIX/TAXII لمشاركة معلومات التهديدات، والتكامل مع Elasticsearch وSplunk لتحليل السجلات المركزي. سيتيح تصدير قاعدة بيانات الرسم البياني إلى Neo4j تصور علاقات نظام الملفات. سيتمكن المستخدمون من تصفية الإخراج حسب النطاق الزمني ونوع الملف والحجم مباشرة داخل الأداة. قد يتم تقديم وضع تفاعلي للسماح بالفحص خطوة بخطوة للسجلات.
يتم قبول المساهمات في المشروع عبر طلبات السحب على GitHub. يجب على المطورين ضمان التوافق مع بايثون 3.8 وما فوق. يجب أن تتضمن جميع التعليمات البرمجية الجديدة تلميحات الأنواع (type hints) واختبارات وحدة شاملة. يتم تشغيل مجموعة الاختبارات باستخدام pytest، ويجب أن تظل التغطية أعلى من 80%. يجب أن يتبع الكود إرشادات PEP 8 وأن يكون متوافقًا مع جميع المنصات. يجب تحديث الوثائق لأي ميزات أو تغييرات جديدة.
تُقدَّم هذه الأداة كما هي لأغراض التحليل الجنائي والأمني المشروعة. يتحمل المستخدمون مسؤولية ضمان حصولهم على التفويض المناسب قبل تحليل أي أنظمة ملفات أو بيانات MFT. لا يتحمل المؤلفون أي مسؤولية عن إساءة استخدام هذا البرنامج.