Inżynieria odwrotna

Z Wikipedii, wolnej encyklopedii
Skocz do: nawigacji, wyszukiwania

Technika odwracania, inżynieria odwrotna, inżynieria wsteczna, programowanie zwrotne (ang. reverse engineering) – proces badania produktu (urządzenia, programu komputerowego) w celu ustalenia, jak on dokładnie działa, a także w jaki sposób i jakim kosztem został wykonany. Zazwyczaj prowadzony w celu zdobycia informacji niezbędnych do skonstruowania odpowiednika. Innym zastosowaniem jest porównanie lub zapewnienie współdziałania z własnymi produktami. Uwaga: inżynierii wstecznej nie należy mylić z business process reengineering czy z reengineeringiem oprogramowania, którego to inżynieria odwrotna jest tylko etapem wstępnym.

Inżynieria wsteczna jest często wykorzystywana w celu osiągnięcia pewnej funkcjonalności, przy ominięciu konsekwencji wynikających z praw autorskich lub patentów.

Jest także używana przez wojsko, w celu skopiowania technologii opracowanych przez inne państwa, często wspomagana działalnością wywiadowczą. Zjawisko to było powszechne podczas II wojny światowej i zimnej wojny.

Inżynieria wsteczna oprogramowania i elementów komputera może być stosowana w celu zapewnienia obsługi nieudokumentowanym standardom zapisu, protokołom komunikacyjnym czy też urządzeniom peryferyjnym.

Inną przyczyną dokonywania inżynierii wstecznej jest przeprowadzenie audytu bezpieczeństwa, usunięcie zabezpieczeń przed kopiowaniem (cracking) lub chęć odblokowania ukrytej funkcjonalności produktu..

Najbardziej znane przykłady zastosowania tej techniki[edytuj | edytuj kod]

Niektóre techniki inżynierii wstecznej w informatyce[edytuj | edytuj kod]

  • dla protokołów komunikacyjnych:
    • analiza komunikatów (wykorzystuje sniffer)
    • automatyczne generowanie dużych podzbiorów przestrzeni komunikatów
  • dla oprogramowania:
  • dla Inżynierów lokalizacji
    • eksport oraz import danych tekstowych
    • testowanie aplikacji po tłumaczeniu
    • przygotowanie elementów nieedytowalnych
    • przystosowanie do wersji wielojęzycznej

Zobacz też[edytuj | edytuj kod]