Binary Diffing: 패치에서 취약점 찾는 빠른 루틴
패치가 올라왔을 때 가장 빠른 취약점 분석 루틴은 binary diffing이다. “무슨 함수가 바뀌었는지”만 알아도 공격 포인트가 보인다.
기본 흐름
- 구버전/신버전 바이너리를 나란히 로드
- 함수 그래프 유사도로 매칭
- 변경된 함수만 집중 분석
실전에서 많이 보는 변경 패턴
- 길이 체크 추가:
len >=비교가 새로 들어간 경우 - 조건 분기 강화: 실패 루틴으로 빠지는 분기 증가
- 복호화 루틴 수정: 키/라운드 상수 변경
- 에러 메시지 통합: 에러 코드가 하나로 합쳐짐
툴 스택
- Diaphora(IDA) 또는 Ghidra의 diff 플러그인
- 바뀐 함수에서 문자열 레퍼런스부터 확인
- 호출 그래프 역추적으로 “입력 지점” 추정
핵심은 “바뀐 곳에만 집중”이다. 패치는 힌트고, diff는 지도다. 이 루틴만 익혀도 0day 분석 속도가 확 올라간다.