
Python लाइब्रेरी जो .NET असेंबलियों में CLR/PE मेटाडेटा को पार्स करती है, मैलवेयर विश्लेषण और खतरे की खोज में सहायता के लिए स्ट्रीम और हैश फिंगरप्रिंट्स उजागर करती है।
dotnetfile विंडोज़ .NET फ़ाइलों के लिए Python में निर्मित एक कॉमन लैंग्वेज रनटाइम (CLR) हेडर पार्सर लाइब्रेरी है। CLR हेडर हर विंडोज़ .NET असेंबली में पोर्टेबल एक्ज़ीक्यूटेबल (PE) हेडर के साथ मौजूद होता है। यह फ़ाइल के प्रबंधित भाग के लिए बहुत सारी मेटाडेटा जानकारी संग्रहीत करता है।
dotnetfile कुछ हद तक pefile के समकक्ष है, लेकिन .NET नमूनों के लिए।
लाइब्रेरी एक उपयोग में आसान API प्रदान करती है, लेकिन फ़ाइल पहचान में सुधार के लिए नई विधियाँ जोड़ने का भी प्रयास करती है। इसमें MemberRef हैश (प्रयोगात्मक) और TypeRef हैश का मूल तथा एक संशोधित संस्करण शामिल है।
इस परियोजना का उद्देश्य मैलवेयर विश्लेषकों और थ्रेट हंटर्स को CLR हेडर से आसानी से जानकारी निकालने का एक उपकरण देना है। इस लाइब्रेरी का उपयोग करने के लिए आपको CLR हेडर का विशेषज्ञ होने या उसके विनिर्देश में खो जाने की आवश्यकता नहीं है। API का उपयोग करके, आप यह भी सीखेंगे कि हेडर कैसे संरचित है और उम्मीद है कि आपको इस फ़ाइल प्रकार की सामान्य रूप से बेहतर समझ मिलेगी।
dotnetfile के लिए Python >= 3.7 आवश्यक है।
आप pip के साथ dotnetfile आसानी से इंस्टॉल कर सकते हैं:
pip install dotnetfile
dotnetfile को एक मॉड्यूल के रूप में इंस्टॉल करने के लिए, कृपया दी गई setup.py फ़ाइल का उपयोग करें। यह Python की सहायता से किया जा सकता है:
python3 setup.py install
dotnetfile का उपयोग करने के लिए, आपको बस मॉड्यूल को आयात करना है और पैरामीटर के रूप में .NET असेंबली पथ के साथ DotNetPE वर्ग का एक इंस्टेंस बनाना है। एक न्यूनतम उदाहरण जो किसी असेंबली की स्ट्रीम की संख्या प्रिंट करता है, नीचे दिखाया गया है:
# Import class DotNetPE from module dotnetfile
from dotnetfile import DotNetPE
# Define the file path of your assembly
dotnet_file_path = '/Users/<username>/my_dotnet_assembly.exe'
# Create an instance of DotNetPE with the file path as a parameter
dotnet_file = DotNetPE(dotnet_file_path)
# Print out the number of streams of the assembly
print(f'Number of streams: {dotnet_file.get_number_of_streams()}')
आपको उदाहरण उपकरणों को देखने के लिए आमंत्रित किया जाता है: https://github.com/pan-unit42/dotnetfile/blob/main/tools/
इस लाइब्रेरी का उपयोग कैसे करें, इसके बारे में अधिक जानकारी दस्तावेज़ीकरण पृष्ठों में पाई जा सकती है।
पूर्ण दस्तावेज़ीकरण https://pan-unit42.github.io/dotnetfile/ पर पाया जा सकता है।
यह परियोजना 2016 में Palo Alto Networks में आंतरिक उपयोग के लिए पार्सर लाइब्रेरी के विकास के साथ शुरू हुई थी। इसे इंटरफ़ेस लाइब्रेरी के साथ बेहतर/विस्तारित किया गया और 2022 में निम्नलिखित लोगों द्वारा ओपन-सोर्स किया गया:
यह परियोजना अभी भी कार्य प्रगति पर है। यदि आपको कोई समस्या मिलती है या कोई सुझाव है, तो कृपया उन्हें GitHub परियोजना पृष्ठ पर रिपोर्ट करें।
उन सभी योगदानकर्ताओं को विशेष धन्यवाद जिन्होंने इस परियोजना को बेहतर बनाने में मदद की है।
dotnetfile बड़े पैमाने पर .NET specification पर आधारित है।