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

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

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

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

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

श्रेणियाँ

सभी श्रेणियाँ देखें
Loading categories
silifuzz — सॉफ़्टवेयर प्रॉक्सी से परीक्षण इनपुट उत्पन्न करके CPU कार्यान्वयनों की फ़ज़िंग करता है, फिर माइक्रोआर्किटेक्चर दोषों और एराटा का पता लगाने के लिए उन्हें वास्तविक हार्डवेयर पर निष्पादित करता है। | Kitploit
उपकरण/GitHubGitHub/google/silifuzz
भेद्यता विश्लेषणफज़िंगहार्डवेयर सुरक्षाबाइनरी विश्लेषण
GitHubgoogle/silifuzz

silifuzz

सॉफ़्टवेयर प्रॉक्सी से परीक्षण इनपुट उत्पन्न करके CPU कार्यान्वयनों की फ़ज़िंग करता है, फिर माइक्रोआर्किटेक्चर दोषों और एराटा का पता लगाने के लिए उन्हें वास्तविक हार्डवेयर पर निष्पादित करता है।

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

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

सभी देखें →

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

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

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

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

SiliFuzz - प्रॉक्सी द्वारा CPU फ़ज़िंग

SiliFuzz क्या है

SiliFuzz एक ऐसी प्रणाली है जो सॉफ़्टवेयर प्रॉक्सी, जैसे CPU सिम्युलेटर या डिसअसेंबलर, को फ़ज़िंग करके CPU दोषों का पता लगाती है, और फिर संचित परीक्षण इनपुट्स (जिन्हें कॉर्पस कहा जाता है) को वास्तविक CPU पर बड़े पैमाने पर निष्पादित करती है। SiliFuzz एक निरंतर विकासशील कार्य है, विवरण के लिए कृपया पेपर देखें।

शब्दावली

सॉफ़्टवेयर फ़ज़िंग और कवरेज

फ़ज़िंग, लक्ष्य (एक एप्लिकेशन या API) को मौके पर उत्पन्न बड़ी संख्या में परीक्षण इनपुट्स के साथ परखने की तकनीक है। इन इनपुट्स को यथासंभव रोचक और विविध बनाना लक्ष्य होता है ताकि किनारे के मामलों (corner cases) को ट्रिगर किया जा सके। दूसरे शब्दों में, फ़ज़िंग का उद्देश्य संयुक्त कोड कवरेज को अधिकतम करना है। कोड कवरेज के अलग-अलग अर्थ हो सकते हैं, जैसे कौन से बेसिक ब्लॉक निष्पादित होते हैं या प्रोग्राम में कौन से पथ लिए जाते हैं।

प्रॉक्सी

SiliFuzz के प्रयोजनों के लिए, प्रॉक्सी कोई भी सॉफ़्टवेयर या हार्डवेयर प्रणाली है जो लक्ष्य CPU के कुछ पहलुओं के समान व्यवहार करती है। उदाहरण के लिए, CPU एमुलेटर या डिसअसेंबलर। जब हम लक्ष्य से सीधे कवरेज जानकारी एकत्र नहीं कर सकते तब प्रॉक्सी की आवश्यकता होती है।

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

कॉर्पस / कॉर्पस शार्ड

लक्ष्य के परीक्षण के लिए उपयोग किए जाने वाले इनपुट्स का संग्रह कॉर्पस कहलाता है।

एक उचित रूप से बड़े कॉर्पस में लाखों इनपुट होते हैं और इसे आमतौर पर कई गैर-अतिव्यापी हिस्सों में विभाजित किया जाता है जिन्हें शार्ड्स कहा जाता है।

स्नैपशॉट

