큐레이션

Reverify

바이너리 역공학에서 LLM의 가설을 실제 바이트와 결정적 도구로 검증하는 MCP 서버·CLI

Python755

요약

Reverify는 바이너리를 읽는 AI가 오프셋·구조·동작을 그럴듯하게 지어내는 문제를 결정적 검증 층으로 보완하는 도구입니다. 공식 README의 구조는 “모델이 제안하고 바이트가 결정한다”입니다. 주장마다 VERIFIED, REFUTED, INCONCLUSIVE 결과와 관찰 증거를 남깁니다.

도구 소개

순수 Python 코어에서 PE·ELF·Mach-O 파싱, 여러 CPU 아키텍처 디스어셈블리, 패턴 검색, CPU 에뮬레이션, Protobuf/TLV 분석을 제공합니다. Capstone·Unicorn·LIEF는 선택적으로 설치할 수 있어 환경에 따라 도구 수준을 높일 수 있습니다.

Reverify는 MCP 서버와 CLI를 함께 제공하므로 에이전트가 작은 검증 주장을 보내고, 사람이나 CI가 결과 상태를 게이트로 사용할 수 있습니다. 검증된 주장도 정보량이 낮거나 중복이면 충분한 근거로 세지 않도록 가중치를 두는 점이 특징입니다.

사용 포인트

  • 파일 오프셋·주소·명령어·구조체 가설을 실제 바이트와 비교
  • 주장 하나가 반박되면 의존한 후속 가설도 함께 재검토
  • Claude Code·Cursor 등 MCP 클라이언트에서 검증 도구 호출
  • CLI 결과를 CI의 REFUTED 차단 조건으로 연결
  • 모델·프롬프트가 바뀌어도 결정적 판정층을 유지

설치와 시작

공식 README가 제시하는 기본 경로는 다음과 같습니다.

pip install reverify
reverify auto sample.bin --json

Capstone·Unicorn·LIEF가 필요한 경우 reverify[full] 선택 사항을 검토할 수 있습니다. 처음에는 직접 만들었거나 공개된 샘플로 observe와 예상값 검증을 나누고, INCONCLUSIVE를 성공으로 오해하지 않는 테스트를 작성하는 편이 좋습니다.

적용 판단

Reverify는 역공학을 자동으로 끝내 주는 제품이라기보다 생성형 제안과 결정적 증거를 분리하는 검증 하네스입니다. 바이너리 분석·악성코드 분석·CTF·상호운용성 연구처럼 허가된 대상에만 사용해야 하며, 파일의 출처·버전·분석 권한을 먼저 확인해야 합니다.

AI가 분석을 도왔다고 해서 결과가 사실이 되는 것은 아닙니다. Reverify가 반환한 관찰값과 원본 파일 버전, 사람이 확인한 해석을 함께 저장할 때 이 도구의 강점이 살아납니다. 저장소는 MIT 라이선스를 표기합니다.

참고