Reverse engineering / Takaisinmallinnus

Takaisinmallinnus tarkoittaa prosessia, jossa jokin ihmisen luoma kohde puretaan vaihe vaiheelta jotta saadaan selville kuinka se on suunniteltu, kuinka se toimii, mistä se koostuu tai jotta siitä saadaan irti jotain muuta olennaista informaatiota. Tavallaan takaisinmallinnus on sama kuin tieteellinen tutkimus, paitsi että tieteellinen tutkimus keskittyy luonnon ilmiöihin ja takaisinmallinnus ihmisten luomuksiin. Jos takaisinmallinnus onnistuu, pystyy sen pohjalta luomaan alkuperäisen kohteen uudestaan (re-engineering).

Reverse engineering process

Takaisinmallinnusta voidaan soveltaa useissa tapauksissa, mutta tyypillisimpiä ovat: * Koneiden takaisinmallinnus * Ohjelmistojen takaisinmallinnus * Protokollien takaisinmallinnus

1990 Institute of Electrical and Electronics Engineers (IEEE) määritteli takaisinmallinnuksen seuraavasti, tarkoittaen tietoteknisiä sovelluksia: "The process of analyzing a subject system to identify the system's components and their interrelationships and to create representations of the system in another form or at a higher level of abstraction."

Protokollien takaisinmallinnuksesta voisi käyttää esimerkkinä, jos joku yrittäisi selvittää tarkistussummasta alkuperäisen lähteen. Tarkistussumma on luotu käyttäen tiettyjä toimenpiteitä jotka kohdistetaan alkuperäiseen lähteeseen, joten jos toimenpiteet (protokolla) ovat tiedossa, periaatteessa alkuperäinen olisi selvitettävissä. Toimittaa vain kyseiset toimenpiteet käänteisessä järjestyksessä. (Toim. huom. jos tämä toimisi luotettavalla tasolla, olisi protokolla tarkistussumman luomiseen surkea.)

Parempi esimerkki takaisinmallinnuksesta löytyy täältä.
Tiivistettynä, kirjoittaja kertoo miten hänen kaverinsa käyttävät useita pikaviestimiä, kuten AIM, Yahoo ja Messenger. On tuskaista käyttää kaikkia yhtä aikaa. Tähän pelastuksena löytyy avoimen lähdekoodin softa nimeltä Fire, joka pääsee kaikkiin näihin ohjelmiin ja sen kautta pystyy käyttämään kaikkia aiemmin mainittuja sovelluksia.

Jotta tämä on mahdollista, on Firen luojan pitänyt purkaa kyseiset ohjelmat osiin, tutkia miten ne toimivat ja sitä kautta löytää keinot yhdistää oma sovelluksensa näihin. Takaisinmallinnusta parhaimmillaan, koska se mahdollistaa useiden pikaviestimien käyttämisen ohjelmalla, jossa on ominaisuuksia joita ei alkuperäisissä ole.

Muita syitä takaisinmallinnukseen tarjoaa NPD-solutions:

Following are reasons for reverse engineering a part or product:

  1. The original manufacturer of a product no longer produces a product
  2. There is inadequate documentation of the original design
  3. The original manufacturer no longer exists, but a customer needs the product
  4. The original design documentation has been lost or never existed
  5. Some bad features of a product need to be designed out. For example, excessive wear might indicate where a product should be improved
  6. To strengthen the good features of a product based on long-term usage of the product
  7. To analyze the good and bad features of competitors’ product
  8. To explore new avenues to improve product performance and features
  9. To gain competitive benchmarking methods to understand competitor’s products and develop better products
  10. The original CAD model is not sufficient to support modifications or current manufacturing methods
  11. The original supplier is unable or unwilling to provide additional parts
  12. The original equipment manufacturers are either unwilling or unable to supply replacement parts, or demand inflated costs for sole-source parts
  13. To update obsolete materials or antiquated manufacturing processes with more current, less-expensive technologies NPD-solutions

Takaisimallinnuksen kanssa pitää olla tarkkana lainsäädännön, patenttien ja tekijänoikeuksien kanssa. Lainsäädäntö asian suhteen on melkoisen tulkinnanvarainen, varsinkin jos otetaan huomioon kansainvälisyys, mutta esimerkiksi tietokoneohjelmien kohdalla nyrkkisääntönä on ettei koodia saa disassembloida (purkaa koodia helpommin luettavaan muotoon). Poikkeuksiakin löytyy, kuten tämä linkki osoittaa.

Lähteitä:
Wikipedia
Techliberation
Onko reverse engineering sallittua