
تفقد بصريًا جميع مباريات Regex (وأبناء عمها أكثر جنسية وأكثر عباءة وخنجر ، ومباريات YARA) الموجودة في البيانات الثنائية و/أو النص. تعرف على ما يحدث عندما تجبر ترميزات الأحرف المختلفة على تلك البايتات المتطابقة. مع الألوان.
pipx install yaralyzer
# Scan against YARA definitions in a file:
yaralyze --yara-rules /secret/vault/sigmunds_malware_rules.yara lacan_buys_the_dip.pdf
# Scan against an arbitrary regular expression:
yaralyze --regex-pattern ' good and evil.*ofs+w+byte ' the_crypto_archipelago.exe
# Scan against an arbitrary YARA hex pattern
yaralyze --hex-pattern ' d0 93 d0 a3 d0 [-] 9b d0 90 d0 93 ' one_day_in_the_life_of_ivan_cryptosovich.bin'/.+/' والحصول على نافذة على الفور في جميع البايتات التي تعيش بين المائل الأمامي. نفس القصة للاقتباسات ، boms ، إلخchardet هي مكتبة متطورة لتخمين ترميزات الشخصية ويتم الاستفادة منها هنا.chardet أيضًا لمعرفة ما إذا كانت البايتات تتناسب مع نمط أي تشفير معروف. إذا كان chardet واثقًا بما فيه الكفاية (قابل للتكوين) ، فسيتم عرض محاولة لفك تشفير البايتات باستخدام هذا الترميز.تم استخراج وظيفة Yaralyzer من PDFALYZER عندما أصبح من الواضح أن تصور وفك تشفير نمط النمط في الثنائي كان أكثر فائدة من مجرد أداة تحليل PDF.
يارا ، بالنسبة لأولئك الذين لا يدركون 1 ، يتم وصفه كأداة تحليل/تنبيه البرامج الضارة ، لكنها في الواقع أقل بكثير من ذلك بكثير. طريقة واحدة للتفكير في الأمر هي أن Yara هو محرك تعبير منتظم مطابقة على المنشطات. يمكنه تحديد موقع مباريات Regex في الثنائيات مثل أي محرك Regex ، ولكن يمكن أن يفعل أيضًا أشياء برية مثل الجمع بين إعادة التجميع في المجموعات المنطقية ، ومقارنة regexes مقابل جميع الإصدارات 256 Xored من ثنائي ، والتحقق من base64 وغيرها من الترميزات للنمط ، وأكثر من ذلك. ربما الأهم من ذلك بين كل Yara يوفر تنسيقًا قياسيًا يعتمد على النص للأشخاص لمشاركة "regexes" مع العالم. كل هذه الميزات مفيدة بشكل خاص عند تحليل أو عكس البرامج الضارة الهندسية ، التي يميل مؤلفوها إلى استثمار وقت كبير في جعل الأشياء يصعب العثور عليها.
ولكن ... هذا أيضا كل يارا يفعل. كل شيء آخر متروك للمستخدم. Yara هو مجرد محرك مطابق وإذا كنت لا تعرف ما الذي يجب مطابقة (أو حتى ما هي الشخصية التي ترميزها قد تكون قادرًا على مطابقة) ، فإنه يحصل عليك فقط حتى الآن. لقد وجدت نفسي محبطًا بعض الشيء في محاولة لاستخدام Yara للنظر في جميع مباريات بعض الأنماط الحرجة:
".+" و '.+' )/.+/ ). ترسم المائل الأمامي تعبيرًا منتظمًا في العديد من التطبيقات وكنت أحاول معرفة ما إذا كان أي من البايتات المطابقة لهذا النمط قد تم إعادة صياغتها بالفعل .يخبرك Yara فقط بوضع البايت والسلسلة المتطابقة ، لكن لا يمكن أن تخبرك ما إذا كانت تلك البايتات هي UTF-8 أو UTF-16 أو Latin-1 ، وما إلى ذلك (أو لا شيء مما سبق). وجدت نفسي أيضًا أرغب في فهم ما كان يجري في منطقة البايتات المتطابقة وليس فقط في البايتات المتطابقة. وبعبارة أخرى ، أردت أن أتخلى عن البايتات قبل ذلك مباشرة وبعد ما تم مطابقة.
أدخل Yaralyzer ، الذي يتيح لك مسح المناطق حول المباريات بسرعة مع إظهار ما ستبدو عليه هذه المناطق إذا تم إجبارها على ترميزات شخصية مختلفة.
من المهم أن نلاحظ أن Yaralyzer ليس بالأداة الكاملة للبرامج الضارة. لا يمكن أن تفعل كل الأشياء التي تقوم بها CyberChef ولا تحاول ذلك. من المفترض أن يمنحك نظرة عامة سريعة على المناطق المشتبه فيها في الثنائي حتى تتمكن من الصقل في المناطق التي قد ترغب في فحصها باستخدام أداة أكثر خطورة مثل CyberChef.
تثبيته مع pipx أو pip3 . pipx هو حل أفضل بشكل هامشي لأنه يضمن أي حزم مثبتة معها سيتم عزلها عن بقية بيئة Python المحلية. بالطبع إذا لم يكن لديك حقًا بيئة بيثون محلية ، فهذه نقطة نقاش ويمكنك أن تتردد في التثبيت مع pip / pip3 .
pipx install yaralyzer
قم بتشغيل yaralyze -h لمشاهدة خيارات سطر الأوامر (لقطة الشاشة أدناه).

للحصول على معلومات حول تصدير صور SVG ، HTML ، وما إلى ذلك ، انظر الإخراج المثال.
إذا وضعت ملفًا يسمى .yaralyzer في الدليل الرئيسي أو الدليل الحالي للبيئة ، فسيتم إضافة متغيرات البيئة المحددة في ذلك .yaralyzer يوفر هذا آلية لتكوين خيارات سطر الأوامر المختلفة بشكل دائم حتى تتمكن من تجنب كتابتها مرارًا وتكرارًا. راجع ملف المثال .yaralyzer.example لمعرفة الخيارات التي يمكن تكوينها بهذه الطريقة.
.yaralyzer تحميل .yaralyzer واحد فقط .yaralyzer
Yaralyzer هو الطبقة الرئيسية. لديها مجموعة متنوعة من المنشئين الذين يدعمون:
.yara في دليلbytes إذا كنت ترغب في التكرار عبر BytesMatch (مثل كائن re.Match لمباراة yara) وكائنات BytesDecoder (مسارات فك تشفير الإحصائيات) التي يتم إرجاعها بواسطة 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 () يمكن لـ Yaralyzer تصدير التصورات إلى HTML ، ونص ملون ANSI ، وصور ناقلات SVG باستخدام وظيفة تصدير الملفات التي تأتي مع الغنية. يمكن تحويل SVGs إلى صور تنسيق png باستخدام أداة مثل Inkscape أو cairosvg . في تجربتنا ، يعمل كلاهما على الرغم من أننا رأينا بعض الخلل مع cairosvg .
مستخدمي PYPI: إذا كنت تقرأ هذا المستند على PYPI ، فاحرص على أن يجعلها أفضل بكثير على Github. صور جميلة ، حواشي تعمل ، إلخ.


chardet.detect() في احتمال أن تكون بايتات في ترميز/لغة معينة: 
rich بطريقة ما. في الوقت الحالي ، يكون إخراج وحدة التحكم هو "أكثر صحة" ، لذا فهو جيد بشكل عام. issue_with_output_to_txt_file_incorrect.png issue_with_output_to_console_correctchardetكما كنت حتى وقت قريب. ↩