當前位置:文思屋>學習教育>畢業論文>

計算機軟體反向工程問題研究

文思屋 人氣:2.91W

計算機軟體反向工程是軟體程式設計師研究程式、交流程式、造福使用者的一種方法,下面是小編蒐集自的一篇探究計算機軟體反向工程概況的論文範文,供大家閱讀參考。

計算機軟體反向工程問題研究

 【摘 要】計算機軟體反向工程是指計算機程式設計師找出一款現有軟體的原始碼,對它進行分析,並創造出另一款軟體。由於計算機的軟體具有一次性投入成本高、可多次複製的特點,所以反向工程造成種種問題。本文從計算機軟體反和工程目的、計算機軟體反向工程對計算機軟體開發市場的危害、約束計算機軟體反向工程的困境幾個方面進行研究。

 【關鍵詞】計算機軟體 反向工程

一、計算機軟體反向工程的概念

計算機軟體是由特定的程式語言編寫成的。目前絕大部分的軟體是由於程式語言編寫出功能模組,再對功能模組組合構成一款軟體。他人在使用這塊軟體時,有時會想對這款軟體的思路流程、語言用法進行研究,因此會用一種特別的技巧通過對軟體的反向解析找出軟體的原始碼,對軟體的原始碼進行分析和研究,然後根據自己的需要創造出一個新的計算機軟體產品。從這個過程可以看到,反向工程的步驟有三個:找出原始碼,對原始碼進行分析和理解,創作出另一款新的產品。只有完成以上三個步驟,才算完成計算機軟體的反向工程。如果用計算機軟體反向工程重新研製出一款軟體那只是個人的事情,然而如果將計算機軟體的反向工程作品散佈出去,則會引起一系列的問題。

 二、進行計算機軟體反向工程的目的

計算機軟體具有藝術價值,一個很好的軟體會做到功能和諧、介面和諧、設計和諧,達成一種藝術的效果,比如電子遊戲軟體就被人稱作第九藝術;具有科學價值,計算機軟體是由各種程式程式碼寫成,這些程式程式碼之間有嚴密的邏輯關係,如果研究計算機軟體,將獲得很大的科學價值;具有商業價值,計算機軟體的商業價值具有一次性投入多,然而卻可以用少量成本獲得極大商業利潤的特點。由於詐算機軟體有以上的特點,所以很多人熱衷於計算機軟體反向工程。總體來說,通常人們進行計算機軟體反向工作的目的如下:

(一)優化軟體的目的

1.排除執行故障

計算機軟體在設計時,往往會存在各式各樣執行的漏洞,這些軟體在開發時也許沒有得到徹底的檢驗,而軟體流向市場後,由於大範圍的被使用,軟體的執行漏洞也得到反饋。如果有些計算機軟體程式設計師要優化計算機軟體,可以通過計算機軟體的反向工程瞭解程式程式碼的編寫思想,通過優化的方法減少軟體的執行漏洞。

2.減少安全漏洞

