Siirry sisältöön
Tekoälyn jäljillä

Selitys

Voiko tekoäly kopioida minkä tahansa sovelluksen? REA ja reverse engineering

Voiko tekoäly kopioida sovelluksen reverse engineeringin avulla? REA antaa agentille työkalut tutkia ohjelmaa ilman lähdekoodia, mutta julkinen näyttö on rajallista, eikä ohjelmistotappajaksi nimittämistä ole osoitettu.

Harri Salomaa10 minPäivitetty

Kolme päällekkäistä läpinäkyvää kerrosta, joista keskimmäinen on avattu. Suurennuslasi paljastaa sen sisällä hehkuvat kuutiot ja niitä yhdistävät polut, joista osa hehkuu kullanvärisenä. Ylä- ja alakerros jäävät himmeiksi. Tutkiminen näyttää sen, mitä valaistaan, ei koko ohjelmaa.
Sisällys (8)

Voiko tekoäly kopioida minkä tahansa sovelluksen? Julkisen näytön perusteella sitä ei tiedetä, ja otsikoiden puheet ohjelmistojen lopusta menevät selvästi edelle. REA on työkalu, joka antaa tekoälyagentille välineet tutkia valmista ohjelmaa ilman sen lähdekoodia. Sillä on uudelleentoteutettu rajattuja toimintoja, mutta ei ole osoitettu, että kokonaisen sovelluksen voisi korvata luotettavasti. Ero on tämän jutun ydin.

Lähdekoodi on ohjelmoijien kirjoittama, ihmisen luettava ohje, josta ohjelma tehdään. Asiakkaille jaetaan yleensä vain käännetty versio, jonka kone ymmärtää mutta ihminen ei helposti. Reverse engineering eli ohjelman toiminnan selvittäminen ilman lähdekoodia on vanha ala: tietoturvatutkijat, yhteensopivuusasiantuntijat ja ohjelmistojen säilyttäjät tekevät sitä käsityönä. Lokakuussa 2026 työkalu nimeltä REA, lyhenne sanoista Reverse Engineer Anything, nousi nopeasti GitHubin suosituimpien projektien joukkoon (Startup Fortune kirjoitti siitä 9.10.2026). Otsikoissa sitä on kutsuttu uhaksi suljetun lähdekoodin ohjelmistoille ja jopa ohjelmistojen lopuksi. Tässä jutussa katsotaan, mitä REA tekee, miten se toimii ja mitä siitä on oikeasti osoitettu.

Mikä REA on

REA on avoimen lähdekoodin (MIT-lisenssi) työkalu, joka antaa tekoälyagentille tavan tutkia ohjelmaa, josta ei ole lähdekoodia. Agentti on tässä sama asia kuin jutussa mikä agentti oikeasti on: kielimallin ympärille rakennettu silmukka, joka yrittää, katsoo tuloksen ja korjaa. Esimerkkejä ovat Claude Code, Codex ja Cursor.

REAa voi käyttää agentin kautta tai komentoriviltä. Agentille se näkyy MCP-palvelimena eli palveluna, joka kertoo agentille, mitä työkaluja on käytettävissä ja miten niitä kutsutaan.

Kohteita on laaja kirjo: tietokoneelle asennetut ohjelmat, verkkosivut, Android-sovellukset, laiteohjelmistot ja verkkoliikennetallenteet sekä JavaScriptillä tehdyt työpöytäsovellukset (Electron). Tuki vaihtelee alustan ja käytettävissä olevien työkalujen mukaan. Projektin GitHub-sivulla oli 24.10.2026 noin 375 000 tähteä eli kävijöiden antamaa suosikkimerkintää. Eri lähteet antavat eri päiviltä eri lukuja, joten tähtimäärää kannattaa lukea kiinnostuksen mittana eikä laadun.

Miten se toimii

Tärkein asia on se, mitä REA ei ole: uusi tapa purkaa ohjelmia. Purkamiseen on ollut työkaluja vuosikymmeniä, ja ammattilaiset käyttävät niitä edelleen. Ghidra, Hopper ja IDA Pro purkavat tietokoneohjelmia takaisin luettavampaan muotoon, ja JADX tekee saman Android-sovelluksille. REA käyttää pääosin käyttäjän omia asennuksia näistä työkaluista ja tarjoaa agentille yhden yhtenäisen tavan kutsua niitä. Mukana on lisäksi REAn omia jäsentimiä useille tiedostomuodoille, ja JavaScript-sovellusten analyysi ei tarvitse natiivityökaluja. Mikään tästä ei ole täysin uutta: esimerkiksi GhidraMCP tarjoaa kielimalleille Ghidran toimintoja MCP:n kautta. REAn erityisyys on kohteiden kirjo ja se, että löydökset palautetaan perusteineen ja rajoituksineen.

