REA lar KI-agenter lese binærfiler – jussen henger etter

|Forfatter: QUASAs redaksjon|5 min lesetid
REA lar KI-agenter lese binærfiler – jussen henger etter

Den norske teknologipublikasjonen Shifter omtalte 12. oktober 2026 REA-prosjektet og den uavklarte grensen for KI-assistert gjenskaping. Verktøyet lar kodeagenter undersøke blant annet kjørbare filer uten kildekode og bruke funnene til å forklare eller bygge en funksjon. At en agent kan rekonstruere programatferd, gir likevel ingen automatisk rett til å analysere, dele eller kopiere programvaren.

En uavhengig omtale fra Firstlaunch 12. oktober 2026 beskriver REA som en kobling mellom kodeagenter og etablerte analyseverktøy, med ulike forutsetninger for ulike programtyper. Det er kjernen i nyheten: Agenten kan følge spor fra en bestemt funksjon til kode og observert oppførsel, men resultatet avhenger av analysemotoren, tilgangen til programmet og hva som faktisk lar seg kontrollere. For norske brukere kommer også et spørsmål før rekonstruksjonen kan tas i bruk: Hvilken tillatelse gjelder for målprogrammet og opplysningene analysen avdekker?

Hva REA undersøker på brukerens maskin

En Electron-app deles opp i programlag som REA kan følge gjennom en konkret funksjon.

REA fungerer som kommandolinjeverktøy og lokal MCP-server som en kodeagent kan kalle under en undersøkelse. For native binærfiler kan den hente ut pseudokode, maskininstruksjoner, strenger, symboler og forbindelser mellom funksjoner. Dyp analyse av slike filer krever en tilgjengelig analysemotor som Hopper, Ghidra eller IDA. REA binder resultatene til agentens spørsmål og returnerer grunnlaget for funnene, slik at en påstand om programlogikk kan spores tilbake til bestemte deler av programmet.

Rekkevidden er bredere enn kompilerte skrivebordsprogrammer. Prosjektets oversikt over støttede mål og eksempler omfatter JavaScript- og Electron-apper, .NET-programmer, nettsteder, lagrede nettverksopptak og Android-apper, i tillegg til native binærfiler. For Electron kan undersøkelsen kartlegge moduler, importer, kildekart og meldinger mellom prosesser; for .NET kan den lese metadata og CIL-instruksjoner. Kravene varierer med målet, og enkelte typer analyse trenger egne verktøy eller et bestemt operativsystem.

Det er også forskjell på å lese en fil og å observere et program mens det kjører. Statisk inspeksjon av JavaScript og .NET leser innleverte filer uten å starte målprogrammet. Opptak av kjøreatferd starter eller samhandler derimot med programmet under brukerens rettigheter og kan utløse dets vanlige handlinger. Den forskjellen er særlig relevant ved undersøkelse av ukjent programvare: Et lokalt oppsett gjør ikke selve kjøringen risikofri.

Rekonstruksjonene gjelder avgrensede funksjoner

Et kulemønster fra TH04 settes opp mot en rekonstruert beregning av vinklene i spillet.

Prosjektets demonstrasjoner viser hvordan agenten kan gå fra spor i et program til en ny implementering av en bestemt regel. I spillet DX-Ball følges et lydkall til beregningen som fordeler lyd mellom venstre og høyre etter ballens posisjon. Når pseudokoden ikke gir hele svaret, brukes maskininstruksjonene til å avklare beregningen før funksjonen skrives i C. Prosjektet oppgir at denne rekonstruksjonen ble prøvd mot 3 205 tilfeller fra originalens x86-kode og gjenga alle 63 byte i den kompilerte funksjonen; tallene gjelder denne ene funksjonen og den tilhørende testen.

Et annet eksempel følger Notions utklippstavlefunksjon gjennom Electron-appens ulike prosesser og viser hvordan formatene som kopieres, henger sammen. I PC-98-spillet TH04 undersøkes instruksjoner bak faste og målrettede vinkler i et kulemønster, før en C++-rekonstruksjon sammenlignes med historisk kompilatorutdata. De to eksemplene har ulike mål: Det ene forklarer forbindelsen mellom deler av en app, mens det andre forsøker å gjenskape en beregning fra maskinkode.

Slike kontroller gjør funnene mer etterprøvbare enn en løs beskrivelse av hvordan en funksjon ser ut til å virke. Samtidig er en rekonstruert lydrutine eller vinkelberegning et langt smalere resultat enn en erstatning for hele programmet. En app kan være avhengig av servere, data, tjenester og innhold som ikke ligger i filen agenten undersøker. Også en dekompilering må tolkes: Den gir ikke nødvendigvis de opprinnelige navnene, kommentarene eller utviklerens hensikt.

Tillatelse og viderebruk avgjør den juridiske grensen

Det rettslige spørsmålet gjelder både hvordan opplysningene skaffes, og hva de senere brukes til. En undersøkelse for å få et selvstendig utviklet program til å virke sammen med et annet har et annet formål enn å distribuere en nær kopi av konkurrentens utforming. Norske regler åpner på bestemte vilkår for dekompilering som er nødvendig for funksjonelt samvirke, men krever blant annet rett til å bruke programmet og at undersøkelsen begrenses til nødvendige deler. Lisensvilkår og konkrete rettigheter må derfor vurderes sammen med formålet, ikke ut fra REAs tekniske muligheter alene.

Skillet blir mindre tydelig når en agent både undersøker eksisterende kode og skriver en ny versjon i samme arbeidsflyt. Det er nødvendig å kunne skille observasjoner om funksjonalitet fra kode, utforming og annet materiale som tas med videre. REAs egen MIT-lisens gjelder verktøyet; den gir ingen rettigheter til appen eller spillet som analyseres. Den norske omtalen peker på at spørsmålet om KI-assistert gjenskaping i denne sammenhengen ennå ikke er prøvd av en domstol.

Lokale analyser kan fortsatt sende funn videre

REA analyserer en kjørbar fil lokalt, mens utvalgte funn går videre til KI-agenten.

REA behandler målprogrammet lokalt, men sender analyseresultater til kodeagenten som stilte spørsmålet. Hvis agenten bruker en ekstern KI-modell, kan utdrag av pseudokode, filnavn, programstruktur eller andre funn gå videre etter agentens oppsett og modellleverandørens vilkår. Det er en annen dataflyt enn å laste opp hele programmet til en analysetjeneste, men utdragene kan fortsatt røpe hemmelig kode eller interne løsninger.

En ansatt kan for eksempel ha lov til å åpne en intern binærfil uten å ha lov til å dele detaljer fra den med en ekstern leverandør. For et konkret REA-oppdrag må derfor tillatelsen dekke målprogrammet, analysens omfang og bruken av resultatene. Funn som skal danne grunnlag for ny kode, må dessuten kontrolleres mot originalens oppførsel og mot det som faktisk er lov å ta med videre. Den praktiske grensen går gjennom hele kjeden fra lokal fil til modell og ferdig implementering.

Del:

Abonner på nyhetsbrevet vårt

Få de siste nyhetene om Web3, KI og krypto rett i innboksen.

0