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

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

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

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

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

श्रेणियाँ

सभी श्रेणियाँ देखें
Loading categories
quokka — क्वोक्का: एक तेज़ और सटीक बाइनरी एक्सपोर्टर | Kitploit
उपकरण/GitHubGitHub/quarkslab/quokka
स्थैतिक विश्लेषणकोड विश्लेषणरिवर्स इंजीनियरिंगउपयोगिताएँ और फ्रेमवर्कबाइनरी विश्लेषण
GitHubquarkslab/quokka

quokka

क्वोक्का: एक तेज़ और सटीक बाइनरी एक्सपोर्टर

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

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

सभी देखें →

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

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

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

सभी उपकरण देखें →
वेबसाइट
साझा करें

Quokka

यह छवि DALL-E द्वारा निर्मित है


विषय-सूची

  • परिचय
  • स्थापना
  • उपयोग
  • निर्माण
  • दस्तावेज़ीकरण
  • FAQ

परिचय

Quokka एक बाइनरी एक्सपोर्टर है: किसी प्रोग्राम के डिसअसेम्बली से, यह एक एक्सपोर्ट फ़ाइल उत्पन्न करता है जिसका उपयोग डिसअसेम्बलर के बिना किया जा सकता है। यह वर्तमान में डिसअसेम्बली बैकएंड के रूप में IDA Pro, Ghidra और Binary Ninja का समर्थन करता है।

Quokka का मुख्य उद्देश्य प्रारंभिक एक्सपोर्ट के बाद कभी भी डिसअसेम्बलर खोले बिना बाइनरी को पूरी तरह से हेर-फेर करने में सक्षम बनाना है। इसके अलावा, यह उपयोगकर्ताओं को एक स्वच्छ इंटरफ़ेस प्रदान करने के लिए डिसअसेम्बलर के API को एब्स्ट्रैक्ट करता है।

Quokka, BinExport से काफी प्रेरित है, जो BinDiff द्वारा उपयोग किया जाने वाला बाइनरी एक्सपोर्टर है।

आर्किटेक्चर

     IDA Pro               Ghidra               Binary Ninja
        │                      │                      │
IDA Plugin (C++)    Ghidra Plugin (Java)   BinaryNinja Plugin (Python)
        │                      │                      │
        └────────────── quokka.proto ─────────────────┘
                     (protobuf schema)
                              │
                        .quokka files
                              │
              Python bindings (quokka.Program)
              ├── Capstone backend (primary)
              └── Pypcode backend (optional)

स्थापना

Python प्लगइन

प्लगइन CI में बनाया जाता है और रजिस्ट्री में उपलब्ध है।

इस प्रकार के कमांड का उपयोग करके सीधे PIP से इंस्टॉल करना संभव होना चाहिए:

$ pip install quokka-project

IDA प्लगइन

नोट: Quokka द्वारा उत्पन्न फ़ाइल को पढ़ने के लिए IDA प्लगइन की आवश्यकता नहीं है। इसका उपयोग केवल उन्हें उत्पन्न करने के लिए किया जाता है।

Quokka, IDA 9.1+ के साथ संगत है।

IDA प्लगइन मैनेजर के माध्यम से (IDA 9.2+)

Quokka को Hex-Rays प्लगइन रिपॉजिटरी में प्रकाशित किया गया है और इसे hcli के साथ इंस्टॉल किया जा सकता है:

user@host:~$ hcli plugin install quokka

मैन्युअल रूप से

प्लगइन CI पर भी बनाया जाता है और रिलीज़ टैब में उपलब्ध है।

प्लगइन डाउनलोड करने के लिए, quokka_plugin.so नामक फ़ाइल (या अपने IDA संस्करण के लिए quokka-ida<version>.zip संग्रह) लें और इसे अपनी IDA plugins निर्देशिका में कॉपी करें।

Ghidra एक्सटेंशन

Quokka एक समर्पित एक्सटेंशन के माध्यम से Ghidra (>= 12.0.3) से एक्सपोर्ट का भी समर्थन करता है। यह वही .quokka protobuf फ़ाइलें उत्पन्न करता है जिन्हें Python लाइब्रेरी लोड कर सकती है।

निर्माण निर्देशों, स्थापना और उपयोग के विवरण के लिए Ghidra एक्सटेंशन README देखें।

BinaryNinja एक्सटेंशन

Quokka एक Python प्लगइन के माध्यम से Binary Ninja से एक्सपोर्ट का भी समर्थन करता है। यह वही .quokka protobuf फ़ाइलें उत्पन्न करता है जिन्हें Python लाइब्रेरी लोड कर सकती है।

स्थापना और उपयोग के विवरण के लिए BinaryNinja एक्सटेंशन README देखें।

उपयोग

GUI के माध्यम से एक्सपोर्ट करना

बाइनरी एक्सपोर्ट करने का पहला मैन्युअल तरीका IDA Pro के अंदर प्लगइन का उपयोग करना है। IDA के अंदर डिफ़ॉल्ट शॉर्टकट Alt+A है। यह निम्नलिखित डायलॉग खोलता है:

एक्सपोर्ट डायलॉग

उपलब्ध मोड हैं:

  • LIGHT: केवल ब्लॉक-स्तरीय डेटा एक्सपोर्ट करता है (निर्देशों को रनटाइम पर Capstone द्वारा मूल बाइनरी बाइट्स से डिकोड किया जाता है)
  • FULL: निर्देशों और ऑपरेंड्स को एक्सपोर्ट करता है (स्व-निहित मोड, डिसअसेम्बली के लिए मूल बाइनरी की आवश्यकता नहीं होती)

