作者:alden
将反汇编整齐地格式化以用于 YARA 规则。
这是一个非常简单的插件,允许你以可用于 YARA 规则的方式复制反汇编。你可以选择按原样复制汇编代码,或使用地址通配符来创建更健壮的规则。
要复制你需要的反汇编,无论在哪个视图中,直接选中它即可。接下来,导航到 插件 > Copy for YARA > [选项]。格式化后的文本将自动复制到你的剪贴板。
此格式会尝试对可能的地址令牌进行通配,以使规则更健壮。它通过两种策略来实现:
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 许可证 发布。