LLM-unterstützte Dekompilierung: Entwicklung von Strategien und Werkzeugen

Der Artikel behandelt Herausforderungen und Strategien in der LLM-unterstützten Dekompilierung, insbesondere den Einsatz von Claude zur Dekompilierung von Nintendo 64-Spielen wie Snowboard Kids 2. Zunächst umfasste der Fortschritt eine einmalige Dekompilierung, die den übereinstimmenden Code von etwa 25 % auf 58 % steigerte. Der Fortschritt verlangsamte sich jedoch, was eine Änderung des Ansatzes erforderte, um schließlich etwa 75 % übereinstimmende Funktionen zu erreichen.
Eine entscheidende Strategie bestand darin, zu priorisieren, welche nicht übereinstimmenden Funktionen angegangen werden sollten. Zunächst wurde ein logistisches Regressionsmodell verwendet, um die Schwierigkeit basierend auf Merkmalen wie der Anzahl der Anweisungen und der Komplexität des Kontrollflusses zu schätzen. Als dieser Ansatz stagnierte, erwies sich die Untersuchung der Ähnlichkeit von Funktionen mittels Text-Embeddings von Assembler-Anweisungen als besonders fruchtbar. Dies beinhaltete die Berechnung ähnlicher übereinstimmender Funktionen, um nützliche Referenzen bereitzustellen und so die Dekompilierungsleistung von Claude zu verbessern.
Zur Berechnung der Ähnlichkeit wurden Vektor-Embeddings diskutiert, die häufig in RAG-Systemen für eine schnelle Abrufung verwendet werden. Für ein Projekt mit nur ein paar tausend Kandidaten war jedoch eine präzise Ähnlichkeitsberechnung machbar. Zunächst wurde ein zusammengesetzter Ähnlichkeitsscore verwendet, der normalisierte Instruktions-n-Gramme, Kontrollflussmuster, Speicherzugriffs-Offsets und strukturelle Metriken berücksichtigte, aber später stellte sich heraus, dass Codogs einfachere Methode zur Berechnung der begrenzten Levenshtein-Distanz über Opcode-Sequenzen genauso effektiv war und die Komplexität reduzierte.
Spezialisierte Werkzeuge wie gfxdis.f3dex2 und decomp-permuter verbesserten ebenfalls Claudes Leistung. Insbesondere erleichterte die Verwendung der F3Dex2-Bibliothek den Umgang mit dem Mikrokode des Reality Display Processors (RDP) der N64, wodurch die Notwendigkeit von benutzerdefinierter Reverse Engineering vermieden wurde.
📖 Die vollständige Quelle lesen: HN LLM Tools
👀 Siehe auch

Aufbau einer automatisierten Videobearbeitungspipeline mit OpenClaw MCP-Tools
Ein Entwickler hat eine OpenClaw-Fähigkeit erstellt, die die Videobearbeitung für YouTube/Twitch-Inhalte automatisiert und 20-minütige Videos in 4 Minuten verarbeitet, dabei Jump-Cut-Schnitte, Untertitel und 20-30 Shorts pro Aufnahme erzeugt.

RunLobster KI-Agent integriert Geschäftsdaten für operative Einblicke
Ein Entwickler gewährte RunLobster Root-Zugriff auf seine Geschäftssysteme, einschließlich Stripe, CRM, E-Mail und Gesprächstranskripte. Der Agent überwacht autonom den Betrieb, markiert Anomalien und liefert detaillierte Berichte basierend auf integrierter Datenanalyse.
OpenClaw-Agent brach bei 65 % Kontext ab: 683k Token, keine Cache-Lesevorgänge bei Ollama/GLM
Ein 23-stündiger OpenClaw-Discord-Agentenlauf mit GLM 5.3 Flash über Ollama Cloud brach bei 683k Tokens ab – 65 % des konfigurierten 1M-Fensters – ohne Overflow-Fehler, ohne Timeout und mit cacheRead=0 in jedem betroffenen Turn.
Thread pro Projekt, Datei für die langen Sachen: So organisiere ich mein OpenClaw-Agenten-Zuhause
Ein OpenClaw-Benutzer baut sein Agenten-Zuhause dreimal neu auf und landet bei Discord mit einer Thread-pro-Projekt-Struktur und einem Datei-Stab-Umgehungstrick für lange Nachrichten.