
एक्सप्लॉइट विकास के लिए AFL++ फ़ज़िंग, क्रॉस-आर्किटेक्चर QEMU एमुलेशन, हार्नेस विकास, Ghidra हेडलेस विश्लेषण, कस्टम म्यूटेटर और पैच तुलना हेतु डेस्कटॉप वर्कबेंच।
Rogue Framework, AFL++, क्रॉस-आर्किटेक्चर QEMU फ़ज़िंग, हार्नेस डेवलपमेंट, हल्के Ghidra हेडलेस विश्लेषण, कस्टम म्यूटेटर, और पैच तुलना के लिए एक डेस्कटॉप वर्कबेंच है। यह जानबूझकर एक ऑडिट-योग्य वर्कबेंच है, न कि केवल बटन-आधारित रैपर: हर जनरेट किया गया AFL++ कमांड निष्पादन से पहले दिखाई देता है, और जनरेट किए गए हार्नेस सामान्य स्रोत फ़ाइलें होते हैं जिन्हें शोधकर्ता संपादित कर सकता है। इसे "एक्सप्लॉइट डेवलपर्स का BurpSuite" होना चाहिए
Rogue Framework वर्तमान में Linux और PyQt6 के साथ Python 3.11+ को लक्षित करता है।
Kali Linux पर, इंस्टॉलर Python वातावरण सेट करता है, आधिकारिक
AFL++ stable ब्रांच को क्लोन करता है और उसका पूर्ण वितरण और इंस्ट्रूमेंटेड QEMU
बैकएंड बनाता है, फिर Ghidra हेडलेस, नेटिव/मल्टीआर्क GDB, GDB सर्वर, QEMU
यूज़र/सिस्टम एमुलेशन, कंपाइलर/बिल्ड निर्भरताएँ, एक यूज़र लॉन्चर, और
स्थायी शेल PATH प्रविष्टियाँ इंस्टॉल करता है। AFL++ को अनदेखी की गई स्थानीय
AFLplusplus/ डायरेक्टरी में डाउनलोड किया जाता है और इसे Rogue Framework के हिस्से के रूप में वितरित नहीं किया जाता है:
chmod +x install.sh
./install.sh
rogue-framework
सामान्य क्रॉस कंपाइलर और उनके गेस्ट सिसरूट भी इंस्टॉल करें (यह काफ़ी बड़ा डाउनलोड है), इसके साथ:
./install.sh --with-cross-toolchains
इंस्टॉलर idempotent है। किसी मौजूदा इंस्टॉलेशन का ऑडिट करने के लिए ./install.sh --check का उपयोग करें या AFL++/QEMU को ज़बरदस्ती फिर से बनाने के लिए ./install.sh --rebuild-afl का उपयोग करें।
डाउनलोड किए गए checkout को नवीनतम आधिकारिक स्थिर रिवीज़न तक स्पष्ट रूप से fast-forward करने के लिए ./install.sh --update-afl का उपयोग करें।
इसे डेस्कटॉप उपयोगकर्ता के रूप में चलाएँ; यह केवल apt पैकेजों के लिए sudo का अनुरोध करता है। नव लिखा गया PATH पहले से चल रहे पैरेंट शेल को बदल नहीं सकता, इसलिए या तो एक नया टर्मिनल खोलें, ~/.zshrc/~/.bashrc को source करें, या इंस्टॉलर द्वारा प्रिंट किए गए निरपेक्ष ~/.local/bin/rogue-framework पथ के माध्यम से Rogue लॉन्च करें।
checkout से मैन्युअल स्टार्टअप अभी भी उपलब्ध है:
python3 run.py
संपादन योग्य वातावरण के लिए:
python3 -m pip install -e .
rogue-framework
क्रॉस-आर्किटेक्चर डायनामिक बाइनरीज़ के लिए QEMU_LD_PREFIX के साथ चयनित एक मेल खाता गेस्ट सिसरूट आवश्यक है; यह स्वाभाविक रूप से लक्ष्य/वितरण-विशिष्ट है। 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 खुले दस्तावेज़ को स्विच करने से पहले गंतव्य को स्टेज और मान्य करता है, इसलिए विफल क्लोन स्रोत प्रोजेक्ट को अपरिवर्तित छोड़ देता है। कैनोनिकल सेव एक सलाहकार राइटर लीज़ के साथ-साथ रिवीजन/SHA-256 विरोध जाँच का उपयोग करते हैं, पिछले-अच्छे मैनिफ़ेस्ट को संरक्षित करते हैं, fsync के साथ फ़ाइलों को परमाणु रूप से प्रकाशित करते हैं, और सक्रिय एडिटर ड्राफ्ट सहित क्रैश-रिकवरी स्नैपशॉट बनाए रखते हैं। जनरेट किए गए हार्नेस, म्यूटेटर, Ghidra JSON, पैच-डिफ परिणाम, और न्यूनतम किए गए निष्कर्ष भी लेन-देन के रूप में प्रकाशित किए जाते हैं ताकि विफल प्रतिस्थापन पूर्व वैध आर्टिफैक्ट को न हटाए।
.fuzz प्रोजेक्टRogue लेगेसी स्कीमा 0–2 .fuzz मैनिफ़ेस्ट और उनके .fuzz-work साथियों को आयात कर सकता है। लेगेसी स्रोत कभी भी कैनोनिकल गंतव्य नहीं होता: पहला सेव इसे मूल लेगेसी फ़ाइलों को बनाए रखते हुए एक सहोदर .rgp प्रोजेक्ट और .rgp-work वर्कस्पेस में अपग्रेड करता है। नए प्रोजेक्ट और Save As गंतव्य हमेशा .rgp का उपयोग करते हैं।