본문으로 건너뛰기

YARA 룰로 리버싱 시그니처 잡기

YARA는 바이너리/메모리 덤프에서 패턴을 선언적으로 매칭하는 도구입니다. 리버스 단계에서 “이 함수가 어느 버전인지”, “이 샘플이 어떤 계열인지” 빠르게 태깅할 때 유용해요.

핵심 포인트

  • strings바이트 시퀀스 + 와일드카드를 섞어 노이즈를 줄입니다.
  • condition에서 filesize, pe.is_pe, uint16(0)==0x5A4D 같은 컨텍스트 조건을 같이 씁니다.
  • 버전별 차이를 찾을 때는 짧은 공통 패턴 + 고유 패턴 1~2개를 조합하세요.

미니 룰 예시

rule fast_tag {
strings:
$s1 = "XOR_KEY" ascii
$b1 = { 55 48 89 E5 ?? ?? 5D }
condition:
uint16(0)==0x5A4D and 1 of ($s*) and $b1
}

실전 팁

룰은 작게, 많이 쪼개고, 오탐률을 로그로 기록해 보정하면 CTF/IR 모두 속도가 확 올라갑니다.