Descompilación Asistida por LLM: Estrategias y Herramientas en Evolución

El artículo discute los desafíos y estrategias en la descompilación asistida por LLM, particularmente utilizando Claude para descompilar juegos de Nintendo 64 como Snowboard Kids 2. Inicialmente, el progreso involucró una descompilación de un solo intento, aumentando el código coincidente de alrededor del 25% al 58%. Sin embargo, el progreso se desaceleró, lo que exigió un cambio de enfoque para finalmente alcanzar aproximadamente el 75% de funciones coincidentes.
Una estrategia crítica implicó priorizar qué funciones no coincidentes abordar, inicialmente utilizando un modelo de regresión logística para estimar la dificultad en función de características como el conteo de instrucciones y la complejidad del control de flujo. Cuando este enfoque llegó a un punto muerto, explorar la similitud de funciones a través de embebidos de texto de instrucciones de ensamblador resultó fructífero. Esto involucró el cálculo de funciones coincidentes similares para proporcionar referencias útiles, mejorando así el rendimiento de descompilación de Claude.
Para calcular la similitud, se discutieron los embebidos vectoriales, que a menudo se utilizan en sistemas RAG para una rápida recuperación. Sin embargo, para un proyecto con solo unos pocos miles de candidatos, el cálculo de similitud preciso era factible. Se utilizó inicialmente un puntaje de similitud compuesto que tenía en cuenta n-gramas de instrucción normalizados, patrones de control de flujo, desplazamientos de acceso a memoria y métricas estructurales, pero luego, el método más simple de Coddog para calcular la distancia de Levenshtein acotada sobre secuencias de opcode resultó igual de efectivo, reduciendo la complejidad.
Herramientas especializadas como gfxdis.f3dex2 y decomp-permuter también mejoraron el rendimiento de Claude. En particular, el uso de la biblioteca F3Dex2 hizo que el manejo del microcódigo del Procesador de Pantalla de Realidad (RDP) de la N64 fuera más manejable, evitando la necesidad de ingeniería inversa personalizada.
📖 Lee la fuente completa: HN LLM Tools
👀 Ver también

Cómo un Desarrollador Usó Claude Code con Linear y Discord para una Construcción en Solitario de 30 Días
Un desarrollador creó una herramienta completa de informes de equipos Pokémon VGC en 30 días usando Claude Code como programador en pareja, integrada con Linear para seguimiento de tickets y Discord para notificaciones de compilación. El flujo de trabajo incluyó manejo automatizado de tickets, comprobaciones de tipos y un archivo CLAUDE.md para instrucciones consistentes de IA.

No-codificador crea un juego multijugador en Steam usando Claude AI — 60 mil líneas, 5 facciones, 87 habilidades
Un usuario de Reddit sin experiencia en programación creó un juego multijugador completo (60k líneas, 5 facciones, 87 habilidades) usando Claude AI y lo logró aprobar en Steam. Acceso anticipado el 1 de junio.

Usando IA para Portar un Controlador Wi-Fi de Linux a FreeBSD: Un Estudio de Caso
Un desarrollador utilizó Claude Code y el agente Pi para intentar portar el controlador brcmfmac de Linux para los chips Wi-Fi Broadcom BCM4350 a FreeBSD, primero mediante traducción directa del código y luego generando una especificación detallada de 11 capítulos para una implementación en un entorno limpio.

El quemado de tokens Opus de $2,500 por parte de un desarrollador en OpenClaw: flujos de trabajo reales vs herramientas
El dueño de una tienda de software relata cómo gastó $2,500 en tokens de Opus a través de OpenClaw, usándolo para corregir errores, automatización visual y administración de servidores, pero cuestiona qué significa realmente un 'workflow'.