
analyzeMFT.py is designed to fully parse the MFT file from an NTFS filesystem and present the results as accurately as possible in multiple formats.
स्थिति: Windows, macOS और Linux पर Python 3.8-3.12 पर सभी परीक्षण पास हो रहे हैं।
# 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 एक Python-आधारित उपकरण है जो NTFS मास्टर फ़ाइल तालिका (MFT) को पार्स और विश्लेषण करने के लिए डिज़ाइन किया गया है।
यह कच्चे बाइनरी MFT डेटा को संरचित, मानव-पठनीय आउटपुट में बदलता है जो डिजिटल फोरेंसिक, घटना प्रतिक्रिया और फ़ाइल सिस्टम विश्लेषण के लिए उपयुक्त है। यह उपकरण विभिन्न आउटपुट स्वरूपों का समर्थन करता है और विस्तृत मेटाडेटा निष्कर्षण प्रदान करता है, जिससे अन्वेषकों को NTFS वॉल्यूम के फ़ाइल टाइमस्टैम्प, विशेषताओं और संरचनात्मक गुणों की जांच करने में मदद मिलती है।
AnalyzeMFT का प्राथमिक उद्देश्य MFT रिकॉर्ड को डिकोड करके फ़ाइल सिस्टम गतिविधि के पुनर्निर्माण में फोरेंसिक विश्लेषकों की सहायता करना है। प्रत्येक रिकॉर्ड में फ़ाइल नाम, निर्माण और संशोधन समय, फ़ाइल आकार और निर्देशिका संबंध जैसी महत्वपूर्ण जानकारी होती है। यह उपकरण सक्रिय और हटाए गए दोनों प्रविष्टियों को संभालता है, जिससे व्यापक समयरेखा विश्लेषण और कलाकृतियों की पुनर्प्राप्ति संभव होती है। इसमें दूषित या अपूर्ण MFT प्रविष्टियों को प्रबंधित करने के लिए मजबूत त्रुटि प्रबंधन शामिल है, जो क्षतिग्रस्त फ़ाइल सिस्टम पर भी विश्वसनीय प्रसंस्करण सुनिश्चित करता है।
सामान्य फोरेंसिक वर्कफ़्लो के साथ एकीकृत करने के लिए कई आउटपुट स्वरूप समर्थित हैं। उपयोगकर्ता समीक्षा और रिपोर्टिंग के लिए परिणामों को CSV, JSON, XML या Excel फ़ाइलों के रूप में निर्यात कर सकते हैं। समयरेखा विश्लेषण के लिए, mactime और अन्य उपकरणों के साथ संगत बॉडी फ़ाइल स्वरूप उपलब्ध है। SQLite निर्यात पूछताछ और दीर्घकालिक भंडारण के लिए एक संबंधपरक डेटाबेस संरचना बनाता है। TSK टाइमलाइन और log2timeline CSV स्वरूप स्थापित फोरेंसिक प्लेटफार्मों में सीधे अंतर्ग्रहण की अनुमति देते हैं।
बड़ी MFT फ़ाइलों को कुशलतापूर्वक संभालने के लिए प्रदर्शन अनुकूलन उपकरण में निर्मित हैं। प्रसंस्करण मेमोरी उपयोग को प्रबंधित करने के लिए कॉन्फ़िगर करने योग्य चंक में होता है, विशेष रूप से जब सैकड़ों मेगाबाइट्स आकार की MFT का विश्लेषण किया जाता है। हैश गणना के दौरान प्रसंस्करण समय कम करने के लिए मल्टीप्रोसेसिंग का उपयोग किया जाता है। उपयोगकर्ता सिस्टम संसाधनों के आधार पर कार्यकर्ता प्रक्रियाओं और चंक आकार की संख्या को समायोजित कर सकते हैं। प्रगति संकेतक लंबे समय तक चलने वाले संचालन के दौरान वास्तविक समय प्रतिक्रिया प्रदान करते हैं।
यह उपकरण विभिन्न परिचालन आवश्यकताओं के अनुरूप कॉन्फ़िगर करने योग्य विश्लेषण प्रोफ़ाइल का समर्थन करता है। डिफ़ॉल्ट प्रोफ़ाइल सामान्य उपयोग के लिए संतुलित प्रसंस्करण प्रदान करती है। त्वरित प्रोफ़ाइल त्वरित ट्रायेज के लिए प्रसंस्करण ओवरहेड को कम करती है। फोरेंसिक प्रोफ़ाइल अधिकतम डेटा निष्कर्षण सक्षम करती है, जिसमें सभी टाइमस्टैम्प प्रकार और विस्तारित विशेषताएँ शामिल हैं। प्रदर्शन प्रोफ़ाइल बड़े डेटासेट पर गति और संसाधन दक्षता को प्राथमिकता देने के लिए आंतरिक सेटिंग्स को समायोजित करती है।
हैश गणना फ़ाइल रिकॉर्ड विशेषताओं के लिए उपलब्ध है जिनमें डेटा रन शामिल हैं। निवासी और गैर-निवासी डेटा के लिए 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 व्यापक परीक्षण शामिल हैं। GitHub Actions CI/CD पाइपलाइन Linux, Windows और macOS पर Python 3.8-3.12 पर कोड गुणवत्ता सुनिश्चित करती हैं। Bandit के साथ सुरक्षा स्कैनिंग और Safety के साथ निर्भरता जाँच बिल्ड प्रक्रिया में एकीकृत हैं। Codecov के माध्यम से कोड कवरेज रिपोर्टिंग परीक्षण प्रभावशीलता को ट्रैक करती है।
योजनाबद्ध निर्यात स्वरूपों में खतरे की खुफिया साझाकरण के लिए STIX/TAXII और केंद्रीकृत लॉग विश्लेषण के लिए Elasticsearch और Splunk के साथ एकीकरण शामिल है। Neo4j को ग्राफ़ डेटाबेस निर्यात फ़ाइल सिस्टम संबंधों के विज़ुअलाइज़ेशन को सक्षम करेगा। उपयोगकर्ता टूल के भीतर सीधे दिनांक सीमा, फ़ाइल प्रकार और आकार के अनुसार आउटपुट को फ़िल्टर करने में सक्षम होंगे। रिकॉर्ड की चरण-दर-चरण जांच की अनुमति देने के लिए एक इंटरैक्टिव मोड शुरू किया जा सकता है।
परियोजना में योगदान GitHub पुल अनुरोधों के माध्यम से स्वीकार किए जाते हैं। डेवलपर्स को Python 3.8 और उससे ऊपर के साथ संगतता सुनिश्चित करनी चाहिए। सभी नए कोड में टाइप हिंट और व्यापक यूनिट परीक्षण शामिल होने चाहिए। परीक्षण सूट pytest का उपयोग करके चलाया जाता है, और कवरेज 80% से ऊपर रहना चाहिए। कोड को PEP 8 दिशानिर्देशों का पालन करना चाहिए और क्रॉस-प्लेटफ़ॉर्म संगत होना चाहिए। किसी भी नई सुविधा या परिवर्तन के लिए दस्तावेज़ीकरण को अपडेट किया जाना चाहिए।
यह उपकरण वैध फोरेंसिक और सुरक्षा विश्लेषण उद्देश्यों के लिए यथास्थिति प्रदान किया गया है। उपयोगकर्ता किसी भी फ़ाइल सिस्टम या MFT डेटा का विश्लेषण करने से पहले उचित प्राधिकरण सुनिश्चित करने के लिए जिम्मेदार हैं। लेखक इस सॉफ़्टवेयर के दुरुपयोग के लिए कोई दायित्व नहीं लेते हैं।