
これは、YARAルールで使用できる形式で逆アセンブリ(disassembly)をコピーするための小さなプラグインです。
著者: alden
YARAルール用に整形された逆アセンブリをコピーします。
これは、YARA ルールで使用できる形式で逆アセンブリをコピーできる、非常にシンプルなプラグインです。アセンブリコードをそのままコピーするか、アドレスワイルドカードを使用してより堅牢なルールを作成するかを選択できます。
目的の逆アセンブリをコピーするには、ビューに関係なくそれを選択します。次に、Plugins > Copy for YARA > [Options] に移動します。整形されたテキストは自動的にクリップボードにコピーされます。
この形式は、可能なアドレストークンをワイルドカード化して、ルールをより堅牢にしようとします。これを実現するために2つの戦略を使用します:
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ライセンス の下でリリースされています。