
हाई ऑक्टेन ट्राइएज विश्लेषण
[][docs]
[
][tests]
[
][codecov]
[
][pypi]
__ __ High Octane Triage Analysis __
|| _||______ __ __________ _____ ||
|| \||___ \__| ____/ ______/___ / ____\ ||
==||=====|| | __/ |/ \ /==| / __ \ __\===]|
'======|| | \ | | \_ _| \ ___/| | ||
||____ /__|___|__/ / | \____]| | ||
=========''====\/=========/ /==|__|=====|__|======'
\ /
\/
बाइनरी रिफाइनरी™ पायथन स्क्रिप्ट्स का एक संग्रह है जो बाइनरी डेटा के रूपांतरणों को लागू करता है, जैसे कि संपीड़न और एन्क्रिप्शन।
हम अक्सर इसे संक्षेप में refinery कहेंगे, जो संबंधित पैकेज का नाम भी है।
स्क्रिप्ट्स को विशेष रूप से stdin से इनपुट पढ़ने और stdout पर आउटपुट लिखने के लिए डिज़ाइन किया गया है।
मुख्य दर्शन यह है कि प्रत्येक स्क्रिप्ट एक इकाई होनी चाहिए इस अर्थ में कि यह एक कार्य करती है,
और व्यक्तिगत इकाइयों को कमांडलाइन पर पाइपिंग ऑपरेटर | के साथ पाइपलाइनों में संयोजित किया जा सकता है ताकि अधिक जटिल कार्य किए जा सकें।
परियोजना का मुख्य फोकस मैलवेयर ट्राइएज है,
और यह कमांडलाइन पर CyberChef जैसा कुछ लागू करने का एक प्रयास है।
एक पायथन वर्चुअल एनवायरनमेंट बनाएं। आपको पायथन 3.11 या बाद का संस्करण चाहिए। रिफाइनरी को इस तरह इंस्टॉल करें:
python -m pip install -U pip
python -m pip install -U binary-refinery[extended]
इकाइयों को -h के साथ चलाएं ताकि आप सीख सकें कि वे कैसे काम करती हैं, [docs][] में grep करें या उन्हें खोजने के लिए binref कमांड का उपयोग करें।
यदि आप इसे क्रिया में देखना चाहते हैं तो [एक हालिया वीडियो][VOD3] देखें।
लेकिन साथ ही, इस readme का बाकी हिस्सा भी पढ़ें।
कोई रिलीज़ शेड्यूल नहीं है, लेकिन रिलीज़ बहुत बार-बार होती हैं और समय-समय पर अपडेट करने की सिफारिश की जाती है। बगफिक्स GIT के बाहर प्रलेखित नहीं हैं, लेकिन अन्य सभी परिवर्तन (यानी नई सुविधाएँ) changelog में प्रलेखित हैं। विशेष रूप से प्रभावशाली रिलीज़ के बारे में अपडेट के लिए मुझे [Mastodon][] पर फॉलो करें।
जब किसी इकाई को -h या --help स्विच के साथ निष्पादित किया जाता है तो जो सहायता टेक्स्ट प्रदर्शित होता है वह उसका मुख्य दस्तावेज़ीकरण है।
[स्वचालित रूप से उत्पन्न दस्तावेज़ीकरण][docs] में शीर्ष स्तर पर प्रत्येक इकाई के लिए उस आउटपुट का संकलन शामिल है,
लेकिन इसमें टूलकिट की तीन मौलिक अवधारणाओं के लिए विशिष्टता भी शामिल है:
[framing][frame], [multibin arguments][argformats], और [meta variables][meta]।
प्रत्येक इकाई के विवरण और सहायता टेक्स्ट की पूर्ण-पाठ खोज कमांड लाइन पर भी उपलब्ध है,
प्रदान किए गए binref कमांड के माध्यम से। इस तथ्य की मान्यता में कि संदर्भ दस्तावेज़ीकरण कुछ हद तक शुष्क हो सकता है,
ट्यूटोरियल्स की एक श्रृंखला तैयार करने का एक चल रहा प्रयास है; मैं उन्हें देखने की बहुत सिफारिश करता हूं।
इसके अलावा, मैं नीचे अतिरिक्त संसाधन (तीसरे पक्ष द्वारा निर्मित कुछ सहित) एकत्र करता हूं।
[!NOTE]
रिफाइनरी अभी भी अल्फा में है और इंटरफ़ेस कभी-कभी बदल सकता है, यानी इकाइयों और पैरामीटर को हटाया या नाम बदला जा सकता है। इसलिए, ऐसा हो सकता है कि पुराने वीडियो और ब्लॉग पोस्ट से विशिष्ट कमांड लाइनें अब काम न करें।
2021/08] [OALabs][OA] ने मुझे [एक फीचर वीडियो में टूलकिट का डेमो देने][VOD1] की अनुमति देने के लिए पर्याप्त दयालुता दिखाई।
वीडियो में, मैं अनिवार्य रूप से
पहले ट्यूटोरियल की सामग्री पर काम करता हूं।2021/11] [Johannes Bader][JB] ने बाइनरी रिफाइनरी के साथ मालस्पैम का विश्लेषण करने के बारे में एक अद्भुत [ब्लॉग पोस्ट][BLOG] लिखा।2024/03] [Malware Analysis For Hedgehogs][MH] ने रिफाइनरी का उपयोग करके [एक XWorm नमूने को अनपैक करने के बारे में एक वीडियो][VOD2] बनाया।2024/11] [the CyberYeti][CY] ने मुझे [स्ट्रीम पर रिफाइनरी प्रस्तुत करने][VOD3] के लिए बुलाया।2025/06] मैं [the CyberYeti][CY] के साथ [फिर से स्ट्रीम पर][VOD4] था, यह थोड़ा अधिक कच्चा है।
यहां जो भी बग आप देख सकते हैं, वे सभी ठीक कर दिए गए हैं। 😉शोकेस में फिर से नीचे दिए गए उदाहरण अनुभाग और ट्यूटोरियल्स के नमूने शामिल हैं।
बाइनरी रिफाइनरी (c) 2019 Jesko Hüttenhain है, और [3-Clause BSD License][license] के तहत प्रकाशित है। इस रिपॉजिटरी में पूर्ण लाइसेंस पाठ की एक प्रति भी शामिल है। यदि आप इसके साथ कुछ ऐसा करना चाहते हैं जो इस लाइसेंस द्वारा कवर नहीं किया गया है, तो कृपया लेखक से संपर्क करने में संकोच न करें।
रिफाइनरी के लिए कम से कम Python 3.11 की आवश्यकता है। इसे अपने स्वयं के [वर्चुअल एनवायरनमेंट][venv] में इंस्टॉल करने की सिफारिश की जाती है: पैकेज बहुत सारी निर्भरताएँ खींच सकता है, और इसे अपने वैश्विक पायथन में इंस्टॉल करना संस्करण संघर्षों के लिए कुछ हद तक प्रवण है। साथ ही, चूंकि टूलकिट बड़ी संख्या में नए कमांड पेश करता है, इस बात की अच्छी संभावना है कि इनमें से कुछ कुछ सिस्टम पर टकराव करेंगे, और उन्हें अपने स्वयं के अलग वर्चुअल एनवायरनमेंट में रखना इसे रोकने का एक तरीका है।
यदि आप चाहते हैं कि सभी रिफाइनरी कमांड हर समय आपके शेल में उपलब्ध हों (यानी कस्टम वर्चुअल एनवायरनमेंट पर स्विच करने की आवश्यकता के बिना),
तो आपके पास इंस्टॉलेशन के लिए एक prefix चुनने का विकल्प भी है,
जिसे हर इंस्टॉल किए गए कमांड शिम के सामने रखा जाएगा।
उदाहरण के लिए, यदि आप r. को अपना prefix चुनते हैं, तो [emit][] इकाई r.emit कमांड के रूप में इंस्टॉल होगी।
एक अतिरिक्त लाभ यह है कि आप r. टाइप कर सकते हैं और सभी उपलब्ध रिफाइनरी कमांड की सूची प्राप्त करने के लिए Tab को दो बार दबा सकते हैं।
हालांकि ध्यान दें कि दस्तावेज़ीकरण में कोई prefix नहीं माना जाता है और रिफाइनरी का विकास लक्ष्य है कि यह अधिकांश सिस्टम पर टकराव न करे।
लेखक prefix का उपयोग नहीं करता है और इस विकल्प को एक सुरक्षा कंबल के रूप में प्रदान करता है।
रिफाइनरी को इंस्टॉल और अपडेट करने का सबसे सीधा तरीका pip के माध्यम से है। सुनिश्चित करें कि आप पहले नवीनतम संस्करण चलाएं:
python -m pip install -U pip
फिर बस रिफाइनरी पैकेज इंस्टॉल करें:
pip install -U binary-refinery
यदि आप सभी इकाइयों के लिए एक prefix चुनना चाहते हैं, तो आप इसे एनवायरनमेंट वेरिएबल REFINERY_PREFIX के माध्यम से निर्दिष्ट कर सकते हैं।
उदाहरण के लिए, निम्नलिखित कमांड लिनक्स पर prefix r. के साथ वर्तमान पायथन एनवायरनमेंट में रिफाइनरी इंस्टॉल करेगा:
REFINERY_PREFIX=r. pip install -U binary-refinery
विंडोज़ पर, आपको निम्नलिखित कमांड चलाने होंगे:
set REFINERY_PREFIX=r.
pip install -U binary-refinery
विशेष prefix ! निर्दिष्ट करने का प्रभाव यह होगा कि कोई शेल कमांड बिल्कुल नहीं बनाई जाएगी,
और बाइनरी रिफाइनरी केवल एक लाइब्रेरी के रूप में इंस्टॉल की जाएगी।
यदि आप वर्तमान रिफाइनरी HEAD इंस्टॉल करना चाहते हैं, तो आप उपरोक्त सभी चरणों को दोहरा सकते हैं, pip पैकेज के बजाय इस रिपॉजिटरी को निर्दिष्ट करके।
उदाहरण के लिए, निम्नलिखित बहुत नवीनतम रिफाइनरी कमिट इंस्टॉल करेगा:
pip install -U git+git://github.com/binref/refinery.git
अंत में, यदि आप [REMnux][remnux-main] का उपयोग कर रहे हैं, तो आप उनके [refinery docker container][remnux] का उपयोग कर सकते हैं।
यदि आप अपने स्थानीय मैलवेयर विश्लेषण [claude][] को बाइनरी रिफाइनरी का उपयोग करना सिखाना चाहते हैं, तो [Binary Refinery Skill][agent] देखें।
निम्नलिखित एक सारांश है कि विभिन्न शेल एनवायरनमेंट वर्तमान में कितने अच्छी तरह समर्थित हैं: