Reverse engineering
Z Wikipedii
Technika odwracania, inżynieria odwrotna, inżynieria wsteczna (ang. reverse engineering) to proces badania produktu (urządzenia, programu komputerowego) w celu ustalenia jak 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.
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 (co jednak nie zawsze jest możliwe, ponieważ patenty dotyczą funkcjonalności, nie zaś sposobu ich realizacji).
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.
[edytuj] Najbardziej znane przykłady zastosowania tej techniki
- radziecki samolot Tu-4, będący kopią Boeinga B-29, którego trzy egzemplarze musiały przymusowo lądować na Syberii w 1944 roku.
- radziecki komputer osobisty AGATHA, zbudowany na podstawie Apple II
[edytuj] Niektóre techniki inżynierii wstecznej w informatyce
- dla protokołów komunikacyjnych:
- analiza komunikatów (wykorzystuje snifer)
- automatyczne generowanie dużych podzbiorów przestrzeni komunikatów
- dla oprogramowania: