
이것은 YARA 규칙에서 사용할 수 있는 방식으로 디스어셈블리를 복사하는 작은 플러그인입니다!
작성자: 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 라이선스로 배포됩니다.