
एक्सप्लॉइट विकास के लिए AFL++ फ़ज़िंग, क्रॉस-आर्किटेक्चर QEMU एमुलेशन, हार्नेस विकास, Ghidra हेडलेस विश्लेषण, कस्टम म्यूटेटर और पैच तुलना हेतु डेस्कटॉप वर्कबेंच।
Rogue Framework AFL++, क्रॉस-आर्किटेक्चर QEMU फज़िंग, हार्नेस डेवलपमेंट, हल्के Ghidra हेडलेस विश्लेषण, कस्टम म्यूटेटर, और पैच तुलना के लिए एक डेस्कटॉप वर्कबेंच है। यह जानबूझकर एक ऑडिट करने योग्य वर्कबेंच है न कि केवल बटन-आधारित रैपर: हर जनरेट किया गया AFL++ कमांड निष्पादन से पहले दिखाई देता है, और जनरेट किए गए हार्नेस सामान्य सोर्स फ़ाइलें होते हैं जिन्हें शोधकर्ता संपादित कर सकता है। यह "एक्सप्लॉइट डेवलपर्स का BurpSuite" होने वाला है।
Rogue Framework वर्तमान में Linux और Python 3.11+ को PyQt6 के साथ लक्षित करता है।
Kali Linux पर, इंस्टॉलर Python वातावरण सेट करता है, आधिकारिक
AFL++ stable शाखा को क्लोन करता है और उसका पूर्ण वितरण और इंस्ट्रूमेंटेड QEMU
बैकएंड बनाता है, फिर Ghidra headless, native/multiarch GDB, GDB server, QEMU
user/system emulation, कंपाइलर/बिल्ड निर्भरताएँ, एक यूज़र लॉन्चर, और
स्थायी shell PATH प्रविष्टियाँ स्थापित करता है। AFL++ को अनदेखे स्थानीय
AFLplusplus/ निर्देशिका में डाउनलोड किया जाता है और इसे Rogue Framework के हिस्से के रूप में वितरित नहीं किया जाता:
chmod +x install.sh
./install.sh
rogue-framework
इसके साथ सामान्य क्रॉस कंपाइलर और उनके guest sysroots भी इंस्टॉल करें (यह बहुत बड़ा डाउनलोड है):
./install.sh --with-cross-toolchains
इंस्टॉलर idempotent है। मौजूदा इंस्टॉलेशन का ऑडिट करने के लिए उपयोग करें या AFL++/QEMU रीबिल्ड के लिए उपयोग करें। डाउनलोड किए गए checkout को नवीनतम आधिकारिक stable revision पर आगे बढ़ाने के लिए उपयोग करें। इसे डेस्कटॉप यूज़र के रूप में चलाएँ; यह केवल apt पैकेजों के लिए माँगता है। नया लिखा गया PATH पहले से चल रहे पैरेंट shell को नहीं बदल सकता, इसलिए या तो एक नया टर्मिनल खोलें, / source करें, या Rogue को इंस्टॉलर द्वारा छापे गए पूर्ण पथ से लॉन्च करें।
./install.sh --check./install.sh --rebuild-afl./install.sh --update-aflsudo~/.zshrc~/.bashrc~/.local/bin/rogue-frameworkचेकआउट से मैन्युअल स्टार्टअप उपलब्ध रहता है:
python3 run.py
एडिटेबल वातावरण के लिए:
python3 -m pip install -e .
rogue-framework
क्रॉस-आर्किटेक्चर डायनामिक बाइनरीज़ को QEMU_LD_PREFIX के साथ मिलान वाले guest sysroot की आवश्यकता होती है; यह स्वाभाविक रूप से target/वितरण-विशिष्ट है। Ghidra का
analyzeHeadless पथ Tools → External tools के अंतर्गत ओवरराइड किया जा सकता है।
एक .rgp प्रोजेक्ट पठनीय, वर्जन-नियंत्रित JSON है जिसमें पोर्टेबल प्रोजेक्ट परिभाषा होती है। बड़े और परिवर्तनशील आर्टिफैक्ट इसके प्रबंधित साथी वर्कस्पेस में रहते हैं:
example.rgp
example.rgp-work/
workspace.json
project.sqlite3
corpus/
output/
harnesses/
mutators/
analysis/
logs/
runs/
staging/
recovery/
backups/
objects/sha256/
यह विभाजन प्रोजेक्ट फ़ाइलों को समीक्षा योग्य रखता है और क्रैश कॉर्पोरा, निष्कर्षों, विश्लेषण सूचकांकों या Ghidra स्थिति को JSON में एम्बेड करने से बचाता है। workspace.json मेनिफेस्ट को सही वर्कस्पेस पहचान से बाँधता है, जबकि project.sqlite3 परिचालन/अनुक्रमित स्थिति संग्रहीत करता है। प्रबंधित संदर्भ workspace:// उपयोग करते हैं; स्पष्ट रूप से बाहरी संसाधन external:// उपयोग करते हैं। मशीन-स्थानीय टूल पथ और UI स्थिति पोर्टेबल प्रोजेक्ट के बाहर संग्रहीत की जाती हैं।
Save As नई प्रोजेक्ट और वर्कस्पेस पहचान के साथ एक स्वतंत्र क्लोन बनाता है। Rogue खुले दस्तावेज़ को स्विच करने से पहले गंतव्य को स्टेज और मान्य करता है, इसलिए विफल क्लोन स्रोत प्रोजेक्ट को अपरिवर्तित छोड़ देता है। कैननिकल सेव एक सलाहकार राइटर लीज़ के साथ revision/SHA-256 संघर्ष जाँच का उपयोग करता है, पिछले-अच्छे मेनिफेस्ट को संरक्षित करता है, fsync के साथ फ़ाइलों को परमाणु रूप से प्रकाशित करता है, और सक्रिय एडिटर ड्राफ्ट सहित क्रैश-रिकवरी स्नैपशॉट बनाए रखता है। जनरेट किए गए हार्नेस, म्यूटेटर, Ghidra JSON, पैच-डिफ़ परिणाम, और न्यूनतम किए गए निष्कर्ष भी लेनदेनिक रूप से प्रकाशित होते हैं ताकि असफल प्रतिस्थापन पिछले मान्य आर्टिफैक्ट को हटा न सके।
.fuzz प्रोजेक्टRogue लीगेसी schema 0–2 .fuzz मेनिफेस्ट और उनके .fuzz-work साथियों को आयात कर सकता है। लीगेसी स्रोत कभी भी कैननिकल गंतव्य नहीं होता: पहली सेव इसे एक सहोदर .rgp प्रोजेक्ट और .rgp-work वर्कस्पेस में अपग्रेड करती है जबकि मूल लीगेसी फ़ाइलों को बनाए रखती है। नए प्रोजेक्ट और Save As गंतव्य हमेशा .rgp उपयोग करते हैं।