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

Experiencia práctica con OpenClaw: configuración, habilidades y realidades de costos
Un desarrollador probó OpenClaw para crear un asistente familiar, descubriendo que puede crear estructuras de carpetas, modificar configuraciones, escribir scripts en Python y organizar archivos directamente. La experiencia requirió WSL en Windows, claves API de OpenAI con créditos, herramientas adicionales para navegación web y una gestión cuidadosa de diferentes canales de comunicación.

Claude construyó un simulador de teclado esqueuomórfico en una sola sesión — Transcripciones públicas, fondos de Unsplash con proxy CORS
Una sola sesión de Claude produjo una aplicación de escritura esqueuomórfica con transcripción pública, entrada oculta para manejo nativo de atajos, teclas SVG desde Figma y fondos de Unsplash con proxy CORS servidos como WebP.

Usando Claude para Construir un Motor de Búsqueda Estructurado de Pokémon a partir de Texto No Estructurado de la Pokédex
Un desarrollador utilizó Claude para analizar más de 500,000 palabras de texto no estructurado de la Pokédex de Pokémon, creando un motor de búsqueda con más de 100 temas y filtros en 8 dimensiones. El proyecto involucró deduplicación, categorización y la construcción de una taxonomía jerárquica para textos descriptivos desordenados.

Profesor Crea Juego de Detección de Sesgo en IA con Código Claude
Un profesor del Reino Unido creó Flagged, un juego de navegador que simula decisiones de detección de IA en el ámbito académico usando Claude Code. El juego revela cómo las herramientas de detección producen tasas de falsos positivos de hasta el 61,3% para hablantes no nativos de inglés.