Inżynieria odwrotna, zwana także wsteczną, a z angielskiego — reverse engineering, polega na badaniu urządzenia lub programu, aplikacji, gry itd. w celu ustalenia, jak działają. Z metod inżynierii odwrotnej korzysta się z reguły albo po to, by przygotować odpowiednik badanego oprogramowania, albo po to, by skoordynować pracę własnego programu