反工程,也稱為逆向工程或反向工程,是一種通過分析和研究已有的產品或技術,以推導出其設計原理、結構、功能或軟體代碼的過程。這個過程可以套用於不同的領域,包括物理產品、軟體和積體電路等。
實物逆向:在已有產品實物的情況下,通過測繪和分析,研究產品的結構、功能、性能等方面,以實現再創造或複製。實物逆向的對象可以是整機、零部件或組件。
軟體逆向:涉及對技術軟體的分析,如產品樣本、技術檔案、設計書、使用說明書、圖紙、規範和標準等。軟體逆向分為三種情況:有實物和技術軟體、只有實物無技術軟體、無實物只有技術軟體。
影像逆向:當設計者沒有產品實物和技術軟體,只有產品的圖片、廣告介紹或印象時,通過這些影像資料去構思和設計產品。
逆向工程的目的是為了理解現有產品的設計和功能,以便於維護、改進、複製或創造類似的產品。在軟體領域,逆向工程可能包括反彙編、反編譯和動態跟蹤等方法,以分析軟體的實現過程並文檔化,使得軟體得以維護。在硬體領域,反工程可能涉及使用專業工具對晶片進行照相和剝離,以獲取晶片的結構信息,進而製作或複製新的電路。