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

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

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

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

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

श्रेणियाँ

सभी श्रेणियाँ देखें
Loading categories
qsynthesis — ग्रेबॉक्स सिंथेसाइज़र जो असेंबली निर्देशों के डीऑबफस्केशन के लिए तैयार किया गया है। | Kitploit
उपकरण/GitHubGitHub/quarkslab/qsynthesis
स्थैतिक विश्लेषणगतिशील विश्लेषण (सैंडबॉक्सिंग)भेद्यता विश्लेषणकोड विश्लेषणरिवर्स इंजीनियरिंगउपयोगिताएँ और फ्रेमवर्कबाइनरी विश्लेषणपेपर और शोध
GitHubquarkslab/qsynthesis

qsynthesis

ग्रेबॉक्स सिंथेसाइज़र जो असेंबली निर्देशों के डीऑबफस्केशन के लिए तैयार किया गया है।

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

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

सभी देखें →

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

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

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

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

Qsynthesis

QSynthesis एक Python3 API है जो बिटवेक्टर एक्सप्रेशनों के I/O आधारित प्रोग्राम सिंथेसिस को करने के लिए है। इसका उद्देश्य कोड डीऑबफस्केशन को सुविधाजनक बनाना है। यह एल्गोरिद्म एक ग्रेबॉक्स दृष्टिकोण है जो ब्लैकबॉक्स I/O आधारित सिंथेसिस और व्हाइटबॉक्स AST सर्च दोनों को मिलाकर सब-एक्सप्रेशनों को सिंथेसाइज़ करता है (यदि रूट नोड को सिंथेसाइज़ नहीं किया जा सकता)।

यह एल्गोरिद्म मूल रूप से BAR अकादमिक कार्यशाला में वर्णित किया गया था:

  • QSynth: A Program Synthesis based Approach for Binary Code Deobfuscation (उपयोग किए गए बेंचमार्क उपलब्ध हैं: यहाँ)

यह कोड निम्नलिखित Black Hat टॉक के भाग के रूप में जारी किया गया है:

  • Greybox Program Synthesis: A New Approach to Attack Dataflow Obfuscation

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

दस्तावेज़ीकरण

इंस्टॉलेशन, उदाहरण, और API दस्तावेज़ीकरण समर्पित दस्तावेज़ीकरण पर उपलब्ध है: Documentation

कार्यक्षमताएँ

मुख्य सिंथेसिस Triton सिंबॉलिक इंजन पर आधारित है जिस पर पूरा फ्रेमवर्क बनाया गया है। यह निम्नलिखित कार्यक्षमताएँ प्रदान करता है:

  • बिटवेक्टर एक्सप्रेशनों का सिंथेसिस
  • SMT के माध्यम से सिंथेसाइज़ किए गए एक्सप्रेशनों की सिमेंटिक समतुल्यता की जाँच करने की क्षमता
  • स्थिरांकों को सिंथेसाइज़ करने की क्षमता (यदि एक्सप्रेशन एक स्थिरांक को एनकोड करता है)
  • एक लर्निंग मेकैनिज़्म के माध्यम से समय के साथ ओरेकल्स (पूर्व-गणना की गई तालिकाओं) को सुधारने की क्षमता
  • सिंथेसाइज़ किए गए एक्सप्रेशन को वापस असेंबली में पुनःसंयोजित करने की क्षमता
  • सिंथेसिस के उपयोग को सुविधाजनक बनाने के लिए REST API के माध्यम से ओरेकल्स को सर्व करने की क्षमता
  • एक IDA प्लगइन जो सिंथेसिस का एकीकरण प्रदान करता है

त्वरित शुरुआत

इंस्टॉलेशन

काम करने के लिए पहले Triton इंस्टॉल करना होगा: इंस्टॉल दस्तावेज़ीकरण। Triton स्वयं को स्वचालित रूप से virtualenv में इंस्टॉल नहीं करता, इसे अपने venv में कॉपी करें या अपने venv को कॉन्फ़िगर करते समय --system-site-packages का उपयोग करें।

फिर:

$ git clone https://github.com/quarkslab/qsynthesis.git
$ cd qsynthesis
$ pip3 install '.[all]'

[all] सभी निर्भरताओं को इंस्टॉल करेगा (हल्के इंस्टॉल के लिए दस्तावेज़ीकरण देखें)।

तालिका निर्माण

