Reverse engineering adalah proses untuk menemukan prinsip-prinsip teknologi perangkat, objek, atau sistem melalui analisis struktur, fungsi, dan operasi. Hal ini sering melibatkan mengambil sesuatu (misalnya, perangkat mekanik, komponen elektronik, program perangkat lunak, atau biologis, kimia, atau bahan organik) terpisah dan menganalisis kerjanya secara rinci untuk digunakan dalam pemeliharaan, atau mencoba untuk membuat perangkat baru atau program yang melakukan hal yang sama tanpa menggunakan atau hanya duplikasi (tanpa pemahaman) yang asli.
Reverse engineering memiliki asal-usul dalam analisis hardware untuk keuntungan komersial atau militer. Tujuannya adalah untuk menyimpulkan keputusan desain dari produk akhir dengan pengetahuan tambahan sedikit atau tidak ada tentang prosedur yang terlibat dalam produksi asli. Teknik yang sama yang kemudian diteliti untuk aplikasi untuk sistem perangkat lunak warisan, bukan untuk tujuan industri atau pertahanan, melainkan untuk mengganti yang salah, dokumentasi tidak lengkap, atau tidak tersedia.