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

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

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

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

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

श्रेणियाँ

सभी श्रेणियाँ देखें
Loading categories
Dna — LLVM आधारित स्थैतिक बाइनरी विश्लेषण ढांचा | Kitploit
उपकरण/GitHubGitHub/colton1skees/dna
स्थैतिक विश्लेषणभेद्यता विश्लेषणकोड विश्लेषणशोषणरिवर्स इंजीनियरिंगडीबगर्सबाइनरी विश्लेषणफर्मवेयर विश्लेषण
GitHubcolton1skees/dna

Dna

LLVM आधारित स्थैतिक बाइनरी विश्लेषण ढांचा

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

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

सभी देखें →

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

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

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

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

Dna

Dna एक स्थिर बाइनरी विश्लेषण ढांचा है जो LLVM के ऊपर निर्मित है। उल्लेखनीय रूप से यह लगभग पूरी तरह से C# में लिखा गया है, जिसमें LLVM, Remill और Souper के लिए प्रबंधित बाइंडिंग शामिल हैं।

कार्यक्षमता

Dna SATURN पेपर से प्रेरित एक पुनरावृत्त नियंत्रण प्रवाह ग्राफ पुनर्निर्माण लागू करता है। यह पुनरावृत्त रूप से रिकर्सिव डिसेंट, लिफ्टिंग (remill का उपयोग करके) और पथ समाधान लागू करता है जब तक कि पूर्ण नियंत्रण प्रवाह ग्राफ़ पुनर्प्राप्त नहीं हो जाता। जम्प टेबल के मामले में, हम संभावित जम्प टेबल लक्ष्यों के सेट को हल करने के लिए Souper और z3 पर आधारित एक पुनरावर्ती एल्गोरिथ्म का उपयोग करते हैं। आप पुनरावृत्त अन्वेषण एल्गोरिथ्म यहाँ और जम्प टेबल समाधान एल्गोरिथ्म यहाँ पा सकते हैं।

एक बार नियंत्रण प्रवाह ग्राफ़ पूरी तरह से अन्वेषित हो जाने के बाद, इसे यहाँ और यहाँ दिए गए एल्गोरिदम का उपयोग करके x86 पर पुन: संकलित किया जा सकता है और बाइनरी में पुनर्स्थापित किया जा सकता है। हालांकि संकलित कोड किसी भी तरह से सुंदर नहीं है, लेकिन इसे तब तक चलना चाहिए जब तक पुनर्प्राप्त नियंत्रण प्रवाह ग्राफ सही है। ऐसा कहने के बाद, यह अभी भी एक शोध प्रोटोटाइप है - बग और किनारे के मामलों की उम्मीद है। नियंत्रण प्रवाह ग्राफ अन्वेषण विफल हो सकता है, उदाहरण के लिए, असीमित जम्प टेबल या अनलिफ्टेबल निर्देशों के मामले में।

कुछ अन्य उल्लेखनीय विशेषताएं:

  • अधिकांश जम्प टेबल का समर्थन करता है, जिसमें MSVC के नेस्टेड या तथाकथित संपीड़ित जम्प टेबल शामिल हैं।
  • SEH के साथ कोड को LLVM IR तक लिफ्ट करने का समर्थन करता है। जब SEH मौजूद होता है, तो try/catch स्टेटमेंट और filter इंट्रिन्सिक्स को नियंत्रण प्रवाह ग्राफ में डाला जाता है। हालांकि पुन: संकलक अभी तक SEH का समर्थन नहीं करता है (SEH प्रविष्टियाँ ठीक नहीं की गई हैं), इसलिए अपवाद क्रैश का कारण बनेंगे।
  • LLVM पास को मूल रूप से C# में लिखने के लिए एक मजबूत API शामिल है। हमारे पास उदाहरण के लिए MemorySSA, LoopInfo, डोमिनेटर ट्री, पास पाइपलाइन प्रबंधन, आदि के लिए बाइंडिंग हैं।
  • LLVM IR और बाइनरी नियंत्रण प्रवाह ग्राफ़ के लिए ग्राफ विज़ुअलाइज़ेशन, graphviz का उपयोग करके या वैकल्पिक रूप से बाइनरी निंजा के लिए एक स्क्रिप्ट जनरेटर।

कुछ सावधानियाँ:

  • केवल x86_64 समर्थित है
  • पुन: संकलित कोड CET अनुरूप नहीं है

निर्भरताएँ

  • LLVM/LLVMSharp
  • Remill
  • Souper
  • AsmResolver
  • Rivers

ध्यान दें कि Dna वर्तमान में LLVM 17 पर आधारित है।

VMProtect

Dna में Dna.BinaryTranslator/VMProtect में स्थित एक VMProtect डिवर्चुअलाइज़ेशन प्लगइन शामिल है। अधिक जानकारी के लिए यह PR देखें।

बिल्डिंग

Dna वर्तमान में LLVM 17 को लक्षित करता है और Windows x64 पर Visual Studio 2022 के साथ बनाए जाने की उम्मीद है। Dna.LLVMInterop को Release मोड में बनाएँ; मूल निर्भरता ट्री Release-बिल्ट है और Debug इंटरऑप बिल्ड समर्थित नहीं हैं।

पूर्वापेक्षाएँ

  • C++/MSBuild टूल के साथ Visual Studio 2022
  • CMake
  • Ninja
  • VS टूलचेन से उपलब्ध clang-cl / LLVM टूल्स
  • EqSat सरलीकरण DLL के लिए Rust/Cargo
  • .NET SDK 8+

नीचे दिए गए कमांड को VS x64 डेवलपर शेल, या PATH पर VS C++ टूल वाले किसी अन्य शेल से चलाएँ।

1. मूल निर्भरताएँ बनाएँ

निर्भरता सुपरबिल्ड Dna.LLVMInterop/dependencies/install में LLVM 17, Remill, Z3, XED, gflags/glog और संबंधित मूल लाइब्रेरी स्थापित करता है।

root@kitploit:~
cmake -S Dna.LLVMInterop/dependencies `
      -B Dna.LLVMInterop/dependencies/build `
      -G Ninja `
      -DCMAKE_BUILD_TYPE=Release `
      -DCMAKE_C_COMPILER=clang-cl `
      -DCMAKE_CXX_COMPILER=clang-cl

cmake --build Dna.LLVMInterop/dependencies/build

यदि कंपाइलर, बिल्ड प्रकार, या CRT सेटिंग्स बदल रहे हैं, तो पुन: कॉन्फ़िगर करने से पहले Dna.LLVMInterop/dependencies/build और Dna.LLVMInterop/dependencies/install दोनों को हटा दें।

2. Rust सरलीकरण DLL बनाएँ

Dna.Example और सरलीकरण प्रोजेक्ट Cargo रिलीज़ आउटपुट से eq_sat.dll की प्रतिलिपि बनाते हैं।

root@kitploit:~
cargo build --manifest-path Simplifier/EqSat/Cargo.toml --release

3. समाधान बनाएँ

root@kitploit:~
& "C:\Program Files\Microsoft Visual Studio\2022\Community\MSBuild\Current\Bin\MSBuild.exe" `
  Dna.sln `
  /restore `
  /p:Configuration=Release `
  /p:Platform=x64 `
  /m
टूल डाउनलोड करें