Skip to content
KitploitKITPLOIT
उपकरणब्लॉग
जमा करें
उपकरणब्लॉग
जमा करें

हैकिंग, पेनटेस्ट और साइबर सुरक्षा उपकरण आपके सुरक्षा शस्त्रागार के लिए!

Kitploit हैकिंग, साइबर सुरक्षा और पेंटेस्टिंग टूल्स की एक निर्देशिका है। कमजोरियों को खोजने, सिस्टम का विश्लेषण करने, परीक्षण को स्वचालित करने और अपनी सुरक्षा को मजबूत करने के लिए नवीनतम प्रोजेक्ट अपडेट खोजें।

··फ़ीड·संपर्क·गोपनीयता·© 2026 Kitploit

टूल निर्देशिका

श्रेणियाँ

सभी श्रेणियाँ देखें
Loading categories
dncil — FLARE टीम की ओपन-सोर्स लाइब्रेरी जो Common Intermediate Language (CIL) निर्देशों को डिसअसेंबल करती है। | Kitploit
उपकरण/GitHubGitHub/mandiant/dncil
रिवर्स इंजीनियरिंगमालवेयर विश्लेषणबाइनरी विश्लेषण
GitHubmandiant/dncil

dncil

FLARE टीम की ओपन-सोर्स लाइब्रेरी जो Common Intermediate Language (CIL) निर्देशों को डिसअसेंबल करती है।

रिपॉजिटरी देखें
1782019 दिन पहलेKitploit द्वारा समीक्षित

सबसे लोकप्रिय

सभी देखें →

हमारे समुदाय द्वारा सबसे अधिक उपयोग किए जाने वाले उपकरण खोजें।

सभी उपकरण खोजें

हमारे उपकरणों का संग्रह ब्राउज़ करें

सभी उपकरण देखें →
साझा करें

dncil

PyPI - Python Version Last release CI Downloads License

dncil एक Common Intermediate Language (CIL) डिसअसेंबली लाइब्रेरी है जो Python में लिखी गई है और .NET प्रबंधित विधियों के हेडर, निर्देशों, और अपवाद हैंडलर्स को पार्स करने का समर्थन करती है। पार्स किया गया डेटा एक ऑब्जेक्ट-ओरिएंटेड API के माध्यम से प्रदान किया जाता है, जिससे आप dncil का उपयोग करके CIL विश्लेषण उपकरण तेज़ी से विकसित कर सकते हैं।

Python क्यों? जो मौजूदा लाइब्रेरीज़ CIL डिसअसेंबली का समर्थन करती हैं, जैसे dnLib, वे C# में लिखी गई हैं। इन उपकरणों का लाभ उठाने के लिए, आपको C# एप्लिकेशन बनाने होंगे जिसके लिए C# विकास अनुभव आवश्यक है। dncil का उपयोग करके, जो एक शुद्ध Python विकल्प है, आप:

  1. प्रोग्रामेटिक रूप से CIL का विश्लेषण करने के लिए C# अनुभव की आवश्यकता नहीं होती।
  2. अपने CIL विश्लेषण उपकरणों को तेज़ी से विकसित और परीक्षण कर सकते हैं।
  3. अपने CIL विश्लेषण उपकरणों को मौजूदा Python परियोजनाओं के साथ आसानी से एकीकृत कर सकते हैं।

उदाहरण

उदाहरण स्क्रिप्ट print_cil_from_dn_file.py एक .NET निष्पादन योग्य में पाई जाने वाली प्रबंधित विधियों को डिसअसेंबल करने के लिए dncil का उपयोग .NET विश्लेषण लाइब्रेरी dnfile के साथ करती है। आइए देखें कि यह क्या कर सकता है।

सबसे पहले, हम निम्नलिखित C# सोर्स कोड संकलित करते हैं:

root@kitploit:~
using System;	

public class HelloWorld
{
    public static void Main(string[] args)
    {
        Console.WriteLine ("Hello World!");
    }
}

संकलन से एक PE निष्पादन योग्य प्राप्त होता है जिसमें .NET मेटाडेटा होता है, जो Common Language Runtime (CLR) को बताता है कि हमारे कोड को कैसे निष्पादित करना है। हम इस मेटाडेटा को पार्स करने के लिए dnfile का उपयोग करते हैं, जो हमें हमारी प्रबंधित विधि Main का ऑफसेट देता है। फिर हम इस स्थान पर संग्रहीत CIL निर्देशों को डिसअसेंबल और प्रदर्शित करने के लिए dncil का उपयोग करते हैं।

आइए उपरोक्त को कार्य करते हुए देखें:

