
Este é um pequeno plugin para copiar disassembly de uma forma utilizável em regras YARA!
Autor: alden
Copie a desmontagem bem formatada para regras YARA.
Este é um plugin realmente simples que permite copiar a desmontagem de uma forma que pode ser usada em regras YARA. Você tem a opção de copiar o código assembly como está ou usar curingas de endereço para criar regras mais robustas.
Para copiar a desmontagem desejada, selecione-a independentemente da visualização. Em seguida, navegue até Plugins > Copy for YARA > [Opções]. O texto formatado resultante será copiado automaticamente para a sua área de transferência.
Este formato tentará usar curingas em possíveis tokens de endereço para tornar as regras mais robustas. Ele usa duas estratégias para isso:
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
Isso simplesmente copiará os bytes do assembly de forma compacta, sem comentários, se é a sua praia.
49 8b 5e 08 48 8d bd 48 ff ff ff 4c 89 fe 4c 89 f2 e8 ff 0c 00 00
Copia todos os bytes com comentários, mas sem curingas.
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
Isso gerará uma regra completa rápida que você pode usar; no futuro, os metadados poderão ser personalizados com configurações.
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
}

Este plugin é lançado sob uma licença MIT.