
.NET रनटाइम निरीक्षक
Shed एक एप्लिकेशन है जो किसी प्रोग्राम के .NET रनटाइम का निरीक्षण करने की अनुमति देता है ताकि उपयोगी जानकारी निकाली जा सके। इसका उपयोग दुर्भावनापूर्ण एप्लिकेशनों का निरीक्षण करने के लिए किया जा सकता है ताकि मैलवेयर निष्पादित होने पर संग्रहीत जानकारी का पहला सामान्य अवलोकन प्राप्त किया जा सके।
Shed निम्नलिखित कार्य करने में सक्षम है:
Shed एक कमांड लाइन टूल है। सभी उपलब्ध विकल्प प्रदर्शित करने के लिए चलाएँ:
shed.exe --help
पहले से चल रही प्रक्रिया का निरीक्षण करने के लिए आपको Shed को pid पास करना होगा। उदाहरण:
Shed.exe --pid 2356
बाइनरी का निरीक्षण करने के लिए, Shed को इसे निष्पादित करना होगा और रनटाइम का निरीक्षण करने के लिए इससे जुड़ना होगा। उदाहरण:
Shed.exe --exe malware.exe
आप प्रक्रिया को निलंबित करने से पहले प्रतीक्षा करने के लिए समय (मिलीसेकंड में) भी निर्दिष्ट कर सकते हैं। यह प्रोग्राम को अपने गुणों को आरंभ करने का समय देने की अनुमति देगा। उदाहरण:
Shed.exe --timeout 2000 --exe malware.exe
Shed के साथ ManagedInjector लाइब्रेरी की बदौलत एक दूरस्थ प्रक्रिया में .NET असेंबली इंजेक्ट करना संभव है। ऐसा करने के लिए, प्रक्रिया का pid और इंजेक्ट करने के लिए exe निर्दिष्ट करना आवश्यक है। एक बार असेंबली इंजेक्ट हो जाने के बाद, एक विशिष्ट विधि को लागू करके इसे सक्रिय करना संभव है। विधि की पहचान करने के नियम ManagedInjector प्रोजेक्ट से विरासत में मिले हैं और निम्नलिखित हैं:
उदाहरण के लिए, InjectedAssembly असेंबली को pid 1234 वाली प्रक्रिया में इंजेक्ट करने के लिए, Shed को निम्न कमांड के साथ चलाएँ:
shed.exe --pid 1234 --exe InjectedAssembly.dll --inject
--method विकल्प के साथ आप InjectedAssembly.exe से लागू करने के लिए एक विधि निर्दिष्ट कर सकते हैं।
नीचे निष्पादन का एक उदाहरण देखें:

डिफ़ॉल्ट रूप से Shed हीप और मॉड्यूल दोनों को डंप करता है। यदि आप उनमें से केवल एक चाहते हैं तो हीप में केवल ऑब्जेक्ट डंप करने के लिए --dump-heap विकल्प या केवल मॉड्यूल डंप करने के लिए --dump-modules विकल्प निर्दिष्ट करें।
हीप डंप करने से बहुत सारी जानकारी उत्पन्न हो सकती है जो विश्लेषण के लिए सख्ती से उपयोगी नहीं है। आप दो फ़ाइलों का उपयोग करके इसे फ़िल्टर कर सकते हैं:
blacklist.txt इस फ़ाइल में उन प्रकार के नामों का उपसर्ग होता है जिन्हें लॉग नहीं किया जाना चाहिए
whitelist.txt इस फ़ाइल में उन प्रकार के नामों का उपसर्ग होता है जिन्हें ब्लैकलिस्ट होने पर भी लॉग किया जाना चाहिए
उदाहरण के लिए, यदि आप सभी System.IO नामस्थान को फ़िल्टर करना चाहते हैं लेकिन System.IO.MemoryStream को लॉग करने में रुचि रखते हैं, तो आप पहला मान blacklist.txt में और दूसरा whitelist.txt में जोड़ सकते हैं।
Examples फ़ोल्डर में आप तीन अलग-अलग प्रोजेक्ट पाएंगे जिनका उपयोग आप Shed का परीक्षण करने के लिए कर सकते हैं। उदाहरण:
Shed.exe --exe ..\Examples\ConfigurationSample\ConfigurationSample.exe
जब विश्लेषण पूरा हो जाता है, Shed प्रिंट करेगा कि आप परिणाम कहाँ पा सकते हैं, जैसा कि नीचे दिखाया गया है:
[+] Result saved to C:\Shed\Result\7800
यदि आपने Visual Studio स्थापित किया है, तो बस build.bat बैच फ़ाइल चलाएँ, यह build फ़ोल्डर के अंदर एक zip फ़ाइल बनाएगा।
Copyright (C) 2017 Antonio Parata - @s4tan
लाइसेंस: GNU जनरल पब्लिक लाइसेंस, संस्करण 2 या बाद का; विवरण के लिए इस संग्रह में शामिल LICENSE देखें।