
تحليل الفرز عالي الأوكتان
[][docs]
[
][tests]
[
][codecov]
[
][pypi]
__ __ High Octane Triage Analysis __
|| _||______ __ __________ _____ ||
|| \||___ \__| ____/ ______/___ / ____\ ||
==||=====|| | __/ |/ \ /==| / __ \ __\===]|
'======|| | \ | | \_ _| \ ___/| | ||
||____ /__|___|__/ / | \____]| | ||
=========''====\/=========/ /==|__|=====|__|======'
\ /
\/
إن Binary Refinery™ عبارة عن مجموعة من سكربتات Python التي تنفذ تحويلات على البيانات الثنائية مثل الضغط والتشفير.
غالبًا ما نشير إليها ببساطة باسم refinery، وهو أيضًا اسم الحزمة المقابلة.
صُممت هذه السكربتات لتقرأ المدخلات حصريًا من stdin وتكتب المخرجات إلى stdout.
الفلسفة الأساسية هي أن كل سكربت يجب أن يكون وحدة بمعنى أنه يقوم بمهمة واحدة،
ويمكن دمج الوحدات الفردية في خطوط أنابيب باستخدام عامل الأنابيب | على سطر الأوامر لتنفيذ مهام أكثر تعقيدًا.
التركيز الرئيسي للمشروع هو فرز البرمجيات الخبيثة،
وهو محاولة لتنفيذ شيء مثل CyberChef على سطر الأوامر.
أنشئ بيئة Python افتراضية. تحتاج إلى Python 3.11 أو أحدث. ثبّت refinery هكذا:
python -m pip install -U pip
python -m pip install -U binary-refinery[extended]
شغّل الوحدات مع -h لمعرفة كيفية عملها، أو ابحث في [docs][] أو استخدم الأمر binref للعثور عليها.
شاهد [فيديو حديثًا][VOD3] إذا أردت رؤيتها أثناء العمل.
ولكن أيضًا، اقرأ بقية هذا الملف التعريفي.
لا يوجد جدول إصدارات، لكن الإصدارات تصدر بشكل متكرر جدًا ويوصى بالتحديث بشكل دوري. لا يتم توثيق إصلاحات الأخطاء خارج GIT، لكن جميع التغييرات الأخرى (أي الميزات الجديدة) موثقة في سجل التغييرات. تابعني على [Mastodon][] للحصول على تحديثات حول الإصدارات ذات التأثير الكبير.
نص المساعدة الذي يظهر عند تنفيذ وحدة باستخدام المفتاح -h أو --help هو توثيقها الرئيسي.
يحتوي [التوثيق المُنشأ تلقائيًا][docs] على تجميع لهذا الناتج لكل وحدة في المستوى الأعلى،
لكنه يحتوي أيضًا على مواصفات المفاهيم الثلاثة الأساسية لمجموعة الأدوات:
[التأطير][frame]، و[وسائط multibin][argformats]، و[المتغيرات الوصفية][meta].
يتوفر أيضًا البحث النصي الكامل في الوصف ونص المساعدة لكل وحدة على سطر الأوامر،
عبر الأمر binref المرفق. وإدراكًا لحقيقة أن التوثيق المرجعي قد يكون جافًا إلى حد ما،
هناك جهد مستمر لإنتاج سلسلة من الدروس التعليمية؛ أوصي بشدة بالاطلاع عليها.
علاوة على ذلك، أجمع موارد إضافية (بما في ذلك بعض الموارد التي أنتجها أطراف ثالثة) أدناه.
[!NOTE]
لا يزال Refinery في مرحلة alpha وقد تتغير الواجهة أحيانًا، أي يمكن إزالة الوحدات والمعاملات أو إعادة تسميتها. لذلك، قد يحدث أن أسطر أوامر معينة من فيديوهات ومنشورات مدونات أقدم لم تعد تعمل.
2021/08] كان [OALabs][OA] لطيفًا بما يكفي ليسمح لي [بعرض مجموعة الأدوات في فيديو مميز][VOD1].
في الفيديو، أعمل أساسًا على محتويات
الدرس التعليمي الأول.2021/11] كتب [Johannes Bader][JB] [منشور مدونة][BLOG] مذهلًا حول تحليل malspam باستخدام binary refinery.2024/03] أنتج [Malware Analysis For Hedgehogs][MH] [فيديو حول فك تغليف عينة XWorm][VOD2] باستخدام refinery.2024/11] استضافني [the CyberYeti][CY] [على البث لتقديم refinery][VOD3].2025/06] كنت [على البث مرة أخرى][VOD4] مع [the CyberYeti][CY]، هذا الفيديو أكثر عفوية قليلًا.
جميع الأخطاء التي يمكنك رؤيتها هنا تم إصلاحها. 😉تشمل العروض مرة أخرى عينات من قسم الأمثلة أدناه والدروس التعليمية.
إن Binary Refinery هو (c) 2019 Jesko Hüttenhain، ومنشور تحت [ترخيص BSD ثلاثي البنود][license]. يحتوي هذا المستودع أيضًا على نسخة من نص الترخيص الكامل. إذا أردت القيام بشيء غير مشمول بهذا الترخيص، فلا تتردد في التواصل مع المؤلف.
يتطلب refinery على الأقل Python 3.11. يوصى بتثبيته في [بيئة افتراضية][venv] خاصة به: يمكن للحزمة أن تجلب الكثير من التبعيات، وتثبيتها في Python العام لديك قد يؤدي إلى تعارضات في الإصدارات. أيضًا، نظرًا لأن مجموعة الأدوات تُدخل عددًا كبيرًا من الأوامر الجديدة، فهناك احتمال جيد أن يتعارض بعضها على بعض الأنظمة، وإبقاؤها في بيئة افتراضية منفصلة خاصة بها هو إحدى طرق منع ذلك.
إذا أردت أن تكون جميع أوامر refinery متاحة في shell لديك في جميع الأوقات (أي دون الحاجة إلى التبديل إلى بيئة افتراضية مخصصة)،
فلديك أيضًا خيار اختيار بادئة للتثبيت،
والتي ستوضع أمام كل أمر shim يتم تثبيته.
على سبيل المثال، إذا اخترت r. كبادئة، فسيتم تثبيت وحدة [emit][] كأمر r.emit.
من الفوائد الإضافية أنه يمكنك كتابة r. والضغط على Tab مرتين للحصول على قائمة بجميع أوامر refinery المتاحة.
لاحظ مع ذلك أنه لا يتم افتراض أي بادئة في التوثيق، وأنه هدف تطويري لـ refinery هو عدم التعارض على معظم الأنظمة.
لا يستخدم المؤلف بادئة ويوفر هذا الخيار كشبكة أمان.
أبسط طريقة لتثبيت refinery وتحديثه هي عبر pip. تأكد من تشغيل أحدث إصدار أولًا:
python -m pip install -U pip
ثم ثبّت حزمة refinery فقط:
pip install -U binary-refinery
إذا أردت اختيار بادئة لجميع الوحدات، يمكنك تحديدها عبر متغير البيئة REFINERY_PREFIX.
على سبيل المثال، سيثبّت الأمر التالي refinery في بيئة Python الحالية مع البادئة r. على Linux:
REFINERY_PREFIX=r. pip install -U binary-refinery
على Windows، ستحتاج إلى تشغيل الأوامر التالية:
set REFINERY_PREFIX=r.
pip install -U binary-refinery
تحديد البادئة الخاصة ! سيكون له تأثير عدم إنشاء أي أوامر shell على الإطلاق،
وسيتم تثبيت binary refinery فقط كمكتبة.
إذا أردت تثبيت HEAD الحالي لـ refinery، يمكنك تكرار جميع الخطوات أعلاه، مع تحديد هذا المستودع بدلًا من حزمة pip.
على سبيل المثال، سيثبّت التالي أحدث commit في refinery:
pip install -U git+git://github.com/binref/refinery.git
أخيرًا، إذا كنت تستخدم [REMnux][remnux-main]، يمكنك استخدام [حاوية refinery docker][remnux] الخاصة بهم.
إذا أردت تعليم [claude][] المحلي الخاص بتحليل البرمجيات الخبيثة لديك كيفية استخدام binary refinery، فراجع [Binary Refinery Skill][agent].
فيما يلي ملخص لمدى دعم بيئات shell المختلفة حاليًا:
| Shell | Platform | State | Comment |
|---|---|---|---|
| Bash | Posix | 🔵 Good | Used occasionally by the author. |
| CMD | Windows | 🔵 Good | Used extensively by the author. |
| PowerShell | Windows | 🟡 Reasonable | It [just works if the PowerShell version is at least 7.4.][psh1] |
| Zsh | Posix | 🟠 Minor Issues | Following a [discussion][zsh1], there is a [fix][zsh2]. |
| Fish | Posix | 🟠 Minor Issues | See issue [#55][fsh1] and discussion [#22][fsh2]. |
إذا كنت تستخدم shell مختلفًا ولديك بعض الملاحظات لمشاركتها، فيرجى إخباري!