SiliFuzz स्नैपशॉट, CPU निर्देशों के एक छोटे अनुक्रम के साथ-साथ CPU रजिस्टरों और मेमोरी की प्रारंभिक स्थिति का वर्णन करता है ताकि उस अनुक्रम को नियतात्मक रूप से निष्पादित किया जा सके। एक सामान्य स्नैपशॉट में 100 बाइट्स से कम कोड होता है और यह माइक्रोसेकंड में चलता है, लेकिन यह मनमाने ढंग से बड़ा हो सकता है। स्नैपशॉट्स को silifuzz.proto.Snapshot प्रोटोकॉल बफ़र्स के रूप में संग्रहीत किया जाता है।

स्नैपशॉट्स आमतौर पर फ़ज़िंग इंजन द्वारा उत्पन्न इनपुट्स से बनाए जाते हैं। CPU परीक्षण के प्रयोजनों के लिए इन इनपुट्स को फ़िल्टर किया जाता है ताकि सभी गैर-नियतात्मक स्नैपशॉट्स को हटाया जा सके। दस्तावेज़ में और पढ़ें।

अपेक्षित अंतिम स्थिति

अंतिम स्थिति, स्नैपशॉट निष्पादन के अंत में मौजूद होने की अपेक्षित रजिस्टरों और मेमोरी की सामग्री का वर्णन करती है। यदि स्नैपशॉट विभिन्न CPU माइक्रोआर्किटेक्चर पर अलग-अलग निष्पादित होता है तो उसकी कई अपेक्षित अंतिम स्थितियाँ होंगी।

स्नैप

स्नैप (Snap), स्नैपशॉट का एक इन-मेमोरी प्रतिनिधित्व है जिसे रनर द्वारा आसानी से लोड और निष्पादित किया जा सकता है। स्नैप्स आमतौर पर रीडिंग रनर द्वारा डिस्क से लोड किए जाते हैं। स्नैप का डिस्क-प्रारूप अनिवार्य रूप से इन-मेमोरी प्रारूप के समान होता है, सिवाय इसके कि नेटिव पॉइंटर्स को ऑफ़सेट से बदल दिया जाता है। विवरण के लिए यह हेडर देखें। इस प्रारूप को अक्सर रिलोकेटेबल कहा जाता है। प्रत्येक स्नैप में ठीक एक अपेक्षित अंतिम स्थिति होती है, अर्थात स्नैप्स माइक्रोआर्किटेक्चर-विशिष्ट होते हैं। दस्तावेज़ में और पढ़ें।

रनर

रनर एकल CPU कोर के परीक्षण के लिए एक बाइनरी है। एक रनर कॉर्पस शार्ड का उपभोग करता है, उसमें यादृच्छिक स्नैप्स को बार-बार निष्पादित करता है और जाँचता है कि अपेक्षित अंतिम स्थिति प्राप्त हुई है या नहीं। रनर एक एकल-थ्रेडेड प्रक्रिया है।

ऑर्केस्ट्रेटर

ऑर्केस्ट्रेटर एक ऐसी प्रक्रिया है जो कई रनरों को संचालित करती है। सामान्य परिस्थिति में ऑर्केस्ट्रेटर प्रति लॉजिकल CPU कोर एक रनर को लगातार निष्पादित करेगा, और व्यक्तिगत रनर प्रक्रियाओं द्वारा उत्पन्न किसी भी विफलता को एकत्र कर रिपोर्ट करेगा।

समर्थित प्लेटफ़ॉर्म और माइक्रोआर्किटेक्चर

समर्थित माइक्रोआर्किटेक्चर की सूची के लिए यह फ़ाइल देखें।

SiliFuzz x86_64 और aarch64 Linux प्रणालियों पर चलता है। इसका परीक्षण Linux कर्नेल संस्करण 5.x और 6.x के साथ किया गया है। इसकी कोई गारंटी नहीं है कि यह पुराने कर्नेल संस्करणों के साथ संगत है। झूठे सकारात्मक परिणामों से बचने के लिए लिगेसी vsyscall ABI को बंद किया जाना चाहिए।

ट्रॉफ़ीज़

SiliFuzz द्वारा खोजे गए बग्स और दोषों की एक असंपूर्ण सूची।

बग्स