root@kitploit:~
$ python scripts/print_cil_from_dn_file.py hello-world.exe 

Method: Main
0000    00                  nop            
0001    72 01 00 00 70      ldstr          "Hello World!"
0006    28 04 00 00 0a      call           System.Console::WriteLine
000B    00                  nop            
000C    2a                  ret            

हमारी विधि Main को CilMethodBody क्लास द्वारा दर्शाया गया है। यह क्लास ऐसा डेटा रखती है जिसमें किसी दी गई प्रबंधित विधि के हेडर, CIL निर्देश और अपवाद हैंडलर शामिल होते हैं। यह विभिन्न सहायक फ़ंक्शन भी प्रदान करती है:

root@kitploit:~
>  main_method_body.flags
SmallFormat  :  false
TinyFormat   :  false
FatFormat    :  false
TinyFormat1  :  true
MoreSects    :  false
InitLocals   :  false
CompressedIL :  false
>  main_method_body.size
14
>  hexdump.hexdump(main_method_body.get_bytes())
00000000: 36 00 72 01 00 00 70 28  04 00 00 0A 00 2A        6.r...p(.....*
>  hexdump.hexdump(main_method_body.get_header_bytes())
00000000: 36                                                6
>  hexdump.hexdump(main_method_body.get_instruction_bytes())
00000000: 00 72 01 00 00 70 28 04  00 00 0A 00 2A           .r...p(.....*

हमारी प्रबंधित विधि Main में पाया गया प्रत्येक CIL निर्देश Instruction क्लास द्वारा दर्शाया गया है। यह क्लास ऐसा डेटा रखती है जिसमें किसी दिए गए CIL निर्देश का ऑफसेट, मेमोनिक, ओपकोड और ऑपरेंड शामिल होते हैं। यह विभिन्न सहायक फ़ंक्शन भी प्रदान करती है:

root@kitploit:~
>  len(main_method_body.instructions)
5
>  insn = main_method_body.instructions[1]
>  insn.offset
1
>  insn.mnemonic
'ldstr'
>  insn.operand
token(0x70000001)
>  insn.is_ldstr()
True
>  insn.size
5
>  hexdump.hexdump(insn.get_bytes())
00000000: 72 01 00 00 70                                    r...p
>  hexdump.hexdump(insn.get_opcode_bytes())
00000000: 72                                                r
>  hexdump.hexdump(insn.get_operand_bytes())
00000000: 01 00 00 70                                       ...p

इंस्टॉल करना

dncil इंस्टॉल करने के लिए pip का उपयोग करके dncil मॉड्यूल प्राप्त करें:

root@kitploit:~
$ pip install dncil

उदाहरण स्क्रिप्ट चलाने के लिए dnfile इंस्टॉल करना सुनिश्चित करें। वैकल्पिक रूप से, dncil को विकास निर्भरताओं के साथ इंस्टॉल करें, जैसा कि नीचे विकास अनुभाग में वर्णित है।

एक त्वरित उदाहरण के लिए print_cil_from_bytes.py देखें, जो .NET प्रबंधित विधि वाली बाइट स्ट्रीम में पाए जाने वाले CIL निर्देशों को प्रिंट करने के लिए dncil का उपयोग करता है।

विकास

यदि आप dncil सोर्स कोड की समीक्षा करना और संशोधित करना चाहते हैं, तो आपको इसे GitHub से डाउनलोड करके स्थानीय रूप से इंस्टॉल करना होगा।

विकास निर्भरताओं के साथ dncil को स्थानीय रूप से इंस्टॉल करने के लिए निम्नलिखित कमांड का उपयोग करें:

root@kitploit:~
$ pip install /local/path/to/src[dev]

नीचे वर्णित परीक्षण और लिंटिंग चलाने के लिए आपको dncil की विकास निर्भरताओं की आवश्यकता होगी।

परीक्षण

परीक्षण चलाने के लिए निम्नलिखित कमांड का उपयोग करें:

root@kitploit:~
$ pytest /local/path/to/src/tests

लिंटिंग

प्रारूप त्रुटियों की पहचान करने के लिए निम्नलिखित कमांड का उपयोग करें:

root@kitploit:~
$ black -l 120 -c /local/path/to/src
$ isort --profile black --length-sort --line-width 120 -c /local/path/to/src
$ mypy --config-file /local/path/to/src/.github/mypy/mypy.ini /local/path/to/src/dncil/ /local/path/to/src/scripts/ /local/path/to/src/tests/

श्रेय

dncil dnLib में पाए जाने वाले CIL पार्सिंग कोड पर आधारित है।

टूल डाउनलोड करें