Uudelleenrakennuksen työnkulku on kolmivaiheinen:

  1. Tutki. Agentti pyytää REAa analysoimaan kohteen. Analyysi ajetaan käyttäjän omalla koneella.
  2. Tulkitse. REA palauttaa havaintoja ja niiden perusteet sekä listan asioista, joita ei saatu selville. Agentti tekee niistä päätelmiä.
  3. Rakenna. Agentti kirjoittaa uuden toteutuksen ja testaa sen alkuperäistä vasten.

Vaiheiden 2 ja 3 välissä on se, mistä koko kysymys riippuu. Aineisto ei takaa oikeaa tulkintaa. REAn oma vastuuvapauslauseke varoittaa, että dekompilointi, rekonstruointi, heuristiikat ja tekoälyanalyysi voivat olla puutteellisia tai virheellisiä. Dekompilointi tarkoittaa käännetyn ohjelman muuttamista takaisin luettavampaan muotoon, ja siinä katoavat usein nimet ja rakenteet, jotka alkuperäisessä koodissa kertoivat, mitä mikin osa tekee. Agentti joutuu päättelemään merkityksen merkkijonoista, kirjastokutsuista ja rakenteesta. Vaikeus vaihtelee kohteittain suuruusluokilla: JavaScript ja Android-sovellus ovat paljon helpompia kuin natiiviohjelma, josta nimet on riisuttu.

Kielimalli myös täyttää aukot helposti uskottavalla koodilla, joka näyttää oikealta mutta ei ole. Testaus alkuperäistä vasten toimii hyvin silloin, kun tulos on mitattavissa, kuten laskennassa. Käyttöliittymän, ajoituksen ja ympäristöstä riippuvan käytöksen vertailu on paljon vaikeampaa, ja testit kertovat vain sen, mitä on testattu. Siksi tärkeät päätelmät pitää tarkistaa alkuperäisistä havainnoista.

Neljä porrasta, joita otsikot hyppäävät yli

Ohjelman tutkiminen, sen toiminnan ymmärtäminen, uuden version tekeminen ja toimivan tuotteen ylläpito ovat eri saavutuksia. Tässä tarkastelluissa esimerkeissä julkinen näyttö on pääosin ensimmäisillä portailla. Portaat eivät myöskään aina tule järjestyksessä, vaan limittyvät.

PorrasKysymysMitä näytöstä tiedetään
PääsyPääseekö agentti ohjelman sisälle?Kohteita on paljon, mutta tuki vaihtelee.
YmmärtäminenPäätelläänkö ohjelman toiminta oikein?Esimerkkejä on, mutta tarkastelluista lähteistä ei löytynyt järjestelmällistä arviointia.
UudelleentoteutusToimiiko uusi versio myös muissa kuin esittelyyn valituissa tapauksissa?Osittaista ja huonosti dokumentoitua näyttöä rajatuista ominaisuuksista.
TuoteTäyttääkö tulos oikean sovelluksen vaatimukset, ja pysyykö se kunnossa?Ylläpidetystä korvaavasta tuotteesta ei löytynyt näyttöä.

Mitä esimerkit osoittavat

Dinosaurus-peli. DataCampin opaskirjoituksessa agentti selvitti, miten Chromen dinosaurus-peli toimii, ja teki sen perusteella oman pelin uusilla hahmoilla. Agentti oli Pi eikä Claude Code. Suora chrome://dino-sivun tutkiminen ei onnistunut, joten agentti poimi pelin JavaScriptin selaimen asennuspaketista ja antoi sen REAlle. Ohje kielsi agenttia katsomasta Chromiumin lähdekoodia. Kaksi rajausta: tämä on JavaScriptin analyysiä eikä käännetyn natiiviohjelman purkua, ja pelin lähdekoodi on julkisesti Chromiumin lähdepuussa (TypeScriptinä). Lisäksi dinosaurus-peli on hyvin tunnettu, joten malli on voinut osata jotain siitä jo valmiiksi. Koe näyttää, että agentti osaa etsiä resursseja ja analysoida niistä poimittua koodia. Se ei kerro, miten hyvin sama työnkulku selvittäisi tuntemattoman, suljetun algoritmin.