नोट: FULL मोड अभी तक लागू नहीं किया गया है। केवल LIGHT मोड वर्तमान में कार्यात्मक है।

हेडलेस में एक्सपोर्ट करना

IDA

नोट: इसके लिए एक कार्यशील IDA इंस्टॉलेशन की आवश्यकता होती है।

$ idat -OQuokkaAuto:true -OQuokkaDecompiled:true -A /path/to/hello.i64

सभी उपलब्ध विकल्पों का वर्णन उपयोग में किया गया है।

नोट: एक्सपोर्ट की गति बढ़ाने के लिए idat का उपयोग ida के बजाय किया जाता है क्योंकि ग्राफ़िकल इंटरफ़ेस की आवश्यकता नहीं होती है।

Ghidra

$ analyzeHeadless /tmp/proj Test \
    -import /path/to/binary \
    -scriptPath ghidra_extension/src/script/ghidra_scripts \
    -postScript QuokkaExportHeadless.java \
    --out=/path/to/output.quokka --mode=LIGHT

अधिक विवरण के लिए Ghidra एक्सटेंशन README देखें।

Binary Ninja

नोट: Binary Ninja API के हेडलेस उपयोग के लिए व्यावसायिक लाइसेंस की आवश्यकता होती है। यदि लाइसेंस नहीं है, तो इसके बजाय Binary Ninja UI के अंदर एक्सपोर्ट कमांड का उपयोग करें।

$ python binaryninja_extension/export_headless.py /path/to/binary \
    -o /path/to/output.quokka --mode LIGHT

अधिक विवरण के लिए BinaryNinja एक्सटेंशन README देखें।

CLI में एक्सपोर्ट करना

Quokka एक CLI उपयोगिता टूल प्रदान करता है जो एक या अधिक फ़ाइलों और/या निर्देशिकाओं (प्रत्येक निर्देशिका में सभी निष्पादन योग्य फ़ाइलें) को समानांतर में स्वचालित रूप से एक्सपोर्ट करता है। यह IDA Pro और Ghidra दोनों बैकएंड का समर्थन करता है:

$ quokka-cli --backend ghidra -t 8 dir/
$ quokka-cli --backend ida --ida-path /opt/ida -t 8 dir/
$ quokka-cli -t 8 dir/                          # auto-detect backend
$ quokka-cli -o "%p/exports/%f.quokka" binary   # custom output directory
$ quokka-cli -b ida -o %F_ida.quokka -t 4 dir/  # Using relative path
$ quokka-cli -t 8 dir1/ dir2/ binary1 binary2   # multiple inputs

डिफ़ॉल्ट रूप से, .quokka फ़ाइल इनपुट बाइनरी के बगल में रखी जाती है (उदा. /usr/bin/ls से /usr/bin/ls.quokka उत्पन्न होता है)। इसे शाब्दिक पथ या प्रति फ़ाइल विस्तारित टेम्पलेट के साथ ओवरराइड करने के लिए -o का उपयोग करें (%f = स्टेम, %F = फ़ाइलनाम, %p = पैरेंट निर्देशिका, %P = पूर्ण पथ, %e = एक्सटेंशन, %% = शाब्दिक %)।

सभी विकल्पों के लिए quokka-cli --help चलाएँ। मुख्य फ्लैग में शामिल हैं:

  • -b, --backend डिसअसेम्बलर बैकएंड चुनने के लिए (ida, ghidra, या auto)
  • -i, --ida-path IDA इंस्टॉलेशन निर्देशिका का पथ प्रदान करने के लिए (idat वाला फ़ोल्डर)
  • --ghidra-path Ghidra इंस्टॉलेशन निर्देशिका प्रदान करने के लिए (GHIDRA_INSTALL_DIR को ओवरराइड करता है)
  • -o, --output आउटपुट पथ या टेम्पलेट सेट करने के लिए (डिफ़ॉल्ट: %F.quokka)
  • -m, --mode एक्सपोर्ट मोड चुनने के लिए (light या full)
  • --decompiled डीकंपाइल्ड कोड एक्सपोर्ट सक्षम करने के लिए (केवल IDA)
  • -v, --verbose वर्बोज़ लॉगिंग सक्षम करने के लिए

एक्सपोर्ट फ़ाइल लोड करना

import quokka
from quokka.types import Disassembler

# Directly from the binary (auto-detects available backend)
prog = quokka.Program.from_binary("/bin/ls")

# Explicitly choose a backend
prog = quokka.Program.from_binary("/bin/ls", disassembler=Disassembler.GHIDRA)
prog = quokka.Program.from_binary("/bin/ls", disassembler=Disassembler.IDA)

# From the exported file
prog = quokka.Program("ls.quokka",  # the exported file
                      "/bin/ls")    # the original binary

टाइप्स संपादित करना और जोड़ना

# Add new types from C declarations
prog.add_type("struct context { int id; char name[64]; };")
prog.add_type("enum status { OK=0, ERROR=1 };")

# Save the .quokka file
prog.write()

# Or apply changes (including new types) back to the IDA database
prog.commit(database_file="ls.i64", overwrite=True)
टूल डाउनलोड करें