ALTO. LEA ESTE SKILL.MD COMPLETO ANTES DE LLAMAR A CUALQUIER ENDPOINT.
¿Qué hace analyze-elf?
Realice ingeniería inversa de características desde binarios ELF compilados. No es un desensamblador, sino un extractor de características que responde "¿qué hace este binario?"
Cuándo Usarlo
- Entender qué hace una herramienta CLI compilada (Bun SEA, Go, Rust, C/C++)
- Extraer comandos CLI, banderas y texto de ayuda
- Recuperar máquinas de estado, esquemas de protocolo y tipos de eventos
- Mapear métodos JSON-RPC y modelos de datos Zod
- Producir un informe de análisis detallado con diagramas Mermaid
Inicio Rápido
# Comando principal — extraer características, generar informe
.pi/skills/analyze-elf/run.sh features /ruta/al/binario --goal "entender el sistema de misiones"
# Con análisis AST mediante /treesitter (más lento, más profundo)
.pi/skills/analyze-elf/run.sh features /ruta/al/binario --ast --goal "encontrar todos los métodos RPC"
# Salida JSON para uso programático
.pi/skills/analyze-elf/run.sh features /ruta/al/binario --output-format json
# Información de bajo nivel del ELF (cabeceras, símbolos, detección de runtime)
.pi/skills/analyze-elf/run.sh elf /ruta/al/binario
# Extracción de cadenas con expresiones regulares
.pi/skills/analyze-elf/run.sh strings /ruta/al/binario --pattern "mission|worker"
Comandos
| Comando | Descripción |
|---|---|
features | Principal. Extrae características → genera informe con diagramas Mermaid |
elf | Bajo nivel: cabeceras, secciones, símbolos, detección de runtime |
strings | Extracción de cadenas filtradas por expresión regular |
Lo que features Extrae
| Categoría | Método | Ejemplo |
|---|---|---|
| Comandos CLI | Coincidencia de patrones en texto de ayuda | exec, daemon, mcp |
| Máquinas de estado | Patrones de asignación de enums (M.State="valor") | orchestrator_turn, paused |
| Tipos de eventos | Patrones KH.literal("nombre_tipo") | mission_accepted, worker_completed |
| Métodos JSON-RPC | Patrones method: KH.literal("nombre") | droid.session_notification |
| Esquemas Zod | Extracción de campos de KH.object({...}) | Feature, WorkerHandoff, State |
| Paquetes npm | "name": "paquete" en package.json empaquetado | @grpc/grpc-js |
| Rutas API | Literales de ruta /api/ y /v1/ | /api/auth/login |
| Clases/funciones | AST mediante /treesitter (con bandera --ast) | MissionRunner, spawnWorker |
Composición
/treesitter (análisis AST)
Cuando se pasa --ast, la habilidad:
- Extrae cadenas fuente JS de
.rodata - Filtra líneas con contenido JS (funciones, clases, imports, patrones Zod)
- Envía fragmentos a través de
/treesitter parse --language javascript - Extrae clases, funciones y firmas de métodos
/create-walkthrough (generado automáticamente)
El comando features produce un informe de análisis que incluye:
- Árbol de comandos CLI en Mermaid
- Diagramas de máquina de estado en Mermaid
- Taxonomía de tipos de eventos en Mermaid
- Tablas de esquemas con tipos de campo
- Evaluación de riesgos ("Qué Podría Salir Mal")
/create-figure
Diagramas de dependencias y módulos en formato DOT disponibles mediante el comando elf para renderizar a través de /create-figure.
Dependencias
pyelftools— análisis estructurado de ELFhttpx— llamadas a la API de /scillmtyper— CLIloguru— registro de eventos- Sistema:
binutils(readelf, nm, strings)