Macin Preview. MindStudion kuvaamassa epämuodollisessa vertailussa agentti rakensi Preview-sovellusta muistuttavan ohjelman REAn kanssa ja ilman sitä. REAn kanssa tulos oli lähellä alkuperäistä, ja ilman REAa agentti sai myös toimivan version ja valmistui nopeammin. Molemmilla tavoilla saatiin toteutettua useita näkyviä toimintoja. Preview on myös tunnettu sovellus, joten malli on voinut tietää sen toiminnasta paljon ilman analyysiä. Vertailusta ei selviä arviointikriteerit, toistot eikä kattavuus, eikä se osoita, kumpi tapa tuottaa kattavamman tai luotettavamman sovelluksen. Kirjoituksessa ei raportoida tiedostoyhteensopivuuden eikä reunatapausten testejä.

REAn omat mittaukset. Projekti on julkaissut tehokkuusmittauksia, ja ne vastaavat kapeampaan kysymykseen: kuinka tehokkaasti agentti saa analyysitulokset käyttöönsä. Linkki osoittaa tiettyyn muutosversioon (commit), koska sivu muuttuu nopeasti ja sisältää runsaasti jatkotutkimuksia. Mittaukset arvioivat tiettyjä analyysityönkulkuja ja optimointeja, esimerkiksi tiiviiden vastausten palauttamista täysien sijaan, ja ne koskevat Linux x64 -ympäristöä. Ne eivät testaa sitä, tuottaako REA parempia korvaavia sovelluksia kuin agentti ilman sitä. Vastausten koko pieneni rajusti, mutta kokonaisaika ja mallin tokenkulutus vaihtelivat: osa tuloksista oli parempia, osa heikompia, ja useat ovat yksittäisiä ajoja. Projekti itse varoittaa yleistämästä niitä. Sivu dokumentoi skriptit ja syötteet, mutta tulosten taustalla olevat raakatallenteet ja tekstit säilytetään yksityisessä laboratoriossa, joten osaa väitteistä ei voi tarkistaa pelkältä sivulta. Aineisto on lisäksi projektin oma. Projekti julkaisee myös tuloksia, jotka eivät puhu sen puolesta, mikä on hyvä merkki mutta ei todiste.

Nämä esimerkit jättävät yhden kysymyksen auki: mitä REA tuo tavalliseen koodausagenttiin verrattuna? Tässä tarkastellut julkiset vertailut eivät osoita johdonmukaista etua REAlle.

Miksi sitä sanotaan ohjelmistotappajaksi

Väitteellä on järkeväkin peruste. Osa yrityksistä on rakentanut suojansa sen varaan, että valmiin ohjelman sisälle on vaikea nähdä. Jos tutkiminen helpottuu, tuo suoja ohenee. Vanhojen menetelmien yhdistäminen voi myös olla merkittävä uudistus, vaikka menetelmät itse ovat vanhoja, jos se laskee kustannuksia tai tuo työkalun uudelle käyttäjäryhmälle.

Väitteen kanssa on silti kolme ongelmaa:

  • Tutkiminen ja korvaaminen ovat eri asioita. Yhden ominaisuuden selvittäminen ei tee luotettavan vaihtoehdon rakentamisesta tai asiakkaan siirtämisestä halpaa. Kysymyksiä on kolme: halpeneeko ominaisuuden selvittäminen, halpeneeko luotettavan vaihtoehdon rakentaminen ja halpeneeko asiakkaan siirtyminen? Julkisista esimerkeistä näkyy korkeintaan ensimmäinen. Kolmas voi olla kallein: tietojen siirto, tiedostoyhteensopivuus, liitännät muihin järjestelmiin, koulutus, tuki ja luottamus.
  • Työ ei ole ilmaista. Avoin lähdekoodi ei tee kokonaisuutta halvaksi: mallin käyttö, kaupalliset analyysityökalut, laskenta ja ihmisen tarkistus maksavat. Kopion rakentaminen on myös vasta alku. Alkuperäisen tekijä jatkaa kehitystä, joten klooni on koko ajan perässä, ja agentin kirjoittamaa koodia voi ylläpitää vain, jos joku ymmärtää sen.
  • Palvelinpuoli jää näkymättömiin. REA tutkii sitä, mikä on päätynyt käyttäjän koneelle tai selaimeen. Koodi, joka pyörii vain palveluntarjoajan palvelimella, ei tule sen mukana. Tämä on oma päätelmäni lähteiden kuvauksesta. Se rajaa sitä, mitä REA voi paljastaa pilvipalveluista: se voi tutkia asiakaspuolen koodia ja havaittavaa toimintaa, mutta ei suoraan palauttaa toteutusta, joka pysyy palveluntarjoajan palvelimilla.

