
Módulos de procesador para IDA Pro que añaden soporte de desensamblado para arquitecturas poco comunes de CPU, DSP y GPU, incluyendo XMOS xCORE, TI C7x/PRU, MicroBlaze y NVIDIA SASS.
Una colección de módulos de procesador que amplían IDA Pro con soporte para arquitecturas de CPU, DSP y GPU poco comunes y especializadas.
Estos proyectos surgieron de mi interés por la ingeniería inversa de arquitecturas que no cuentan con soporte nativo en IDA, en particular las que se encuentran en sistemas embebidos, firmware comercial y hardware informático especializado.
| Arquitectura | Descripción | Repositorio |
|---|---|---|
| XMOS xCORE | Arquitectura multinúcleo orientada a eventos, utilizada en audio embebido, USB y sistemas en tiempo real. | xcore-ida |
| TI C7x / C7000 | Arquitectura DSP avanzada con soporte para ejecución paralela, operaciones vectoriales y unidades de procesamiento especializadas. | c7x-ida |
| TI PRU / PRU-ICSS | Procesadores en tiempo real deterministas utilizados en comunicación industrial, automatización y control embebido. | pru-ida |
| AMD/Xilinx MicroBlaze | Procesador RISC soft-core configurable utilizado dentro de sistemas basados en FPGA. | microblaze-ida |
| NVIDIA SASS | Arquitectura de código máquina nativa de GPU NVIDIA, con codificaciones de instrucciones específicas de cada generación. | sass-ida |
Cada arquitectura presenta distintos desafíos de ingeniería inversa, entre ellos:
El desarrollo ha implicado estudiar documentación del fabricante, examinar binarios reales, utilizar desensambladores de referencia y analizar experimentalmente las codificaciones de instrucciones.
El objetivo es hacer que estas arquitecturas sean más accesibles para los investigadores que trabajan con IDA.
Me interesan especialmente las arquitecturas de procesador oscuras, poco habituales o con soporte limitado que aparecen en firmware y binarios ejecutables del mundo real.
Los buenos candidatos suelen tener:
¿Te has encontrado con una arquitectura que IDA no admite pero que te gustaría que sí lo hiciera?
Las sugerencias, los debates técnicos y los comentarios son bienvenidos.
No dudes en abrir una GitHub Discussion o un Issue en el repositorio correspondiente.
Desarrollado por curiosidad acerca de las arquitecturas de procesador poco habituales y los desafíos de hacerles ingeniería inversa.