Forsker lot en KI-agent skrive dekompilatoren Kuna, som matcher IDA Pro
Slipper Kuna, en eksperimentell dekompilator der en språkmodell har skrevet nesten hver linje kode.
44,4 prosent mot 45,7 prosent. Det er avstanden mellom Kuna og bransjestandarden IDA Pro 9.2 på perfekt kontrollflyt-strukturering av C-programmer, målt i benchmarken utvikleren la ut sammen med koden 30. juli. Kuna er skrevet av en språkmodell: «en LLM har skrevet nesten hver linje kode i dette prosjektet», heter det i lanseringsposten, som er ført i pennen under et opphold som gjesteforsker ved Air Force Research Lab og forskerstipendiat hos Metalware.
Under panseret er Kuna en Rust-port av NSAs Ghidra, omarbeidet til å ligne pipelinen i angr, dekompilatoren utvikleren brukte doktorgraden sin på å bygge. Forbedringen skjer gjennom det posten kaller autonom raffinering: modellen studerer funksjonene der den scorer dårligere enn IDA Pro på et sett fundamentale metrikker, og prøver seg fram til den tetter gapet. På den måten har den reimplementert over 20 grunnleggende angr-funksjoner som forskerne brukte år på å designe.
«Kuna er opprinnelig Ghidra portert til Rust, men har endret seg ganske mye siden.» — mahaloz, utvikleren bak Kuna, i Hacker News-tråden
Tråden, som samlet 71 poeng og 16 kommentarer, deler seg i to. Flere reversere melder at de allerede bruker språkmodeller på disassembly: en kommentator forteller at Claude med Ghidra-MCP korrekt navnga MD5-funksjoner, fil-IO og hele kjeden fra en dialogboks i grensesnittet. En annen mener språkmodeller har vært brukbare til dekompilering i minst to år, bare ved å lime disassembly fra IDA inn i en chat. Andre stiller spørsmål ved hele premisset: hvorfor bygge en dekompilator med en modell i stedet for å trene en modell til å være dekompilator, når kompilatorer kan generere ubegrenset treningsdata?
«Det er ingen vits i å la en språkmodell gjøre det standardalgoritmer gjør raskere og deterministisk.» — Rexxar, kommentator på Hacker News
Det mest overførbare for deg som bygger med agenter ligger ikke i dekompilatoren, men i sløyfen rundt den. Autonom raffinering fungerer her fordi det finnes en målestokk å feile mot: fundamentale metrikker som først dukket opp i forskningen de siste årene, og tre eksisterende dekompilatorer, IDA Pro, Ghidra og angr, som allerede løser deler av problemet bedre. Utvikleren er tydelig på at dette ikke er automatisk forskning. Metrikkene måtte oppdages av mennesker først, og det er sannsynligvis derfor ingen annen dekompilator har gjort dette ennå.
Kuna er også fortsatt bare god på struktur. Typer, optimaliseringer, rekompilerbarhet og variabelidentifisering står igjen, og utvikleren ber eksplisitt om hjelp med dem. Han planlegger heller ikke å forlate angr, som fortsatt er stedet han utvikler nye algoritmer.
Bakgrunn
En dekompilator gjør kompilert maskinkode om til lesbar C. Kontrollflyt-strukturering er delen som gjenskaper løkker, if-setninger og switch-blokker fra hopp og betingelser, og den er notorisk vanskelig å få til å se ut som noe et menneske ville skrevet. IDA Pro er det kommersielle referanseverktøyet i feltet, Ghidra er NSAs åpne alternativ, og angr er forskningsplattformen.
For de som bygger: en agent som skal forbedre seg selv trenger en rubrikk den ikke kan forhandle med, og et eksisterende verktøy å måle seg mot. Uten begge deler er selvforbedring bare selvbekreftelse.
KI-kuratert — innholdet er generert av KI-agenter basert på originalkilden.