Ohjelmiston suoja ei myöskään ole koskaan perustunut pelkästään siihen, että koodi on vaikeaselkoista. Sen päällä on lisenssit ja käyttöehdot, patentit, data, sertifioinnit, liitännät muihin järjestelmiin, tuki, brändi ja se, että vaihtaminen on asiakkaalle vaivalloista. Tarkastellut esimerkit eivät osoita, kuinka paljon REA alentaa luotettavan korvaajan rakentamisen kustannuksia. Se voi silti madaltaa kynnystä tutkia koodia, joka on jaettu asiakkaalle, ja se muistuttaa, ettei vaikeaselkoisuus ole koskaan ollut luotettava suoja.

Oikeus ja käyttö

Tämä osio ei ole oikeudellista neuvontaa.

Kolme asiaa menee helposti sekaisin, ja EU:n ohjelmistodirektiivi (2009/24/EY) käsittelee niitä eri tavoin:

  • Ohjelman toiminnan tarkkailu käytön aikana. Ohjelman käyttöoikeuden haltija saa direktiivin 5 artiklan 3 kohdan mukaan tarkkailla, tutkia ja testata ohjelman toimintaa selvittääkseen sen taustalla olevat ideat ja periaatteet, kun hän tekee asioita, joihin hänellä on oikeus, kuten käynnistää ohjelman. Tätä oikeutta ei voi sulkea pois sopimusehdolla (8 artikla).
  • Koodin purkaminen. Dekompilointi on sallittu ilman oikeudenhaltijan lupaa vain, jos se on välttämätöntä itsenäisesti tehdyn ohjelman yhteentoimivuuden kannalta ja muut 6 artiklan ehdot täyttyvät. Näin saatua tietoa ei saa käyttää ilmaisultaan olennaisesti samanlaisen ohjelman kehittämiseen, tuotantoon tai markkinointiin. Kilpailevan kopion tekemiseen se ei siis anna lupaa.
  • Muut säännöt. Direktiivi ei syrjäytä esimerkiksi patentteja, tavaramerkkejä, sopimattoman kilpailun ja liikesalaisuuksien suojaa eikä sopimusoikeutta (8 artikla). Käyttöehdot voivat siis rajoittaa muuta kuin edellä mainittuja oikeuksia.

Toiminnallisuutta ja suojattua ilmaisua pitää myös erottaa toisistaan. EU:n tuomioistuin totesi SAS Institute -ratkaisussa (C-406/10), ettei ohjelman toiminnallisuus eikä sen käyttämä ohjelmointikieli tai tiedostomuoto sellaisenaan ole ohjelmistotekijänoikeuden suojaama ilmaisumuoto. Ratkaisu ei silti anna yleislupaa: koodin ja sen omaperäisen ilmaisun kopiointi on suojattua. Ominaisuuden toteuttaminen uudelleen omalla koodilla on eri asia kuin toisen koodin, ohjetekstien tai kuvien kopioiminen.

Agentti tekee tästä erottelusta vaikeamman. Jos agentti saa syötteeksi puretun koodin ja kirjoittaa sen perusteella uuden toteutuksen, tulos voi periä alkuperäisen rakenteen. Ammattilaiset käyttävät tähän niin sanottua puhtaan huoneen menettelyä, jossa analysoija ja toteuttaja ovat eri ihmisiä ja toteuttaja saa vain toiminnan kuvauksen. Onko agentin työ lähempänä kopiointia vai itsenäistä toteutusta, on tapauskohtainen kysymys. Tarkat rajat riippuvat myös maasta ja tilanteesta. Jos aiot tutkia jonkun ohjelmaa tai toteuttaa sen uudelleen kaupallisesti, hanki ensin tapauskohtaista neuvontaa.

