소개
Angr Management은 angr 바이너리 분석 플랫폼을 위한 공식 GUI 도구로, Python 기반의 오픈소스 프로젝트입니다. 이 도구는 바이너리 파일의 디스어셈블리, 디컴파일, 제어 흐름 그래프 분석 등을 시각적으로 수행할 수 있게 해줍니다. Windows, macOS, Linux에서 크로스플랫폼으로 실행되며, angr의 강력한 분석 기능을 그래픽 인터페이스로 제공합니다.
상세정보
디스어셈블리 및 헥스 뷰
Angr Management은 바이너리 파일의 디스어셈블리 결과를 주소, 바이너리 코드, 명령어, 인수 형태로 표시합니다. 오른쪽에는 해당 기계어의 헥스 값과 ASCII 문자가 함께 보이는 헥스 뷰가 제공되어, 사용자는 코드와 데이터를 동시에 확인할 수 있습니다. 또한 Strings 탭을 통해 바이너리 내에 포함된 문자열 리스트를 주소와 길이 정보와 함께 볼 수 있습니다.
그래프 디스어셈블리 및 가짜 코드 뷰
이 도구는 제어 흐름 그래프 형태의 디스어셈블리 뷰를 제공하여, 함수 간 호출 관계와 분기 구조를 시각적으로 이해할 수 있게 합니다. 오른쪽의 Pseudocode 탭에서는 C 언어 스타일의 가짜 코드가 표시되어, 어셈블리 코드의 로직을 더 쉽게 해석할 수 있도록 도와줍니다. 예를 들어, main 함수에서 authenticate 함수를 호출하는 구조와 조건 분기 경로를 그래프와 가짜 코드로 동시에 확인할 수 있습니다.
로그 및 작업 기록
화면 하단의 Log 창은 Angr Management에서 실행된 모든 작업 기록을 실시간으로 보여줍니다. 이를 통해 사용자는 분석 과정에서 수행된 명령어와 결과를 추적하고, 디버깅 또는 재현이 필요한 상황을 파악할 수 있습니다.
다운로드·설치 방법
Angr Management은 공식 GitHub 저장소에서 소스 코드를 다운로드받아 사용할 수 있습니다. ZIP 형식으로 제공되는 설치 파일을 받아 압축을 해제한 후, Python 3.10+ 환경에서 필요한 의존성을 설치하고 실행할 수 있습니다. 공식 문서에서는 pip를 통해 angr 패키지를 먼저 설치한 후, angr-management를 실행하는 방법을 권장하고 있습니다.
기본 사용법/명령어
설치 후, 터미널 또는 명령 프롬프트에서 ‘angr-management’ 명령을 실행하여 GUI를 запу동할 수 있습니다. 실행 후, 분석하고자 하는 바이너리 파일을 드래그 앤 드롭하거나 파일 메뉴를 통해 불러올 수 있습니다. 파일이 로드되면, 디스어셈블리, 가짜 코드, 문자열, 로그 등 다양한 뷰를 전환하며 분석을 진행할 수 있습니다. 공식 문서에서는 Docker를 통한 실행 방법도 제공하고 있으나, 로컬 설치를 권장하고 있습니다.
이런 경우에 유용합니다
이 도구는 악성코드 분석, 취약점 조사, 펌웨어 보안 점검, 경쟁 제품의 역공학 등 바이너리 파일의 내부 구조와 동작을 이해해야 하는 상황에서 유용합니다. 특히, 어셈블리 수준의 코드를 시각적으로 분석하고, 제어 흐름이나 문자열 정보를 빠르게 파악해야 하는 보안 연구자나 개발자에게 실질적인 도움을 줍니다.
지원 환경·시스템 요구사항
Angr Management은 Windows, macOS, Linux에서 실행 가능한 크로스플랫폼 애플리케이션입니다. Python 3.10 이상의 버전이 필요하며, angr 의존성과 함께 GUI를 구동하기 위한 필수 패키지들이 사전에 설치되어야 합니다. 공식 문서에서는 Windows 사용자를 위한 별도의 설치 가이드를 제공하고 있지 않으나, 크로스플랫폼 특성상 Windows에서도 동일하게 실행 가능함을 명시하고 있습니다.
최신 버전·업데이트
현재 버전은 9.3.4이며, 공식 GitHub 저장소에서 지속적인 업데이트가 이루어지고 있습니다. 최신 소스 코드는 GitHub의 master 브랜치에서 확인할 수 있으며, 릴리스 노트는 공식 문서나 저장소의 태그를 통해 확인할 수 있습니다.
제한 사항·확인 사항
Angr Management은 매우 초기 단계(very alpha state)의 GUI 도구로 명시되어 있으며, 이로 인해 일부 기능이 불안정하거나 예상치 못한 동작을 보일 수 있습니다. 또한, angr 자체의 복잡한 분석 엔진에 의존하기 때문에, 대용량 바이너리 분석 시 성능이나 메모리 사용량이 증가할 수 있습니다. 사용 전에는 공식 문서에서 알려진 이슈나 호환성 사항을 확인하는 것이 권장됩니다.
화면으로 보는 주요 기능
디스어셈블리 및 헥스 뷰

디스어셈블리 뷰는 'authenticate' 함수의 x86-64 어셈블리 코드를 보여주며, 각 줄은 주소, 바이너리 코드, 명령어, 인수를 포함한다. 오른쪽에는 해당 코드의 헥스 값과 ASCII 문자가 함께 표시되는 헥스 뷰가 있다. 하단에는 'Strings' 탭이 열려 있으며, 'Password:', 'Username:', 'Go away!', 'Welcome to the admin console, trusted user!', 'SOSNEAKY', '/lib64/ld-linux-x86-64.so.2'와 같은 문자열이 주소와 길이와 함께 나열되어 있다. 하단의 'Log' 창은 'angrmanagement'에서 실행된 작업 로그를 보여준다.
그래프 디스어셈블리 및 가짜 코드 뷰

이 스크린샷은 'main' 함수의 그래프 디스어셈블리 뷰를 보여주며, 'authenticate' 함수를 호출하는 코드 블록이 포함되어 있다. 오른쪽에는 'Pseudocode' 탭이 열려 있으며, C 언어 스타일의 가짜 코드가 표시되어 있다. 이 코드는 'main' 함수의 구조를 보여주며, 'v0', 'v1', 'v2', 'v3', 'v4', 'v5', 'v6'와 같은 변수를 선언하고, 'puts', 'read', 'authenticate' 함수를 호출한다. 'if (v2 != 0)' 조건문이 있으며, 'accepted' 함수를 호출하거나 'rejected' 함수를 호출하는 두 가지 경로가 있다. 하단의 'Log' 창은 'angrmanagement'에서 실행된 작업 로그를 보여준다.
시스템 요구사항
별도의 시스템 요구사항이 등록되지 않았습니다.


