Koodin morfaus - Code morphing
Koodi morphing on käytetty lähestymistapa hämärtävät ohjelmiston suojaamaan ohjelmiston sovelluksia reverse engineering , analyysi , muutokset ja halkeilua. Tämä tekniikka suojaa keskitason koodia, kuten Java- ja .NET-kielistä ( Oxygene , C # , Visual Basic , jne.) Koottuja koodeja binäärikoodikoodin sijaan . Koodin morfiointi hajottaa suojatun koodin useaksi prosessorikomennoksi tai pieneksi komentokoodinpätkäksi ja korvaa ne muilla säilyttäen saman lopputuloksen. Siten suoja suojaa koodin välitasolla.
Koodimorphing on monitasoinen tekniikka, joka sisältää satoja ainutlaatuisia koodimuunnosmalleja. Lisäksi tämä tekniikka muuntaa jotkut välitasokomennot virtuaalikoneen komennoiksi (kuten p-koodi ). Koodin morfiointi ei suojaa ajonaikaisia jäljityksiä vastaan, mikä voi paljastaa minkä tahansa suojatun koodin suorituslogiikan.
Toisin kuin muut koodisuojat, tällä menetelmällä ei ole käsitystä koodin salauksen purkamisesta . Suojatut koodilohkot ovat aina suoritettavassa tilassa, ja ne suoritetaan (tulkitaan) muunnettuna koodina. Alkuperäinen välikoodi puuttuu tietyssä määrin, mutta hämärtyminen voi silti antaa selkeän kuvan alkuperäisestä koodivirrasta.
Koodimorfointia käytetään myös viitata Transmeta- prosessoreissa, kuten Crusoessa ja Efficeonissa , käytettyyn juuri oikeaan aikaan -kokoamistekniikkaan x86- käskyjoukkoarkkitehtuurin toteuttamiseksi .
Koodin morfointia käytetään usein kopiosuojauksen hämärtämiseen tai muihin ohjelman tekemiin tarkastuksiin sen selvittämiseksi, onko kyseessä pätevä, aito asennus vai luvaton kopio , jotta kopiosuojakoodin poistaminen olisi vaikeampi kuin muutoin olla asia.