REAn tuki- ja käyttölinjaus rajaa käytön laillisiin tarkoituksiin: tutkimukseen, opetukseen, yhteentoimivuuteen ja ohjelmistojen säilyttämiseen, ja kohteeksi ohjelmiin, jotka omistat tai joiden tutkimiseen sinulla on lupa. Projektin vastuuvapauslausekkeen mukaan se ei tue kopiosuojauksen kiertämistä eikä suljetun ohjelmiston kopiointia. Nämä ovat projektin omia linjauksia. Lauseke sanoo erikseen, ettei se lisää MIT-lisenssiin uusia tekijänoikeudellisia ehtoja.

Kolme käytännön huomiota:

  • REA ei ole hiekkalaatikko. Projektin turvallisuusohje kertoo, että tuntemattoman ohjelman avaaminen siirtää analyysin valitulle paikalliselle työkalulle käyttäjän oikeuksilla. Osa tutkimuksesta on staattista eli ohjelmaa ei ajeta, mutta ajon aikaisen toiminnan seuraaminen käynnistää kohteen. Epäilyttävää ohjelmaa ei pidä tutkia omalla työkoneella ilman erillistä eristystä, esimerkiksi virtuaalikoneessa ilman henkilökohtaisia tunnuksia ja avaimia.
  • Agentti lukee myös kohteen tekstit. Ohjelman sisältämään tekstiin voi olla piilotettu agentille osoitettuja ohjeita, ja agentti voi ajaa komentoja. Tästä ilmiöstä kerrotaan sanastossa nimellä kehoteinjektio.
  • Missä analyysituloksia käsitellään. Paikallinen suoritus ei yksin kerro, minne tulokset menevät. Jos käytät pilvimallia, agentin mallille lähettämät tulokset siirtyvät mallipalveluun. Tarkista tietojenkäsittelyehdot ennen kuin syötät mitään, mitä et saa jakaa.

Mitä tästä kannattaa ottaa mukaan

Jos käytät vain ohjelmistopalveluja: sinun ei tarvitse tehdä mitään. Tämän uutisen perusteella ei ole syytä vaihtaa palveluita tai pelätä niiden katoavan.

Jos hankit tai rakennat ohjelmistoa: älä oleta, että asiakkaille jaettu käännetty koodi pysyy salaisena. Pidä arvoa tuottava logiikka palvelimella, älä upota avaimia tai salaisuuksia asiakkaalle jaettuun koodiin, ja mieti, kuinka paljon tuotteen arvosta riippuu datasta, palvelusta, tuesta ja luottamuksesta ja kuinka helposti kilpailija voisi toistaa ne.

Jos tutkit ohjelmistoja: mahdollisia käyttökohteita ovat vanhan ohjelman yhteensopivuuden korjaaminen, toimittajan väitteiden tarkistaminen ja ohjelmistojen säilyttäminen, mutta tarkasti dokumentoituja onnistumisia on vielä vähän. Varmista ensin, että sinulla on oikeus tutkia kohdetta (kohta Oikeus ja käyttö), kirjaa, mistä havainnosta kukin päätelmä tulee, ja tarkista agentin päätelmät alkuperäisistä havainnoista ja testeillä.

Jos haluat vain ymmärtää uutisen: REA on esimerkki siitä, mitä tapahtuu, kun agentti saa käyttöönsä työkaluja, joita ennen käytti vain asiantuntija. Samaa kuviota käsitellään jutussa vibe-koodaus ja avustettu ohjelmointi. Analyysityökalut ovat vanhoja, mutta niiden käyttö agentin ohjaamassa työnkulussa on uudempi kehitys, ja ihmisen rooli voi siirtyä tekijästä ohjaajaksi ja tarkastajaksi. Kuinka paljon työtä tämä säästää ja kuinka paljon asiantuntijan valvontaa se yhä vaatii, on avoin kysymys.

Mihin tämä jättää

Yhteenveto: REA helpottaa rajattujen ominaisuuksien selvittämistä, mutta siitä, että sillä voisi korvata kokonaisen sovelluksen, ei ole julkista näyttöä. Kun seuraavan kerran luet väitteen, että tekoäly tappaa ohjelmistot, kysy kolme asiaa: kuinka monta löydöstä voi todentaa, kuinka paljon ihmisen työtä oikeasti säästyy ja kuinka laajasti uusi versio kattaa alkuperäisen.

Lähteet

agentitMCPavoin lähdekoodiohjelmistottekijänoikeus

Harri Salomaa · 40 vuotta ohjelmistoalalla, siitä 20 Yhdysvalloissa ja Saksassa: prosessidatan keruusta ja verkkodatan analysoinnista immersiiviseen laskentaan ja viimeksi tekoälyyn.

Jaa tämä juttu