सिंथेसिस एल्गोरिद्म के लिए एक व्याकरण (चर और ऑपरेटरों का एक सेट) से प्राप्त ओरेकल तालिकाओं को उत्पन्न करने की आवश्यकता होती है। Qsynthesis इंस्टॉलेशन उपयोगिता qsynthesis-table-manager प्रदान करता है जो तालिकाओं में हेरफेर करने में सक्षम बनाता है। निम्नलिखित कमांड 64 बिट के 3 चरों, 5 ऑपरेटरों और 16 इनपुट के वेक्टर का उपयोग करके एक तालिका उत्पन्न करता है। हम जनरेशन को 5 मिलियन प्रविष्टियों तक सीमित करते हैं।

$ qsynthesis-table-manager generate -bs 64 --var-num 3 --input-num 16 --random-level 5 --ops AND,NEG,MUL,XOR,NOT --watchdog 80 --limit 5000000 my_oracle_table
Generate Table
Watchdog value: 80.0
Depth 2 (size:3) (Time:0m0.23120s)
Depth 3 (size:21) (Time:0m0.23198s)
Depth 4 (size:574) (Time:0m0.26068s)
Depth 5 (size:400858) (Time:0m21.23231s)
Threshold reached, generation interrupted
Stop required
Depth 5 (size:5000002) (Time:4m52.56009s) [RAM:9.52Gb]

नोट: जनरेशन प्रक्रिया RAM का उपभोग करती है, --watchdog एक प्रतिशत सेट करने में सक्षम बनाता है जिसके ऊपर जनरेशन बाधित हो जाता है।

एक बिटवेक्टर एक्सप्रेशन का सिंथेसिस

फिर हम एक प्रतीयमान ऑबफस्केटेड एक्सप्रेशन को सरल बनाने का प्रयास कर सकते हैं:

from qsynthesis import SimpleSymExec, TopDownSynthesizer, InputOutputOracleLevelDB

blob = b'UH\x89\xe5H\x89}\xf8H\x89u\xf0H\x89U\xe8H\x89M\xe0L\x89E\xd8H\x8bE' \
       b'\xe0H\xf7\xd0H\x0bE\xf8H\x89\xc2H\x8bE\xe0H\x01\xd0H\x8dH\x01H\x8b' \
       b'E\xf8H+E\xe8H\x8bU\xe8H\xf7\xd2H\x0bU\xf8H\x01\xd2H)\xd0H\x83\xe8' \
       b'\x02H!\xc1H\x8bE\xe0H\xf7\xd0H\x0bE\xf8H\x89\xc2H\x8bE\xe0H\x01\xd0' \
       b'H\x8dp\x01H\x8bE\xf8H+E\xe8H\x8bU\xe8H\xf7\xd2H\x0bU\xf8H\x01\xd2' \
       b'H)\xd0H\x83\xe8\x02H\t\xf0H)\xc1H\x89\xc8H\x83\xe8\x01]\xc3'

# Perform symbolic execution of the instructions
symexec = SimpleSymExec("x86_64")
symexec.initialize_register('rip', 0x40B160)  # arbitrary address
symexec.initialize_register('rsp', 0x800000)  # arbitrary stack
symexec.execute_blob(blob, 0x40B160)
rax = symexec.get_register_ast("rax")  # retrieve rax register expressions

# Load lookup tables
ltm = InputOutputOracleLevelDB.load("my_oracle_table")

# Perform Synthesis of the expression
synthesizer = TopDownSynthesizer(ltm)
synt_rax, simp = synthesizer.synthesize(rax)

print(f"expression: {rax.pp_str}")
print(f"synthesized expression: {synt_rax.pp_str} [{simp}]")

सीमाएँ

  • सिंथेसिस सटीकता पूर्व-गणना की गई तालिकाओं की पूर्णता से सीमित है
  • तालिका निर्माण RAM खपत से सीमित है
  • पुनःसंयोजन में मेमोरी चर शामिल नहीं हो सकते, गंतव्य अनिवार्य रूप से एक रजिस्टर है और आर्किटेक्चर llvmlite पर निर्भर करता है (इस प्रकार अधिकतर x86_64)
  • कोड ट्रेस-आधारित सिंथेसिस का संदर्भ देता है जो अक्षम है (क्योंकि अंतर्निहित फ्रेमवर्क अभी तक ओपन-सोर्स नहीं है)

लेखक

  • Robin David (@RobinDavid), Quarkslab

योगदानकर्ता

इस शोध में योगदानकर्ताओं को बहुत धन्यवाद:

  • Luigi Coniglio
  • Jonathan Salwan
टूल डाउनलोड करें