
هذا ملحق صغير لنسخ شيفرة التفكيك بطريقة قابلة للاستخدام في قواعد YARA!
المؤلف: alden
انسخ التفكيك منسقًا بشكل أنيق لقواعد YARA.
هذه إضافة بسيطة حقًا تتيح لك نسخ التفكيك بطريقة يمكن استخدامها في قواعد YARA. لديك خيار إما نسخ كود التجميع كما هو أو استخدام بدل العناوين (address wildcarding) لإنشاء قواعد أكثر متانة.
لنسخ التفكيك الذي تريده، حدده بغض النظر عن العرض. بعد ذلك، انتقل إلى Plugins > Copy for YARA > [Options]. سيتم نسخ النص المنسق الناتج تلقائيًا إلى الحافظة.
يحاول هذا التنسيق تحويل رموز العناوين المحتملة إلى بدل (wildcard) لجعل القواعد أكثر متانة. يستخدم استراتيجيتين لتحقيق ذلك:
x86
49 8b 5e 08 // mov rbx, qword [r14+0x8]
48 8d bd 48 ff ff ff // lea rdi, [rbp-0xb8 {var_c0}]
4c 89 fe // mov rsi, r15
4c 89 f2 // mov rdx, r14
e8 ?? ?? ?? ?? // call sub_1000ca056
ARM
f7 03 01 aa // mov x23, x1
e0 03 01 aa // mov x0, x1
ca ?? ?? ?? // bl sub_100128728
f9 03 00 aa // mov x25, x0
f8 03 01 aa // mov x24, x1
9a ?? ?? ?? // bl sub_1001bd674
f9 03 00 36 // tbz w25, #0, 0x10012788c
سيقوم هذا ببساطة بنسخ بايتات التجميع بطريقة مضغوطة بدون تعليقات إذا كان هذا هو ما تفضله.
49 8b 5e 08 48 8d bd 48 ff ff ff 4c 89 fe 4c 89 f2 e8 ff 0c 00 00
ينسخ جميع البايتات مع التعليقات ولكن بدون استخدام البدل.
49 8b 5e 08 // mov rbx, qword [r14+0x8]
48 8d bd 48 ff ff ff // lea rdi, [rbp-0xb8 {var_c0}]
4c 89 fe // mov rsi, r15
4c 89 f2 // mov rdx, r14
e8 ff 0c 00 00 // call sub_1000ca056
سيقوم هذا بإنشاء قاعدة كاملة سريعة يمكنك استخدامها، وفي المستقبل ستكون البيانات الوصفية قابلة للتخصيص عبر الإعدادات.
rule binary_ninja_export {
meta:
description = "Auto generated by Binary Ninja YARA plugin"
architecture = "aarch64"
strings:
$bytes = { f7 03 01 aa e0 03 01 aa ca ?? ?? ?? f9 03 00 aa f8 03 01 aa 9a ?? ?? ?? f9 03 00 36 }
condition:
$bytes
}

تم إصدار هذه الإضافة بموجب رخصة MIT.