लॉजिक बग एक विशेष CPU माइक्रोआर्किटेक्चर या स्टेपिंग में निहित अमान्य CPU व्यवहार है। SiliFuzz ने निम्नलिखित बग्स की पहचान की है:

  • CVE-2021-26339
  • Erratum #1386
  • Erratum #1468
  • Erratum #3442699 for ARM Neoverse V2
  • Erratum #3213672 for ARM Cortex-X3

दोष

एक (विद्युतीय) दोष एक अमान्य CPU व्यवहार है जो केवल एक या कई चिप्स पर होता है। SiliFuzz ने निम्नलिखित दोष पाए हैं जिन्हें हमने पेपर में वर्णित किया है:

  • F2XM1 दोष। पेपर / परिशिष्ट A
  • अवैध निर्देश का ओवरशूट। पेपर / परिशिष्ट B
  • FCOS गलत गणना करता है। पेपर / परिशिष्ट C
  • लापता x87 डेटा पॉइंटर अपडेट। पेपर / परिशिष्ट D

संबंधित परियोजनाएँ

  • Centipede Google में विकसित एक फ़ज़िंग इंजन है जो CPU एमुलेटर जैसे बड़े और धीमे लक्ष्यों को फ़ज़ करने के लिए है।

प्रारंभिक कार्य

प्रारंभिक कार्य (Bazel के लिए)

git clone https://github.com/google/silifuzz.git && cd silifuzz
SILIFUZZ_SRC_DIR=`pwd`
./install_build_dependencies.sh  # Currently, works for the latest Ubuntu only.
bazel build -c opt @silifuzz//tools:{snap_corpus_tool,fuzz_filter_tool,snap_tool,silifuzz_platform_id,simple_fix_tool_main} \
     @silifuzz//runner:reading_runner_main_nolibc \
     @silifuzz//orchestrator:silifuzz_orchestrator_main
SILIFUZZ_BIN_DIR=`pwd`/bazel-bin
cd "${SILIFUZZ_BIN_DIR}"

NOTE: आप होस्ट सिस्टम को प्रदूषित करने से बचने के लिए Docker कंटेनर का उपयोग कर सकते हैं: docker run -it --tty --security-opt seccomp=unconfined --mount type=bind,source=${SILIFUZZ_SRC_DIR},target=/app ubuntu:noble /bin/bash -c "cd /app && ./install_build_dependencies.sh && bazel build ... && bazel test ..."

प्रारंभिक कार्य (Unicorn लक्ष्य को फ़ज़ करना)

Bazel के लिए, निम्नलिखित कमांड का उपयोग करें।

cd "${SILIFUZZ_SRC_DIR}"
COV_FLAGS_FILE="$(bazel info output_base)/external/fuzztest+/centipede/clang-flags.txt"
bazel build -c opt --copt=-UNDEBUG --dynamic_mode=off \
  --per_file_copt=unicorn/.*@$(xargs < "${COV_FLAGS_FILE}" |sed -e 's/,/\\,/g' -e 's/ /,/g') @//proxies:unicorn_x86_64
bazel build -c opt @fuzztest//centipede:centipede
mkdir -p /tmp/wd

# Fuzz the Unicorn proxy under Centipede 1000 times with parallelism of 30.
"${SILIFUZZ_BIN_DIR}/external/fuzztest+/centipede/centipede" \
  --binary="${SILIFUZZ_BIN_DIR}/proxies/unicorn_x86_64" \
  --workdir=/tmp/wd \
  -j=30 --num_runs=1000

NOTE: कृपया फ़ज़िंग इंजन को कुशलतापूर्वक चलाने के तरीके के लिए Centipede दस्तावेज़ देखें।

उपकरण

silifuzz_platform_id

यह सहायक उपकरण यह जाँचने के लिए है कि आप जिस मशीन पर चल रहे हैं वह समर्थित है या नहीं।

$ ${SILIFUZZ_BIN_DIR}/tools/silifuzz_platform_id --short
टूल डाउनलोड करें