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

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

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

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

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

श्रेणियाँ

सभी श्रेणियाँ देखें
Loading categories
Binvariants — बंद-स्रोत बाइनरीज़ के लिए रजिस्टर-स्तरीय अपरिवर्तनीय-निर्देशित फ़ज़िंग ढाँचा, जो संभावित अपरिवर्तनीय उल्लंघनों का लाभ उठाकर बाइनरी निष्पादन योग्य फ़ाइलों में क्रैश और बग्स की खोज करता है। | Kitploit
उपकरण/GitHubGitHub/futureslab/binvariants
भेद्यता विश्लेषणशोषणफज़िंगबाइनरी विश्लेषण
GitHubfutureslab/binvariants

Binvariants

बंद-स्रोत बाइनरीज़ के लिए रजिस्टर-स्तरीय अपरिवर्तनीय-निर्देशित फ़ज़िंग ढाँचा, जो संभावित अपरिवर्तनीय उल्लंघनों का लाभ उठाकर बाइनरी निष्पादन योग्य फ़ाइलों में क्रैश और बग्स की खोज करता है।

रिपॉजिटरी देखें
51293 महीने पहलेअभी तक समीक्षित नहीं

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

सभी देखें →

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

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

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

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

Binvariants: बाइनरीज़ के लिए रजिस्टर-स्तरीय इनवेरिएंट-निर्देशित फ़ज़िंग

Binvariants logo

यह रिपॉज़िटरी Binvariants के लिए स्रोत कोड प्रदान करती है: एक प्रोटोटाइप फ़ज़िंग फ़्रेमवर्क जो बाइनरीज़ को फ़ज़ करने के लिए रजिस्टर-स्तरीय संभावित इनवेरिएंट उल्लंघनों का उपयोग करता है।

यह कार्य हमारे पेपर Binvariants: Enhancing Fuzzing of Closed-source Binary Executables via Register-level Likely Invariants | Slides में प्रस्तुत किया गया है, जो 2026 ACM International Conference on the Foundations of Software Engineering (FSE’26) में प्रकाशित हो रहा है।

  • Binvariants इंस्टॉल करना
  • Binvariants का उपयोग करना
  • अतिरिक्त नोट्स
  • बग ट्रॉफी केस


Binvariants workflow
Binvariants workflow

इस रिपॉज़िटरी को उद्धृत करना: @article{yang:binvariants, title = {Binvariants: Enhancing Fuzzing of Closed-source Binary Executables via Register-level Likely Invariants}, author = {Zao Yang and Stefan Nagy}, year = {2026}, issue_date = {July 2026}, publisher = {Association for Computing Machinery}, address = {New York, NY, USA}, volume = {3}, number = {FSE}, journal = {Proc. ACM Softw. Eng.}}
डेवलपर्स: Zao Yang ([email protected]) और Stefan Nagy ([email protected])
लाइसेंस: MIT License
अस्वीकरण: यह सॉफ़्टवेयर बिना किसी वारंटी के जैसा है वैसा ही प्रदान किया गया है।

Binvariants इंस्टॉल करना

Binvariants AFL++ और QEMU-AFL के ऊपर बनाया गया है। Binvariants सेट अप करने से पहले इन प्रोजेक्ट्स द्वारा आवश्यक निर्भरताएँ इंस्टॉल करें:

sudo apt-get update
sudo apt-get install -y build-essential python3-dev automake cmake git flex bison libglib2.0-dev libpixman-1-dev python3-setuptools cargo libgtk-3-dev
# try to install llvm-18 and install the distro default if that fails
sudo apt-get install -y lld-18 llvm-18 llvm-18-dev clang-18 || sudo apt-get install -y lld llvm llvm-dev clang
sudo apt-get install -y gcc-$(gcc --version|head -n1|sed 's/\..*//'|sed 's/.* //')-plugin-dev libstdc++-$(gcc --version|head -n1|sed 's/\..*//'|sed 's/.* //')-dev
sudo apt-get install -y meson ninja-build # for QEMU mode

Binvariants में दो घटक शामिल हैं:

  • 1-Invariant_Learner/
  • 2-Fuzzer/

प्रत्येक को बनाने के लिए, उनके संबंधित निर्देशिका में जाएँ और निम्नलिखित कमांड चलाएँ:

./1_patch.sh
./2_build.sh

Binvariants का उपयोग करना

Example/ में Binvariants का उपयोग करके nconvert बाइनरी को फ़ज़ करने के लिए उदाहरण स्क्रिप्ट और परीक्षण केस शामिल हैं। आप अन्य बाइनरी को फ़ज़ करने के लिए स्क्रिप्ट को संशोधित कर सकते हैं।

सेटअप

Binvariants का उपयोग करने से पहले, ASLR को अक्षम करें, क्योंकि इसे invariant learning और fuzzing के बीच सुसंगत बेसिक ब्लॉक पतों की आवश्यकता होती है:

sudo sysctl -w kernel.randomize_va_space=0

रजिस्टर-स्तरीय संभावित इनवेरिएंट्स (RLIs) सीखना

