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

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

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

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

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

श्रेणियाँ

सभी श्रेणियाँ देखें
Loading categories
patchkit — Python से बाइनरी पैचिंग | Kitploit
उपकरण/GitHubGitHub/lunixbochs/patchkit
रिवर्स इंजीनियरिंगबाइनरी विश्लेषणबाइनरी शोषण
GitHublunixbochs/patchkit

patchkit

Python से बाइनरी पैचिंग

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

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

सभी देखें →

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

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

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

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

patchkit

एक या अधिक सरल पायथन स्क्रिप्ट का उपयोग करके एक ELF बाइनरी को पैच करता है।

उपयोग:

root@kitploit:~
patch <binary> <patchdir|file> [patchdir|file...]

patchdir

इसमें एक या अधिक पायथन पैच फ़ाइलें होती हैं, जिन्हें एक बाइनरी के विरुद्ध वर्णमाला क्रम में निष्पादित किया जाएगा।

पैच उदाहरण

एक पते को NOP करना, एक असेंबली फ़ंक्शन इंजेक्ट करना, और एंट्री पॉइंट को हुक करना:

root@kitploit:~
def simple_patch(pt):
    # एंट्री पॉइंट पर एक जंप को NOP करें
    pt.patch(pt.entry, hex='90' * 5)

    # बाइनरी में असेंबली इंजेक्ट करें और पता लौटाएं
    addr = pt.inject(asm='mov eax, 1; ret')

    # एंट्री पॉइंट को हुक करें ताकि यह addr को कॉल करे (ret मूल एंट्री पॉइंट को चलाएगा)
    pt.hook(pt.entry, addr)

एक C फ़ंक्शन को बदलना:

root@kitploit:~
def replace_free(pt):
    # मान लें कि free() इस पते पर है:
    old_free = 0x804fc4

    # free() को बदलने के लिए एक फ़ंक्शन इंजेक्ट करें
    new_free = pt.inject(c=r'''
    void free_stub(void *addr) {
        printf("stubbed free(%p)\n", addr);
    }
    ''')

    # free() की शुरुआत को हमारे नए फ़ंक्शन पर जंप करने के लिए पैच करें
    pt.patch(old_free, jmp=new_free)

API

root@kitploit:~
addr = search(data)
hook(addr, new_addr)
patch(addr, *compile arg*)
addr = inject(*compile arg*)

*compile arg* निम्नलिखित में से कोई भी है:
  raw='data'
  hex='0bfe'
  asm='nop'
  jmp=0xaddr
  c='void func() { int a; a = 1; }' (केवल inject पर समर्थित, patch पर नहीं)

IDA स्क्रिप्ट

कुछ स्क्रिप्ट ida/ पथ में रहती हैं। इन्हें इस तरह चलाएं:

root@kitploit:~
/Applications/IDA\ Pro\ 6.8/idaq.app/Contents/MacOS/idaq64 -A -Sida/allfuncs.py a.out

इस प्रकार लागू करने पर, allfuncs.py a.out.funcs उत्पन्न करेगा जिसका उपयोग हार्डनिंग स्क्रिप्ट द्वारा किया जाता है।

उपकरण

ये अभी कुछ हद तक CGC और x86-विशिष्ट हैं, लेकिन भविष्य में सामान्य उपयोग के लिए पोर्ट किए जाएंगे।

  • explore: एक निष्पादन में बुनियादी ब्लॉक खोजने के लिए Python CFG और रिकर्सिव बैकट्रैकिंग एमुलेटर का उपयोग करता है
  • bindiff: दो बाइनरी के बीच बुनियादी ब्लॉक अंतर खोजने और आउटपुट करने के लिए explore रन से ब्लॉक सीमाओं के साथ-साथ अतिरिक्त विश्लेषण का उपयोग करता है

निर्भरताएँ

  • इन्हें स्वचालित रूप से स्थापित करने के लिए ./deps.sh चलाएं।
    • Capstone Engine - https://github.com/aquynh/capstone.git
    • Keystone Engine - https://github.com/keystone-engine/keystone.git
    • Unicorn Engine - https://github.com/unicorn-engine/unicorn.git
टूल डाउनलोड करें