逆向工程的起源自然是在編譯器技術(shù)的發(fā)展以后。據(jù)說在最早期,程序員之間互相交流、傳閱源代碼是極其普通的事情。后來,隨著商業(yè)利益的驅(qū)使,源代碼交流開始減少,源代碼作為公司或個人的產(chǎn)權(quán),被加以嚴密保護。于是崇尚自由的Hacker精神,導(dǎo)致部分的程序員轉(zhuǎn)去研究如何“將編譯后的二進制代碼反推,得到源代碼”。
這個活動一直延續(xù)了下來。期間,“自由精神”的驅(qū)使,也使部分人產(chǎn)生了“人人都能自由使用每個軟件”的想法,逐漸的,“軟件破解”浮上了水面。更隨著盜版商的加入,“軟件破解”也被商業(yè)軟件公司描述的越來越邪惡。

按逆向工程包括的內(nèi)容可以分為3類:
1. 軟件使用限制的去除,或軟件功能的添加
按照計算機類別,可以分為個人微型計算機、小型機、中型機、大型機等;
按照操作平臺或處理器類型,可以分為windows、MAC、UNIX,x86,risc等
按照限制類型,可以分為軟件使用時間限制,軟件功能模塊限制、軟件運行條件限制(軟件狗等)、軟件注冊限制等;
可以是軟件功能限制的去除,也可以是軟件功能的添加。
2. 軟件源代碼的再獲得
按照計算機類別,可以分為個人微型計算機、小型機、中型機、大型機等;
按照操作平臺,可以分為windows、MAC、UNIX等
按照軟件層次,可以分為普通應(yīng)用層軟件與操作系統(tǒng)源等。
3. 硬件的復(fù)制、模擬
由此觀之,一般所謂的“軟件破解”只是逆向工程中非常初級的一小部分。
上一篇:什么是逆向工程,是怎樣進行的?