इनवेरिएंट्स सीखने के लिए, चलाएँ:

./Example/1-learn_invs.sh [Binvariants_Root]

अनुमानित RLI को 1-learn_invs.sh में BINV_TRACES_DIR द्वारा निर्दिष्ट निर्देशिका में सहेजा जाएगा, जिसका नाम होगा: [PROGRAM]_trace_qemu_invs।

RLI के साथ फ़ज़िंग

Binvariants के साथ फ़ज़िंग शुरू करने के लिए, चलाएँ:

./Example/2-fuzz.sh [Binvariants_Root] [Fuzz_Time] [Trial_Number]

उदाहरण के लिए, Binvariants की रूट डायरेक्टरी से 48-घंटे के फ़ज़िंग अभियान का पहला परीक्षण चलाएँ:

./Example/2-fuzz.sh $PWD 48h 1

अतिरिक्त नोट्स

नीचे Binvariants में संभावित संवर्द्धन दिए गए हैं।

अनुकूली रूप से इनवेरिएंट्स सीखना

वर्तमान में, Binvariants फ़ज़िंग से पहले इनवेरिएंट्स सीखता है और फिर फ़ज़िंग को अलग से चलाता है। एक संभावित संवर्द्धन यह है कि फ़ज़िंग के दौरान इनवेरिएंट्स सीखे जाएँ और उल्लंघन होने पर उन्हें अपडेट किया जाए, जिससे फ़ीडबैक समय के साथ विकसित हो सके।

संभावित डिज़ाइन विचार:

  1. यदि किसी टेस्ट केस के निष्पादन के दौरान इनवेरिएंट्स अपडेट किए जाते हैं जो बाद में क्रैश हो जाता है या टाइम आउट हो जाता है, तो उस अपडेट को वापस लेना पड़ सकता है। एक व्यावहारिक समाधान यह है कि अपडेट को इनवेरिएंट्स की एक प्रति पर लागू किया जाए और उन्हें केवल तभी कमिट किया जाए जब टेस्ट केस सामान्य रूप से पूरा हो (अर्थात, FSRV_RUN_OK)।
  2. जैसे-जैसे फ़ज़िंग चलती है और इनवेरिएंट्स अपडेट होते हैं, उल्लंघन स्वाभाविक रूप से कम बार होते जाएँगे। इससे यह जोखिम है कि AFL++ बार-बार प्रारंभिक-चरण के टेस्ट केस चुनता रहेगा (जो अधिक उल्लंघन उत्पन्न करते हैं लेकिन कम विकसित प्रोग्राम स्थितियों को दर्शाते हैं)। यह सुनिश्चित करने के लिए कि बाद के, अधिक प्रतिनिधि टेस्ट केस चुने जाएँ, AFL++ की ओर से weight/perf_score/top_rated समायोजन की आवश्यकता हो सकती है।

क्रॉस-बेसिक-ब्लॉक इनवेरिएंट्स

Binvariants वर्तमान में एकल-ब्लॉक इनवेरिएंट्स पर केंद्रित है। एक संभावित संवर्द्धन क्रॉस-ब्लॉक इनवेरिएंट्स का समर्थन करना है। इसके लिए ब्लॉक सीमाओं के पार रजिस्टर मानों को ट्रैक करने हेतु नई डेटा संरचनाओं की आवश्यकता होती है, साथ ही ब्लॉकों के बीच नियंत्रण हस्तांतरित होने पर उल्लंघनों की जाँच के लिए अतिरिक्त इंस्ट्रुमेंटेशन की आवश्यकता होती है।

बग ट्रॉफी केस

प्रोग्रामरिपोर्ट किए गए बग
nconverthttps://newsgroup.xnview.com/viewtopic.php?t=49598
xls2csvhttps://github.com/vbwagner/catdoc/issues/6, https://github.com/vbwagner/catdoc/issues/7, https://github.com/vbwagner/catdoc/issues/8, https://github.com/vbwagner/catdoc/issues/9, https://github.com/vbwagner/catdoc/issues/10, https://github.com/vbwagner/catdoc/issues/11, https://github.com/vbwagner/catdoc/issues/12, https://github.com/vbwagner/catdoc/issues/13
gpmfhttps://github.com/gopro/gpmf-parser/issues/201, https://github.com/gopro/gpmf-parser/issues/202, https://github.com/gopro/gpmf-parser/issues/203
hdf5https://github.com/HDFGroup/hdf5/issues/5831, https://github.com/HDFGroup/hdf5/issues/5832, https://github.com/HDFGroup/hdf5/issues/5834
stormhttps://github.com/ladislav-zezula/StormLib/issues/397, https://github.com/ladislav-zezula/StormLib/issues/398
mp4splithttps://github.com/axiomatic-systems/Bento4/issues/1038, https://github.com/axiomatic-systems/Bento4/issues/1039
cpdfhttps://github.com/johnwhitington/camlpdf/issues/75
sfconverthttps://github.com/mpruett/audiofile/issues/73

यदि आपको Binvariants का उपयोग करते हुए कोई अन्य बग मिलता है, तो कृपया हमें बताएँ!

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