
افحص بصريًا وافرض فك تشفير مطابقات YARA و regex الموجودة في كل من البيانات الثنائية والنصية باستخدام الألوان. الكثير من الألوان.

افحص بصريًا جميع تطابقات التعبيرات النمطية (وأبناء عمومتها الأكثر إثارة وغموضًا، تطابقات YARA) الموجودة في البيانات الثنائية و/أو النصوص. شاهد ما يحدث عند فرض ترميزات أحرف مختلفة على تلك البايتات المتطابقة. بألوان.
pipx install yaralyzer
# المسح باستخدام تعريفات YARA في ملف:
yaralyze --yara-rules /secret/vault/sigmunds_malware_rules.yara lacan_buys_the_dip.pdf
# المسح باستخدام تعبير نمطي عشوائي:
yaralyze --regex-pattern 'good and evil.*of\s+\w+byte' --regex-modifier wide the_crypto_archipelago.exe
# المسح باستخدام نمط سداسي عشوائي من YARA:
yaralyze --hex-pattern 'd0 93 d0 a3 d0 [-] 9b d0 90 d0 93' one_day_in_the_life_of_ivan_cryptosovich.bin
'/.+/' وستحصل فورًا على نافذة على جميع البايتات في الملف التي تقع بين الشرطتين المائلتين. نفس القصة للاقتباسات، BOMs، إلخ. أي تعبير نمطي يمكن لـ YARA التعامل معه مدعوم، لذا السماء هي الحد الأقصى.chardet هي مكتبة متطورة لتخمين ترميزات الأحرف ويتم استخدامها هنا.chardet لمعرفة ما إذا كانت البايتات تناسب نمط أي ترميز معروف. إذا كانت ثقة chardet كافية (قابلة للتكوين)، فسيتم عرض محاولة فك تشفير البايتات باستخدام هذا الترميز.تم استخراج وظيفة Yaralyzer من Pdfalyzer عندما أصبح من الواضح أن تصور وفك تشفير تطابقات الأنماط في الملفات الثنائية له فائدة أكبر من مجرد استخدامه في أداة تحليل PDF.
YARA، لمن لا يعرفون1، يُسوق كأداة تحليل/تنبيه للبرامج الضارة ولكنه في الواقع أكثر وأقل من ذلك بكثير. طريقة واحدة للتفكير فيه هي أن YARA هو محرك مطابقة تعبيرات نمطية معزز. يمكنه تحديد موقع تطابقات التعبيرات النمطية في الملفات الثنائية مثل أي محرك تعبيرات نمطية ولكنه يمكنه أيضًا القيام بأشياء أكثر غرابة مثل دمج التعبيرات النمطية في مجموعات منطقية، ومقارنة التعبيرات النمطية ضد جميع النسخ الـ 256 المعالجة بـ XOR من الملف الثنائي، والتحقق من ترميزات base64 وغيرها من ترميزات النمط، وأكثر من ذلك. وربما الأهم من ذلك كله أن YARA يوفر تنسيقًا نصيًا قياسيًا لمشاركة التعبيرات النمطية "المعززة" مع العالم. كل هذه الميزات مفيدة بشكل خاص عند تحليل أو هندسة عكسية للبرامج الضارة، التي يميل مؤلفوها إلى استثمار الكثير من الوقت في جعل الأشياء صعبة الاكتشاف.
لكن... هذا أيضًا كل ما يفعله YARA. كل شيء آخر يعود للمستخدم. YARA هو مجرد محرك مطابقة، وإذا كنت لا تعرف ما الذي تطابقه (أو حتى ما هو ترميز الأحرف الذي يمكنك المطابقة به)، فإنه لا يأخذك بعيدًا جدًا. وجدت نفسي محبطًا بعض الشيء عند محاولة استخدام YARA للنظر في جميع تطابقات عدد قليل من الأنماط الحرجة:
\".+\" و \'.+\')/.+/). الشرطتان المائلتان تحددان تعبيرًا نمطيًا في العديد من التطبيقات، وكنت أحاول معرفة ما إذا كانت أي من البايتات المطابقة لهذا النمط هي فعلًا تعبيرات نمطية.YARA يخبرك فقط بموضع البايت والسلسلة المتطابقة، لكنه لا يستطيع إخبارك ما إذا كانت هذه البايتات هي UTF-8 أو UTF-16 أو Latin-1 إلخ (أو لا شيء مما سبق). كما وجدت نفسي أرغب في فهم ما يحدث في المنطقة المحيطة بالبايتات المتطابقة وليس فقط في البايتات المتطابقة. بمعنى آخر، أردت تحديد نطاق البايتات التي تسبق وتلي مباشرة أي شيء تمت مطابقته.
ظهر The Yaralyzer، الذي يتيح لك المسح السريع للمناطق المحيطة بالتطابقات مع عرض كيف ستبدو هذه المناطق إذا تم فرض ترميزات أحرف مختلفة عليها.
The Yaralyzer ليس أداة لعكس هندسة البرامج الضارة. لا يمكنه فعل ما تفعله أدوات مثل CyberChef ولا يحاول ذلك. إنه يهدف أكثر إلى إعطائك نظرة عامة بصرية سريعة على المناطق المشبوهة في الملف الثنائي حتى تتمكن من التركيز على المناطق التي قد ترغب في فحصها بأداة أكثر جدية.
قم بتثبيته باستخدام pipx أو pip3. pipx هو حل أفضل قليلاً لأنه يضمن أن أي حزم مثبتة به ستكون معزولة عن بقية بيئة Python المحلية. بالطبع إذا لم يكن لديك بيئة Python محلية، فهذه نقطة غير جوهرية ويمكنك التثبيت بحرية باستخدام pip/pip3.
pipx install yaralyzer
قم بتشغيل yaralyze -h لرؤية خيارات سطر الأوامر (لقطة الشاشة أدناه).

