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

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

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

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

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

श्रेणियाँ

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

Binvariants

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

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

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

सभी देखें →

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

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

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

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

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

बिनवेरिएंट्स लोगो

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

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

  • बिनवेरिएंट्स स्थापित करना
  • बिनवेरिएंट्स का उपयोग करना
  • अतिरिक्त नोट्स
  • बग ट्रॉफी केस


बिनवेरिएंट्स कार्यप्रवाह
बिनवेरिएंट्स कार्यप्रवाह

इस भंडार का उद्धरण: @inproceedings{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 लाइसेंस
अस्वीकरण:यह सॉफ़्टवेयर बिना किसी वारंटी के 'जैसा है' वैसे ही प्रदान किया जाता है।

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

बिनवेरिएंट्स AFL++ और QEMU-AFL पर निर्मित है। बिनवेरिएंट्स स्थापित करने से पहले इन परियोजनाओं के लिए आवश्यक निर्भरताएँ स्थापित करें:

root@kitploit:~
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

बिनवेरिएंट्स में दो घटक शामिल हैं:

  • 1-Invariant_Learner/
  • 2-Fuzzer/

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

root@kitploit:~
./1_patch.sh
./2_build.sh

बिनवेरिएंट्स का उपयोग करना

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

सेटअप

बिनवेरिएंट्स का उपयोग करने से पहले, ASLR को अक्षम करें, क्योंकि इसे अपरिवर्तनीय सीखने और फ़ज़िंग के बीच सुसंगत बुनियादी ब्लॉक पतों की आवश्यकता होती है:

root@kitploit:~
sudo sysctl -w kernel.randomize_va_space=0

रजिस्टर-स्तरीय संभावित अपरिवर्तनीय (RLI) सीखना

अपरिवर्तनीय सीखने के लिए, चलाएँ:

root@kitploit:~
./Example/1-learn_invs.sh [Binvariants_Root]

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

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

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

root@kitploit:~
./Example/2-fuzz.sh [Binvariants_Root] [Fuzz_Time] [Trial_Number]

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

root@kitploit:~
./Example/2-fuzz.sh $PWD 48h 1

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

नीचे बिनवेरिएंट्स के लिए संभावित वृद्धियाँ दी गई हैं।

अनुकूली रूप से अपरिवर्तनीय सीखना

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

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

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

क्रॉस-बुनियादी-ब्लॉक अपरिवर्तनीय

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

बग ट्रॉफी केस

प्रोग्राम्सरिपोर्ट किए गए बग
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

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

आभार

यह सामग्री राष्ट्रीय विज्ञान फाउंडेशन (NSF) पुरस्कार संख्या 2419798, और रक्षा उन्नत अनुसंधान परियोजना एजेंसी (DARPA) पुरस्कार संख्या FA8750-24-2-0002, उपपुरस्कार संख्या GR105409-SUB00001384 द्वारा समर्थित कार्य पर आधारित है।

टूल डाउनलोड करें
cpdfhttps://github.com/johnwhitington/camlpdf/issues/75
sfconverthttps://github.com/mpruett/audiofile/issues/73