프로젝트 소개

Capstone Engine은 보안 커뮤니티의 바이너리 분석과 리버스 엔지니어링을 위해 설계된 순수 C로 작성된 오픈소스 디스어셈블리 프레임워크입니다. Nguyen Anh Quynh이 만들고 소규모 개발자 커뮤니티가 유지 관리하며, 허용적인 BSD 라이선스로 배포됩니다. 아키텍처 지원 범위는 Capstone의 정의적 특징 중 하나입니다. 다양한 하드웨어 및 가상 아키텍처의 기계어 코드를 처리합니다: ARM, AArch64(ARMv8), Alpha, ARC, BPF, 이더리움 가상 머신, LoongArch, HPPA(PA-RISC), M68K, M680X, MIPS, MOS65XX, PowerPC, RISC-V(rv32G/rv64G), SH, SPARC, SystemZ, TMS320C64X, TriCore, WebAssembly, XCore, Xtensa, 그리고 16비트, 32비트, 64비트 모드의 x86을 지원합니다. Capstone은 기계어 코드를 어셈블리 텍스트로 변환하는 것 외에도 각 디스어셈블된 명령어에 대한 상세 정보를 노출합니다. 이 기능은 다른 도구에서 '분해(decomposition)'라고도 불리며, 암시적 레지스터 읽기/쓰기와 같은 명령어 의미론을 포함합니다. API는 깔끔하고 가볍고 아키텍처 중립적으로 설계되어, 동일한 인터페이스가 모든 지원 대상에서 작동합니다. Capstone은 설계상 스레드 안전하며, 펌웨어나 운영 체제 커널에 임베딩하기 위한 특별 지원을 포함하여 저수준 및 제한된 환경에 적합합니다. 프로젝트는 고성능을 자랑하며 다양한 x86 악성코드 트릭을 처리할 수 있어 악성코드 분석 사용 사례에 적합합니다. 핵심은 C로 구현되었지만, 메인 코드베이스 또는 커뮤니티에서 외부 제공되는 바인딩이 다양한 언어로 제공됩니다: Python, C++, C#, Java, Go, Rust, NodeJS, Ruby, Perl, PHP, Lua, Haskell, OCaml, Clojure, F#, Common Lisp, Swift, D, Visual Basic, PowerShell, Emacs Lisp, Delphi, Free Pascal, Vala. Python 패키지는 PyPI에 게시되어 있습니다. 네이티브 빌드는 Windows, macOS, iOS, Android, Linux, *BSD, Solaris에서 지원됩니다. 이 프로젝트는 Google의 OSS-Fuzz 지속적 퍼징 프로그램에 참여하며, 문서는 빌드 및 설치, 소프트웨어 아키텍처, 테스트, 자동 동기화 업데이터 구성 요소를 다룹니다. 커뮤니티 토론은 Telegram 그룹에서 이루어지며, 기여 지침은 저장소에 포함되어 있습니다. 일반적인 사용자는 보안 연구원, 악성코드 분석가, 디버거, 트레이서 또는 기계어 코드를 프로그래밍 방식으로 해석해야 하는 도구를 개발하는 개발자입니다. Capstone은 독립형 GUI 애플리케이션이 아닌 라이브러리 및 프레임워크라는 점에 유의하세요: 사용자는 C API 또는 다양한 언어 바인딩을 통해 통합합니다.