
Это небольшой плагин для копирования дизассемблированного кода в формате, пригодном для использования в YARA-правилах!
Author: alden
Копируйте дизассемблер в удобном для YARA-правил формате.
Это очень простой плагин, который позволяет копировать дизассемблированный код таким образом, чтобы его можно было использовать в YARA правилах. Вы можете скопировать ассемблерный код как есть или использовать подстановочные знаки для адресов, чтобы создавать более устойчивые правила.
Чтобы скопировать нужный дизассемблер, выделите его в любом представлении. Затем перейдите в Plugins > Copy for YARA > [Options]. Отформатированный текст будет автоматически скопирован в буфер обмена.
Этот формат пытается заменить возможные адресные токены подстановочными знаками, чтобы сделать правила более устойчивыми. Для этого используются две стратегии:
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.