소개
Vidi는 PE 파일의 정적 분석을 위한 시각적 디스어셈블러로, bearparser와 capstone 라이브러리를 기반으로 개발되었습니다. 이 도구는 PE 32/64비트 및 DOS MZ 형식을 지원하며, 개발자 hasherezade가 오픈소스로 제공합니다. 주요 목적은 실행 파일의 내부 구조와 어셈블리 코드를 시각적으로 분석하여 리버스 엔지니어링 및 멀웨어 분석에 활용하는 것입니다.
상세정보
PE 파일 구조 시각화
Vidi는 PE 파일의 DOS 헤더, NT 헤더, 섹션 테이블, 임포트 테이블, 익스포트 테이블 등을 계층 구조로 표시하여 파일의 내부 구조를 한눈에 파악할 수 있도록 합니다.
어셈블리 코드 디스어셈블리
capstone 엔진을 기반으로 PE 파일의 코드 섹션을 x86/x64 어셈블리 언어로 디스어셈블하여 보여줍니다. 사용자는 함수별로 코드를 탐색하고, 특정 주소로 이동할 수 있습니다.
함수 및 심볼 탐색
왼쪽 패널에서 로컬 함수 목록을 제공하며, 함수 이름, 주소, 크기 등을 확인할 수 있습니다. 이를 통해 특정 기능을 빠르게 찾아 분석할 수 있습니다.
다운로드·설치 방법
최신 빌드는 GitHub 저장소의リリース 페이지에서 다운로드할 수 있습니다. Windows용 실행 파일은 ZIP 형식으로 제공되며, 압축을 해제한 후 실행 파일을 더블클릭하여 바로 사용할 수 있습니다. 별도의 설치 과정은 필요하지 않습니다.
기본 사용법/명령어
프로그램을 실행한 후, 분석하고 싶은 PE 파일을 드래그 앤 드롭하거나 메뉴에서 ‘파일 열기’를 선택합니다. 파일이 로드되면 왼쪽에는 함수 목록이, 오른쪽 상단에는 섹션 정보 테이블이, 하단에는 디스어셈블된 코드가 표시됩니다. 코드 영역에서 우클릭하여 ‘Follow RVA’를 선택하면 해당 주소로 이동할 수 있으며, ‘Filter reference’를 통해 특정 참조를 필터링할 수 있습니다.
이런 경우에 유용합니다
멀웨어 분석가가 의심스러운 실행 파일의 행동을 정적으로 분석하여 악성 기능을 식별할 때 유용합니다. 또한, 소프트웨어 개발자가 자신의 프로그램이 의도한 대로 컴파일되었는지 확인하거나, 제3자 라이브러리의 호출을 추적하는 데에도 활용할 수 있습니다.
지원 환경·시스템 요구사항
Vidi는 Windows 운영 체제에서 실행되며, Qt5 Core 및 Qt5 Widget 라이브러리에 의존합니다. 또한 bearparser와 capstone(선택 사항: udis86)이 필요하며, 소스 코드로부터 빌드하려면 cmake가 요구됩니다. 배포된 바이너리는 이러한 의존성을 포함한 상태로 제공되므로, 일반 사용자는 별도의 라이브러리 설치 없이 바로 실행할 수 있습니다.
최신 버전·업데이트
현재 버전은 0.2.5.5이며, 최신 릴리스 정보는 GitHub 저장소의 ‘Releases’ 섹션에서 확인할 수 있습니다. 개발자는 이 프로젝트를 저 우선순위로 유지하고 있으나, 버그 보고 및 기능 요청은 GitHub Issues를 통해 환영한다고 밝혔습니다.
제한 사항·확인 사항
이 도구는 실험적 성격을 띠고 있으며, 활발히 개발되지 않고 있습니다. 일부 최신 PE 형식이나 특수한 패커에 대한 완벽한 지원을 보장하지 않을 수 있습니다. 또한, macOS 및 Linux에서의 사용은 소스 코드로부터 직접 빌드해야 하며, 이에 대한 공식 바이너리는 제공되지 않습니다.
화면으로 보는 주요 기능
Vidi 스크린샷 1

Vidi 0.2.0의 사용자 인터페이스로, 왼쪽에는 로컬 함수 목록이 표시되고, 오른쪽 상단에는 RVA, End RVA, Name, Condition, VES, NO 열이 있는 테이블이 있습니다. 하단에는 x86 어셈블리 코드가 표시된 코드 영역이 있으며, 'Follow RVA' 및 'Filter reference' 컨텍스트 메뉴가 열려 있습니다.
시스템 요구사항
별도의 시스템 요구사항이 등록되지 않았습니다.