لمعلومات حول تصدير صور SVG، HTML، إلخ، راجع مثال على الإخراج.
إذا وضعت ملفًا اسمه .yaralyzer في دليل منزلك أو دليل العمل الحالي، فسيتم إضافة متغيرات البيئة المحددة في ملف .yaralyzer إلى البيئة في كل مرة يتم فيها استدعاء yaralyzer. يوفر هذا آلية لتكوين خيارات سطر الأوامر المختلفة بشكل دائم حتى تتمكن من تجنب كتابتها مرارًا وتكرارًا. راجع التعليقات في ملف المثال .yaralyzer.example لمزيد من المعلومات.
سيتم تحميل ملف .yaralyzer واحد فقط، وسيكون لملف دليل العمل .yaralyzer الأولوية على ملف الدليل المنزلي.
Yaralyzer هو الفئة الرئيسية. يمكن العثور على الوثائق المُنشأة تلقائيًا لفئات وطرق Yaralyzer المختلفة هنا. لديها مجموعة متنوعة من المنشئات البديلة تدعم:
.yara في دليلbytesإذا كنت ترغب في التكرار عبر كائنات BytesMatch (مثل كائن re.Match لتطابق YARA) و BytesDecoder (يتتبع إحصائيات محاولة فك التشفير) المستخدمة بواسطة The Yaralyzer، يمكنك القيام بذلك على النحو التالي:
from yaralyzer.yaralyzer import Yaralyzer
yaralyzer = Yaralyzer.for_rules_files(['/secret/rule.yara'], 'lacan_buys_the_dip.pdf')
for bytes_match, bytes_decoder in yaralyzer.match_iterator():
do_stuff()
إذا تلقيت yara.Error مع رمز خطأ رقمي، يمكنك التحقق من معنى هذا الرمز هنا.
يمكن لـ Yaralyzer تصدير التصورات إلى HTML، ونص ANSI ملون، وصور متجهة PNG و SVG باستخدام وظيفة تصدير الملفات المضمنة مع Rich بالإضافة إلى تنسيق JSON نص عادي (محدود إلى حد ما).
إذا كنت ترغب في تصدير صور .png مثل تلك الموجودة أدناه مباشرة من Yaralyzer، فستحتاج إلى القيام بأحد هذه الأشياء:
brew install --cask inkscape)img عند تثبيت Yaralyzer والذي سيقوم بتثبيت cairosvg: pipx install yaralyzer[img]. ستحتاج أيضًا إلى تثبيت ملف تنفيذ CairoSVG يدويًا بطرق مختلفة حسب نظام التشغيل لديك، راجع وثائق CairoSVG للتفاصيل.في تجربتنا، يعمل كل من Inkscape وCairoSVG، رغم أننا رأينا بعض العيوب في الإخراج المقدم باستخدام CairoSVG على صور SVG التي أنتجها Yaralyzer، لذا فإن Inkscape هو الخيار الموصى به.


chardet.detect() حول احتمالية أن تكون بايتاتك في ترميز/لغة معينة:
المساهمات أكثر من مرحب بها؛ راجع CONTRIBUTING.md للحصول على تفاصيل حول إعداد البيئة، تشغيل مجموعة الاختبارات، إلخ. هناك أيضًا قائمة مهام يجب إنجازها هناك.
كما كنت حتى وقت قريب. ↩