Sobre el proyecto
Capstone Engine es un marco de desensamblado de código abierto escrito en C puro, diseñado para el análisis binario y la ingeniería inversa en la comunidad de seguridad. Fue creado por Nguyen Anh Quynh y es mantenido por una pequeña comunidad de desarrolladores, distribuido bajo la licencia permisiva BSD.
La cobertura de arquitecturas es una de las características definitorias de Capstone. Maneja código máquina en una amplia gama de arquitecturas de hardware y virtuales: ARM, AArch64 (ARMv8), Alpha, ARC, BPF, Ethereum Virtual Machine, LoongArch, HPPA (PA-RISC), M68K, M680X, MIPS, MOS65XX, PowerPC, RISC-V (rv32G/rv64G), SH, SPARC, SystemZ, TMS320C64X, TriCore, WebAssembly, XCore, Xtensa y x86 en modos de 16, 32 y 64 bits.
Más allá de convertir el código máquina en texto de ensamblador, Capstone expone información detallada sobre cada instrucción desensamblada —una capacidad que otras herramientas a veces llaman 'descomposición'—, incluyendo la semántica de las instrucciones, como qué registros implícitos se leen y se escriben. La API está diseñada para ser limpia, ligera y independiente de la arquitectura, de modo que la misma interfaz funcione en todos los objetivos admitidos.
Capstone es seguro para hilos por diseño e incluye soporte especial para su integración en firmware o kernels de sistemas operativos, lo que lo hace apto para entornos de bajo nivel y restringidos. El proyecto se describe a sí mismo como de alto rendimiento y capaz de manejar diversas técnicas de malware x86, posicionándolo para casos de uso de análisis de malware.
Si bien el núcleo está implementado en C, están disponibles bindings —ya sea en el código base principal o proporcionados externamente por la comunidad— para una larga lista de lenguajes: 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 y Vala. El paquete de Python se publica en PyPI. Se admiten compilaciones nativas en Windows, macOS, iOS, Android, Linux, *BSD y Solaris.
El proyecto participa en el programa de fuzzing continuo OSS-Fuzz de Google, y su documentación cubre la compilación e instalación, la arquitectura del software, las pruebas y un componente de actualización automática. La discusión comunitaria se lleva a cabo en un grupo de Telegram, y las directrices de contribución están incluidas en el repositorio.
Los usuarios típicos incluyen investigadores de seguridad, analistas de malware y desarrolladores que construyen depuradores, trazadores u otras herramientas que necesitan interpretar código máquina de forma programática. Cabe señalar que Capstone es una biblioteca y un marco, no una aplicación GUI independiente: los usuarios lo integran a través de su API en C o uno de sus numerosos bindings de lenguajes.
Comments
0 Rating appears after 10 ratings
Sign in to join the discussion.