從法律的角度上來說,計算機軟體的創作者只需要對軟體的效能負責,而不需要對安全故障負責,所以很多計算機軟體設計者會忽視安全漏洞的`問題。實際上計算機軟體的安全漏洞也是衡量軟體效能的一個方面。如果一款軟體安全故障太多,則軟體在計算機中執行,很容易出現安全隱患。有些程式設計員為了改善軟體的安全漏洞而實行計算機軟體反向工程。

(二)改變軟體的功能

一款計算機軟體的功能可能是綜合的,可能是單一的。它的功能不一定適合所有使用者的需要。有些軟體程式設計師認為該款軟體的功能不適合使用者的需要,可能通過計算機軟體反向工程對軟體的功能重新進行調整。有時程式設計師會精減一些軟體的功能,只保留軟體的基本功能;有時程式設計師會閱讀軟體的程式程式碼,將它的功能組合在另一款軟體上。比如說著名的平面製圖軟體Photoshop,它官方的軟體功能非常齊備。有一些民間軟體程式設計師將它實行反向工程,提煉出綠色精減的版本,滿足一些使用者基本的功能需求;有一些軟體程式設計師則提供組合版本,他們將大量的功能外掛直接組合在程式上,人們只需要安裝一款軟體就不需要額外尋找外掛,這種組合版給人們帶來很大的便利。

(三)商業開發的目的

要開發一款計算機軟體,它的成本投入主要在計算機軟體研發上,此時開發者需要投入大量的人力才力對軟體進行開發和測試,然而一旦開發結束,那麼軟體投入市場後,需要投入的宣傳成本、生產生本則很有限。因為軟體具有無限複製的特性,有些商家瞅準一些軟體潛在的商機,想研發近似的軟體投入市場進行競爭,卻不願意花費大量的研發成本,因此可能用反向工程的方法竊取他人的勞動成果,達到自己的商業目的。

 三、計算機軟體反向工程對計算機軟體開發市場的危害

計算機軟體反向工程雖然能提高軟體質量、加強程式設計師之間的交流,然而由於計算機軟體本身的特點,如果軟體反向工程被濫用,則會引起種種危害。這些危害包括:

(一)侵犯原創者的利益

一款計算機軟體研發出來,需要耗費原創者很多成本。這些成本包括人力、物力、財力,如果有人用計算機軟體反向工程重新制作軟體,則有可能危害軟體研發者的利益。比如以Photoshop為例,Photoshop是一款商業軟體,它是需要將軟體投放市場贏得利潤,如果利用計算機軟體反向工程將軟體的驗證密碼破譯,並且隨意更改軟體的功能,那麼軟體製作公司的商業利益則受到侵犯。

(二)引起不當的競爭

由於計算機軟體的特點,如果有人通過計算機軟體反向工程將軟體的功能模組提取並且修改,作為另一款商業軟體投放市場,那麼由於反向工程並不需要投入太多的研發成本,它需要花費的成本極少。以這種方式進入市場競爭,是對軟體原創者的不公平。比如360軟體開發出軟體醫生,騰訊軟體也緊隨著開發功能幾乎完全一致的軟體醫生,它將這樣的軟體與QQ軟體捆綁投入市場,該種競爭行為屬於性質惡劣的不當競爭。

(三)扼殺軟體的創造力

如果計算機軟體反向工程的作品投放在市場上,它能給軟體原創者巨大的衝擊。它不僅會削弱原創軟體的競爭力,還會使軟體設計者受到極大的經濟損失。如果反向工程不能得到必要的限制,那麼長此下去,很多計算機程式設計師都會熱衷於用軟體反向工程獲得經濟利潤而不願意做創造軟體這種吃力不討好的事情。因此,反向工程可能會極大挫創軟體設計者的創造性,使市場上很難再有創新的軟體。

四、約束計算機軟體反向工程的困境

智慧財產權是指公民、法人、組織在科學技術或文化藝術等領域內,用腦力勞動創造出的成果享有專有的權力。如果侵犯智慧財產權,將要承擔法律責任。智慧財產權的構成要件有以下四個:行為人要構成對原創者造成損害的事實;行為人要構成違反法律的事情;行為人因為主觀的原因給原創者造成損害;因為行為人的行為對原創者造成損害。根據智慧財產權的界定,計算機軟體的創作屬於智慧財產權的保護範圍。   然而在實際的法律界定中,計算機軟體反向工程是否構成侵犯智慧財產權又往往存在很多問題。其中存在的問題如下:

(一)評估軟體相似度指標的問題

在智慧財產權的判定中如果判斷侵犯智慧財產權,將要承擔法律責任。在智慧財產權的判斷中,構思不作為智慧財產權保護的對像,只有出現侵犯智慧財產權的事實,才能構成構成侵犯智慧財產權。如果在普通的文藝作品中,可以根據相似的文字、相似的情節來作為判斷是否侵犯智慧財產權的指標,那麼計算機軟體反向工程又以什麼指標還判斷是否侵犯智慧財產權?軟體的程式碼通常是用相似的語言格式寫成,那麼不能以相似度作為判斷標準。就目前來說,以軟體的相似度作為評體標準似乎比較合理。

(二)軟體反向工程盈利的問題

如果行為人將一款軟體進行反向工程創作出另一款軟體,並且投入商業盈利中,那麼可以判定為不當競爭,並且要承擔法律責任。然而部分行為人創造出軟體反向工程僅僅只為了完善軟體的功能,他們主觀上傳播軟體是為了非盈利的目的,然而卻給軟體創造者造成了實際的商經濟利益侵害,如果以智慧財產權的標準,他們的行為為非主觀侵害,那麼很難依侵犯智慧財產權的法律對該種行為進行約束;部分行為人將反向工程的軟體綁捆在另一款軟體中,通過捆綁的方式加大自己軟體的價值,該種行為也是非盈利行為,然而也對軟體創造者造成利益侵犯,那麼如何用現有的智慧財產權對軟體反向工程的行為進行定義?目前認為,如果軟體通過指標判定,確屬反向工程,那麼應以傳播的數量來論定是否造成傷害會比較合理。

(三)激勵軟體原創的問題

如果軟體反向工程能夠獲得巨大的利潤,而軟體的原創者耗費巨大的成本卻難以得到利潤回報,如果軟體創造人員的積極性長期被挫傷,這個軟體市場一定是畸型的。在這片市場下孕育出的商品也一定沒有創造力。為了激勵原創軟體作品,讓原創軟體作品有盈利的空間,就需要對軟體反向工程不當盈利追究法律責任,而要用法律的方法對計算機軟體反向工程進行約束則需要細化智慧財產權的內容。它要求知識產權制訂的細節能適當資訊時代的需要。如果不能在立法上保護軟體創造者的利益、在執法上對投機取巧的行為人給於嚴厲的打擊,那麼將無法形成良好的軟體創造環境,就會造成計算機軟體創造的危機。

 五、總結

計算機軟體反向工程並不是一件應當受到指責的事情,它是軟體程式設計師研究程式、交流程式、造福使用者的一種方法,然而如果不能對軟體反向工程有效的界定,這種行為將會造成極嚴重的危害。因此,制定智慧財產權法律的人員和與之相關的人員應當重視計算機軟體反向工程的問題,給計算機軟體創造一個良好的環境。

參考文獻:

[1].中華人民共和國著作權法.

[2].黃勤南.尉曉珂.計算機軟體的智慧財產權保護.北京:專利檔案出版社,1999(8).

[3].吳漢東.軟體合理使用制度研究.北京:北京大學出版社,1991.