Sparrow: The Source Code Analyzer

스패로우: 소스 코드 분석기

  • Oh, Hak-Joo (Programming Research Laboratory, Seoul National University) ;
  • Jung, Young-Bum (Programming Research Laboratory, Seoul National University) ;
  • Jin, Min-Sik (Programming Research Laboratory, Seoul National University) ;
  • Kim, Deok-Hwan (Programming Research Laboratory, Seoul National University) ;
  • Hwang, Yi-Kwon (Programming Research Laboratory, Seoul National University) ;
  • Park, Dae-Jun (Programming Research Laboratory, Seoul National University) ;
  • Lee, Hee-Jong (Programming Research Laboratory, Seoul National University) ;
  • Kong, Soon-Ho (Programming Research Laboratory, Seoul National University) ;
  • Yi, Kwang-Keun (Programming Research Laboratory, Seoul National University)
  • 오학주 (서울대학교 컴퓨터공학부 프로그래밍 연구실) ;
  • 정영범 (서울대학교 컴퓨터공학부 프로그래밍 연구실) ;
  • 진민식 (서울대학교 컴퓨터공학부 프로그래밍 연구실) ;
  • 김덕환 (서울대학교 컴퓨터공학부 프로그래밍 연구실) ;
  • 황의권 (서울대학교 컴퓨터공학부 프로그래밍 연구실) ;
  • 박대준 (서울대학교 컴퓨터공학부 프로그래밍 연구실) ;
  • 이희종 (서울대학교 컴퓨터공학부 프로그래밍 연구실) ;
  • 공순호 (서울대학교 컴퓨터공학부 프로그래밍 연구실) ;
  • 이광근 (서울대학교 컴퓨터공학부 프로그래밍 연구실)
  • Published : 2007.06.25

Abstract

Sparrow(스패로우)는 C/C++로 작성된 프로그램의 메모리 누수와 버퍼오버런 오류를 자동으로 프로그램 실행전에 찾아주는 도구이다. Sparrow는 실제 현장에서 쓰이는 상용 프로그램의 분석에 유용하게 쓰일 수 있도록 제작되었다. 이를 위해 분석기 엔진은 수십만 라인 이상의 소프트웨어를 적절한 시간과 정확도로 분석하기 할 수 있도록 많은 기술이 적용되었다. 또한 사용자의 편의성을 위해 대상 프로그램의 소스 구조를 자동으로 파악하여 분석을 준비하고, 거짓일 가능성이 높은 알람을 미리 제거하며, 발생한 알람의 원인을 설명해 준다. Sparrow로 httpd-2.2.2를 비롯한 오픈 소프트웨어들을 분석한 결과 실제 오류들을 찾아낼 수 있었다.

Keywords