Skip to main content

Binary Diffing: 패치에서 취약점 찾는 빠른 루틴

패치가 올라왔을 때 가장 빠른 취약점 분석 루틴은 binary diffing이다. “무슨 함수가 바뀌었는지”만 알아도 공격 포인트가 보인다.

기본 흐름

  • 구버전/신버전 바이너리를 나란히 로드
  • 함수 그래프 유사도로 매칭
  • 변경된 함수만 집중 분석

실전에서 많이 보는 변경 패턴

  • 길이 체크 추가: len >= 비교가 새로 들어간 경우
  • 조건 분기 강화: 실패 루틴으로 빠지는 분기 증가
  • 복호화 루틴 수정: 키/라운드 상수 변경
  • 에러 메시지 통합: 에러 코드가 하나로 합쳐짐

툴 스택

  • Diaphora(IDA) 또는 Ghidra의 diff 플러그인
  • 바뀐 함수에서 문자열 레퍼런스부터 확인
  • 호출 그래프 역추적으로 “입력 지점” 추정

핵심은 “바뀐 곳에만 집중”이다. 패치는 힌트고, diff는 지도다. 이 루틴만 익혀도 0day 분석 속도가 확 올라간다.