逆向工程 課件 第1章 基礎(chǔ)(2013年2月25日)_第1頁
逆向工程 課件 第1章 基礎(chǔ)(2013年2月25日)_第2頁
逆向工程 課件 第1章 基礎(chǔ)(2013年2月25日)_第3頁
逆向工程 課件 第1章 基礎(chǔ)(2013年2月25日)_第4頁
逆向工程 課件 第1章 基礎(chǔ)(2013年2月25日)_第5頁
已閱讀5頁,還剩69頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)

文檔簡介

共74頁1《逆向工程》第1章基礎(chǔ)(2學時)本章主要內(nèi)容(1)逆向工程的定義及其在軟件領(lǐng)域的應(yīng)用;(2)底層軟件(Low-Levelsoftware)和逆向工程之間的聯(lián)系;(3)逆向工程過程及其商用工具;(4)逆向工程合法性討論。共74頁21.1什么是逆向工程(從工程角度)1、逆向工程是從任何人造的東西中提取知識或設(shè)計規(guī)劃的過程。2、逆向工程與傳統(tǒng)科學研究之間的差異

逆向工程研究的對象是人造的;而傳統(tǒng)科學研究的對象是自然現(xiàn)象。3、逆向工程就是在物理上將現(xiàn)有的產(chǎn)品解剖,以揭示其中的設(shè)計秘密。然后用這些設(shè)計秘密來制造相似的或更好的產(chǎn)品。共74頁31.2軟件逆向工程(簡稱逆向)1、IEEE軟件工程技術(shù)委員會行政秘書E.J.Chikofsky和J.H.Cross的定義

軟件逆向工程是分析目標系統(tǒng),認定系統(tǒng)的組件及其交互關(guān)系,并且通過高層抽象或其他的形式來展現(xiàn)目標系統(tǒng)的過程。

軟件是目前我們周圍最復雜,也是最能引發(fā)人們興趣的技術(shù)之一,而軟件逆向工程就是要打開程序的“外殼”,觀察其內(nèi)容。共74頁42、IEEE1990定義

逆向工程是了解軟件“所作所為”的一套最重要的技術(shù)和工具。正式地講,逆向工程是“通過分析目標系統(tǒng)以識別系統(tǒng)的組件以及這些組件之間的相互關(guān)系并創(chuàng)建該系統(tǒng)另一種形式的表示或更高級的抽象過程”。1.2軟件逆向工程(簡稱逆向)(續(xù))共74頁53、軟件逆向工程需要將技能以及對軟件的開發(fā)和計算機的全部理解結(jié)合起來。4、軟件逆向工程融合了以下技術(shù)

密碼破解(codebreaking)、猜字謎(puzzlesolving)、程序設(shè)計和邏輯分析。1.2軟件逆向工程(簡稱逆向)(續(xù))共74頁61.3逆向應(yīng)用1、逆向工程在大多數(shù)行業(yè)中的典型應(yīng)用是開發(fā)有競爭力的產(chǎn)品。2、逆向工程在軟件行業(yè)中的應(yīng)用并不像想像的那樣普遍?

軟件太復雜、成本、時間、技術(shù)發(fā)展等。

與安全相關(guān)的逆向應(yīng)用和與軟件開發(fā)相關(guān)的逆向應(yīng)用兩方面。3、逆向工程在軟件行業(yè)中的主要應(yīng)用共74頁71.3.1與安全相關(guān)的逆向應(yīng)用

逆向與計算機安全在諸多方面有關(guān)系。如逆向已被應(yīng)用于加密研究——研究人員逆向一個已加密的產(chǎn)品,評價該產(chǎn)品提供的安全等級。

對相當一部分人來說,安全和逆向之間的聯(lián)系可能不那么清晰。共74頁8計算機安全等級劃分標準

幾年前,美國國防部為計算機安全的不同級別制訂了4個準則。橙皮書(正式名稱為可信任計算機標準評估標準)包括計算機安全級別的分類??匆幌逻@些分類可以了解在一些系統(tǒng)中固有的各種安全風險,并能掌握如何減少或排除這些風險。

共74頁9(1)D1

這是計算機安全的最低一級。整個計算機系統(tǒng)是不可信任的,硬件和操作系統(tǒng)很容易被侵襲。D1級計算機系統(tǒng)標準規(guī)定對用戶沒有驗證,也就是任何人都可以使用該計算機系統(tǒng)而不會有任何障礙。系統(tǒng)不要求用戶進行登記(要求用戶提供用戶名)或口令保護(要求用戶提供唯一字符串來進行訪問)。任何人都可以坐在計算機前并開始使用它。共74頁10(1)D1

級(續(xù))

D1級的計算機系統(tǒng)包括:

①MS-Dos;

②MS-Windows3.x及Windows95(不在工作組方式中);

③Apple的System7.x。

(2)C1

級C1級系統(tǒng)要求硬件有一定的安全機制(如硬件帶鎖裝置和需要鑰匙才能使用計算機等),用戶在使用前必須登錄到系統(tǒng)。共74頁11(2)C1

級(續(xù))C1級系統(tǒng)還要求具有完全訪問控制的能力,應(yīng)當允許系統(tǒng)管理員為一些程序或數(shù)據(jù)設(shè)立訪問許可權(quán)限。C1級防護不足之處在于用戶直接訪問操作系統(tǒng)的根。C1級不能控制進入系統(tǒng)的用戶的訪問級別,所以用戶可以將系統(tǒng)的數(shù)據(jù)任意移走。共74頁12(2)C1

級(續(xù))

常見的C1級兼容計算機系統(tǒng)如下:

①UNIX

系統(tǒng);②XENIX;

③Novell3.x或更高版本;

④Windows

NT。(3)C2

C2級在C1級的某些不足之處加強了幾個特性,C2級引進了受控訪問環(huán)境(用戶權(quán)限級別)的增強特性。共74頁13(3)C2

級(續(xù))

這一特性不僅以用戶權(quán)限為基礎(chǔ),還進一步限制了用戶執(zhí)行某些系統(tǒng)指令。授權(quán)分級使系統(tǒng)管理員能夠分用戶分組,授予他們訪問某些程序的權(quán)限或訪問分級目錄。另一方面,用戶權(quán)限以個人為單位授權(quán)用戶對某一程序所在目錄的訪問。如果其他程序和數(shù)據(jù)也在同一目錄下,那么用戶也將自動得到訪問這些信息的權(quán)限。共74頁14C2級系統(tǒng)還采用了系統(tǒng)審計。審計特性跟蹤所有的“安全事件”,如登錄(成功和失敗的),以及系統(tǒng)管理員的工作,如改變用戶訪問和口令。(3)C2

級(續(xù))

常見的C2級操作系統(tǒng)有:

①UNIX

系統(tǒng);

②XENIX;

③Novell3.x或更高版本;

④Windows

NT。共74頁154、B1

級B1級系統(tǒng)支持多級安全,多級是指這一安全保護安裝在不同級別的系統(tǒng)中(網(wǎng)絡(luò)、應(yīng)用程序、工作站等),它對敏感信息提供更高級的保護。例如安全級別可以分為解密、保密和絕密級別。共74頁165、B2

這一級別稱為結(jié)構(gòu)化的保護(Structured

Protection)。B2

級安全要求計算機系統(tǒng)中所有對象加標簽,而且給設(shè)備(如工作站、終端和磁盤驅(qū)動器)分配安全級別。如用戶可以訪問一臺工作站,但可能不允許訪問裝有人員工資資料的磁盤子系統(tǒng)。共74頁176、B3

B3級要求用戶工作站或終端通過可信任途徑連接網(wǎng)絡(luò)系統(tǒng),這一級必須采用硬件來保護安全系統(tǒng)的存儲區(qū)。7、A級

這是橙皮書中的最高安全級別,這一級有時也稱為驗證設(shè)計(ve-rified

design)。與前面提到各級級別一樣,這一級包括了它下面各級的所有特性。共74頁187、A級(續(xù))A級還附加一個安全系統(tǒng)受監(jiān)視的設(shè)計要求,合格的安全個體必須分析并通過這一設(shè)計。另外,必須采用嚴格的形式化方法來證明該系統(tǒng)的安全性。而且在A級,所有構(gòu)成系統(tǒng)的部件的來源必須安全保證,這些安全措施還必須擔保在銷售過程中這些部件不受損害。例如,在A級設(shè)置中,一個磁帶驅(qū)動器從生產(chǎn)廠房直至計算機房都被嚴密跟蹤。

共74頁19

逆向也大量地被應(yīng)用在與惡意軟件(malicioussoftware)相關(guān)場合,而且惡意軟件的開發(fā)者和那些提供對抗方法的人都會使用它。1.3.1與安全相關(guān)的逆向應(yīng)用(續(xù))

逆向在解密高手(cracker)中很流行,他們利用逆向來分析并最終破解不同的拷貝保護方案(copyprotectionschemes)。共74頁201、在惡意軟件方面的應(yīng)用(1)什么叫惡意軟件?

經(jīng)反惡意軟件協(xié)調(diào)工作組討論確定,惡意軟件是指在未明確提示用戶或未經(jīng)用戶許可的情況下,在用戶計算機或其他終端上安裝運行,侵害用戶合法權(quán)益的軟件,但不包含我國法律法規(guī)規(guī)定的計算機病毒。共74頁21(2)逆向被廣泛應(yīng)用于惡意軟件鏈(malicioussoftwarechain)的兩端。①惡意軟件的開發(fā)者往往利用逆向的方法定位操作系統(tǒng)和其他軟件中的漏洞(vulnerabilities)。惡意軟件可以利用這些漏洞穿透系統(tǒng)的防御層并實施感染——這通常發(fā)生在互聯(lián)網(wǎng)上。除了感染系統(tǒng)之外,不法分子通常會使用逆向技術(shù)定位軟件的漏洞,惡意軟件程序利用這些漏洞就能讀取敏感信息,甚至完全控制這個系統(tǒng)。共74頁22②在惡意軟件鏈的另一端,防病毒軟件的開發(fā)者解剖并分析他們掌握的每一個惡意程序。他們使用逆向技術(shù)跟蹤惡意程序的每個步驟,并評估其可能產(chǎn)生的破壞、預(yù)期的感染率、如何從被感染的系統(tǒng)中刪除它、以及是否可以避免感染。(2)逆向被廣泛應(yīng)用于惡意軟件鏈(malicioussoftwarechain)的兩端。(續(xù))共74頁23

加密算法可以粗略地分為兩類:約束算法(restrictedalgorithms)和基于密鑰的算法。2、對加密算法進行逆向應(yīng)用共74頁24

在約束算法中的秘密就是算法本身。一旦算法被公開,就不再安全了。(1)約束算法

約束算法提供的安全性是比較低的,因為逆向技術(shù)使得約束算法很難維護算法本身所包含的秘密。

只要逆向工作者著手于加密或解密程序,破解算法只是個時間問題。由于算法本身就是秘密,所以逆向可以看作是一種破解算法的方法。共74頁25

在基于密鑰的算法中,秘密就是密鑰,算法使用某個特定的數(shù)值對消息進行加密和解密。(2)基于密鑰的算法共74頁26①獲取密鑰,或者;②嘗試所有可能的密鑰組合直到得到該正確的密鑰,或者;

為了破解一條基于密鑰的密碼(key_basedciphers)加密消息,你需要下列三種信息之一:③在算法中尋找能夠用來提取密鑰或者原始信息的缺陷。

要知道安全產(chǎn)品是否真正安全的唯一途徑是:要么仔細檢查其源碼,要么對其實施逆向。共74頁273、在數(shù)字化權(quán)限管理方面應(yīng)用(1)現(xiàn)代計算機已經(jīng)將多種受版權(quán)保護的資料(copyrightedmaterials)轉(zhuǎn)換成了數(shù)字信息。

如音樂、電影、甚至書籍,這些以前只能通過物理模擬介質(zhì)獲得的資料,現(xiàn)在都可以通過數(shù)字化的形式獲得。(2)數(shù)字化信息具有令人難以置信的傳播速度。共74頁28(3)軟件公司通過在軟件中嵌入拷貝保護技術(shù)(copyprotectiontechnologies)來應(yīng)付盜版??截惐Wo技術(shù)是嵌入在供應(yīng)商的軟件產(chǎn)品之上的附加軟件部分,用來阻止或限制用戶拷貝這個程序。3、在數(shù)字化權(quán)限管理方面應(yīng)用(續(xù))(4)數(shù)字化媒體(digitalmedia)已成為現(xiàn)實,數(shù)字權(quán)限管理(digitalrightsmanagement,DRM)技術(shù)用來保護這些數(shù)字化媒體。共74頁29(1)軟件所要保護的事物是主動的(active)或“智能的”,它能夠決定是否要使自己變得可用。3、在數(shù)字化權(quán)限管理方面應(yīng)用(續(xù))

DRM技術(shù)在概念上和前面提到的傳統(tǒng)軟件拷貝保護技術(shù)非常類似。區(qū)別在于:(2)數(shù)字媒體則是一種通常被其他程序播放或閱讀的被動(passive)元素,這使得控制或限制其使用變得更為困難。共74頁30(5)要破解DRM技術(shù),就必須了解它是如何工作的。通過使用逆向技術(shù),軟件破解者可以了解DRM技術(shù)的內(nèi)部秘密,找到使保護措施無效而對程序進行可能的最簡單的修改。3、在數(shù)字化權(quán)限管理方面應(yīng)用(續(xù))共74頁314、在審核程序的二進制代碼方面應(yīng)用(1)開放源碼軟件的一個優(yōu)勢是從本質(zhì)上講它更可靠、更安全。經(jīng)過數(shù)以千計的公正的軟件工程師檢驗和認可。(2)審核程序的二進制代碼可以盡早發(fā)現(xiàn)程序中的某些弱點和安全漏洞,通常都是在被惡意軟件利用之前發(fā)現(xiàn)。(3)對于得不到源代碼的專利軟件(proprietarysoftware),逆向成為查找其安全漏洞的一種可行的(當然是有限的)方法。共74頁321.3.2在軟件開發(fā)中的逆向應(yīng)用

逆向?qū)浖_發(fā)人員來說有著令人難以置信的用途,有以下三點:(1)軟件開發(fā)人員可以利用逆向技術(shù)發(fā)掘如何實現(xiàn)與沒有文檔的或只有部分文檔軟件的互操作。(2)逆向可以用來確定諸如代碼庫甚至于操作系統(tǒng)這樣的第三方代碼的質(zhì)量。共74頁33(3)為了提高自己的技術(shù),有時也可以利用逆向技術(shù)從競爭方的產(chǎn)品中提取有價值的信息。1.3.2在軟件開發(fā)中的逆向應(yīng)用(續(xù))1、在實現(xiàn)與專利軟件互操作中的應(yīng)用(1)互操作是大多數(shù)軟件工程師差不多每天都能從逆向中得到的好處。(2)使用已申請專利的軟件庫或操作系統(tǒng)的API時,通常面臨缺乏足夠文檔的困境。共74頁342、在開發(fā)競爭軟件方面應(yīng)用(1)開發(fā)競爭軟件仍然是逆向工程在大多數(shù)行業(yè)中最主要的應(yīng)用。(2)白手起家設(shè)計和開發(fā)產(chǎn)品,或者只是簡單地允許使用第三方開發(fā)的比較復雜的組件的條件下進行產(chǎn)品設(shè)計和開發(fā),都要比從已有軟件內(nèi)部進行開發(fā)(指逆向)容易得多。共74頁35(3)大多數(shù)情況下獨立開發(fā)自己的軟件是比較簡單的,除了那些難以開發(fā)或需要花費很大代價才能開發(fā)的高度復雜的或者特殊的設(shè)計/算法。(4)大多數(shù)應(yīng)用程序仍然要獨立開發(fā),但對高度復雜或特殊的組件來說可以逆向,并在新的產(chǎn)品中重新實現(xiàn)他們。2、在開發(fā)競爭軟件方面應(yīng)用(續(xù))共74頁36

可以對程序的二進制代碼進行嘗試取樣檢測來評估在程序中所使用編碼實現(xiàn)的整體質(zhì)量。

Microsoft對于購買超過1000套的大客戶,出于評估的目的,可以獲得Windows源代碼的訪問權(quán)。

不能獲得源代碼只能相信企業(yè)對于產(chǎn)品質(zhì)量的承諾,或者求助于逆向技術(shù)。3、在評估軟件的質(zhì)量及健壯性方面應(yīng)用共74頁371.4底層軟件

底層軟件(也稱為系統(tǒng)軟件)是整個軟件體系基礎(chǔ)軟件(infrastructure)的統(tǒng)稱。1、什么是底層軟件?

底層軟件包括諸如編譯器、鏈接器(Linker)和調(diào)試器的開發(fā)工具,諸如操作系統(tǒng)的基礎(chǔ)軟件,以及像匯編語言這樣的低級程序設(shè)計語言。共74頁382、底層軟件將開發(fā)人員和應(yīng)用程序與物理硬件隔離開來;3、開發(fā)工具將軟件開發(fā)人員與處理器架構(gòu)及匯編語言隔開;4、操作系統(tǒng)將軟件開發(fā)人員與特定的硬件設(shè)備隔離開來,并通過管理顯示器、鼠標、鍵盤等簡化了系統(tǒng)與終端用戶的交互。1.4底層軟件(續(xù))共74頁395、現(xiàn)代操作系統(tǒng)以及各種開發(fā)工具將軟件開發(fā)人員與底層世界的細節(jié)分離開來。這大大簡化了軟件開發(fā)的過程,但這是以犧牲系統(tǒng)的效率和對系統(tǒng)的控制為代價的。

要想成為一名熟練的逆向工程師,你必須深入理解底層軟件和底層程序設(shè)計。1.4底層軟件(續(xù))

計算機和軟件是一層一層構(gòu)建起來的,逆向工程師必須完全了解在程序源代碼與CPU之間傳遞的所有事物。共74頁401.4.1匯編語言1、匯編語言位于軟件鏈的最底層,它尤其適合于做逆向——沒有它簡直寸步難行,匯編語言就是逆向語言。2、匯編語言是一類語言,而不是一門語言。3、機器碼和匯編語言是同一種事物的兩種不同表示。4、反匯編器是逆向工程師的必備工具。共74頁415、平臺的確定—Intel的IA-32架構(gòu)。1.4.2編譯器1、編譯器是一個接收源文件并生成相對應(yīng)的機器碼文件的程序。2、破解編譯器生成代碼的最大障礙1.4.1匯編語言(續(xù))

大多數(shù)現(xiàn)代編譯器都采用了優(yōu)化措施。

產(chǎn)生的優(yōu)化代碼通常是違反程序設(shè)計思維的,使得我們很難讀懂它。共74頁421.4.3虛擬機和字節(jié)碼1、什么是虛擬機?

在一臺電腦上將硬盤和內(nèi)存的一部分拿出來虛擬出若干臺機器,每臺機器可以運行單獨的操作系統(tǒng)而互不干擾,這些“新”機器各自擁有自己獨立的CMOS、硬盤和操作系統(tǒng),你可以像使用普通機器一樣對它們進行分區(qū)、格式化、安裝系統(tǒng)和應(yīng)用軟件等操作,還可以將這幾個操作系統(tǒng)聯(lián)成一個網(wǎng)絡(luò)。共74頁432、像Java編譯器這樣的高級語言編譯器,編譯生成的是字節(jié)碼而不是目標代碼。字節(jié)碼是由程序解碼的,而機器碼是由CPU解碼的。1.4.3虛擬機和字節(jié)碼(續(xù))3、使用基于字節(jié)碼的語言的最大優(yōu)勢在于與平臺無關(guān)。共74頁441.4.4操作系統(tǒng)1、操作系統(tǒng)是管理計算機硬件和軟件應(yīng)用程序的系統(tǒng)。操作系統(tǒng)負責許多不同的任務(wù),可以把它看作計算機中不同單元之間的協(xié)調(diào)器。2、任何逆向人員都必須深入地理解操作系統(tǒng)做些什么以及是怎樣做的。3、操作系統(tǒng)就像一個看門人一樣,控制著應(yīng)用程序與外部世界的聯(lián)系。共74頁451.5逆向工程

對初學者而言將逆向工作大致分為兩個階段:1、對早期程序進行大范圍的觀察,這個階段被稱為系統(tǒng)級逆向。

系統(tǒng)級逆向技術(shù)幫助我們確定程序的基本結(jié)構(gòu),有時甚至能幫我們找到感興趣的區(qū)域。2、代碼級逆向技術(shù)能為我們提供所選定的代碼塊的詳細信息。共74頁461.5.1系統(tǒng)級逆向

系統(tǒng)級逆向技術(shù)幫助我們確定程序的基本結(jié)構(gòu),有時甚至能幫我們找到感興趣的區(qū)域。

系統(tǒng)級逆向包括在程序上運行各種不同的工具、利用不同的操作系統(tǒng)服務(wù)獲取信息、檢查程序可執(zhí)行文件、跟蹤程序的輸入和輸出等等。

在逆向過程中,通過操作系統(tǒng)可以獲取所研究的目標程序的大量信息。共74頁47

代碼級逆向是一種藝術(shù)。

從程序的二進制碼中提取設(shè)計理念和算法是一個復雜的過程,它要求逆向工程師不但要掌握逆向技術(shù),而且還要對軟件開發(fā)、CPU以及操作系統(tǒng)有相當深入的了解。

軟件的復雜度深不可測,即便有完整的文檔,也面臨理解的困難。1.5.2代碼級逆向共74頁481.6工具1.6.1系統(tǒng)監(jiān)控工具

系統(tǒng)級逆向需要各種各樣的工具來尋找、監(jiān)控、研究以及剖析待被逆向的程序。

由于程序與外部世界的所有通信都要經(jīng)過操作系統(tǒng),所以通常使用操作系統(tǒng)來提取這些信息。

系統(tǒng)監(jiān)控工具可以監(jiān)控網(wǎng)絡(luò)活動、文件訪問、注冊表訪問等。共74頁49

反匯編器是以程序的可執(zhí)行二進制代碼作為輸入、生成包含整個或部分程序的匯編語言代碼的文本文件的程序。

反匯編是一個與處理器相關(guān)的過程,但也有支持多種CPU架構(gòu)的;有獨立的,也有集成的。1.6.2反匯編器共74頁50

調(diào)試器的基本思想是:程序員不可能預(yù)想到他們所編寫的程序所能做的每一件事。

調(diào)試器是一種程序,它允許軟件開發(fā)人員在程序運行的同時觀察程序。

調(diào)試器的兩個最基本的特性是:設(shè)置斷點的能力和代碼跟蹤的能力。1.6.3調(diào)試器

調(diào)試器對逆向人員的重要性,就和它對軟件開發(fā)人員的重要性一樣。逆向人員在反匯編模式下使用調(diào)試器。共74頁51

對于某些逆向任務(wù),你唯一需要的只是一個內(nèi)置有良好反匯編性能的調(diào)試器。1.6.4反編譯器1.6.3調(diào)試器(續(xù))

反編譯器要比反匯編器更進了一步。

反編譯器接收可執(zhí)行的二進制文件,并試圖從中生成可讀性好的高級語言代碼。共74頁52

反編譯器是強大的工具,在某些情況和環(huán)境下可以從二進制代碼中重構(gòu)出很容易閱讀的源代碼。1.6.4反編譯器(續(xù))共74頁531.7逆向合法嗎?

是否合法主要取決于利用逆向工程做什么。

下面以美國為討論重點。1.7.1互操作性1、讓兩個程序通信并互操作絕不是一項簡單的任務(wù)。共74頁542、軟件平臺是指能夠讓程序在其上運行的所有程序或硬件設(shè)備。

如MicrosoftWindows和SonyPlaystation都是軟件平臺。1.7.1互操作性(續(xù))(1)暴露軟件的接口意味著其他軟件開發(fā)人員能夠開發(fā)出運行于這個平臺之上的軟件。3、對于某個軟件平臺的開發(fā)人員來說,是否公開平臺軟件的接口是一個關(guān)鍵的決策。共74頁554、案例——SEGA和ACCOLADE3、對于某個軟件平臺的開發(fā)人員來說,是否公開平臺軟件的接口是一個關(guān)鍵的決策。(續(xù))(2)供應(yīng)商也要提供他們自己的運行于此平臺上的軟件。(3)公開軟件接口也會對供應(yīng)商自己的應(yīng)用程序造成新的競爭。

法院最終認可了以互操作性為目的的逆向工程。共74頁561.7.2競爭1、當用于實現(xiàn)互操作性時,逆向工程簡化了新技術(shù)的開發(fā),顯然,這有利于社會的進步。2、當利用逆向工程開發(fā)競爭產(chǎn)品時,情況就很復雜。3、在開發(fā)競爭產(chǎn)品的前提下還有一種更為相關(guān)(且與道德有關(guān))的逆向工程,它僅將逆向工程用于開發(fā)產(chǎn)品的一小部分,且只是用逆向工程來搜集信息,而不是獲取代碼。共74頁571.7.3版權(quán)法1、版權(quán)法旨在保護軟件和其他知識產(chǎn)權(quán)不會在未經(jīng)授權(quán)的情況下被復制。2、將版權(quán)法應(yīng)用于逆向工程的最好例子就是開發(fā)競爭軟件。3、通常被認定為違反了版權(quán)法的情況是:直接拷貝競爭對手產(chǎn)品中受保護的代碼序列并加入到自己的產(chǎn)品中,但是還存在其他尚未明確定義的情況。共74頁584、中間拷貝被認為是對產(chǎn)品的合理使用,這主要是因為最終產(chǎn)品中實際上并沒有包含直接拷貝自原始產(chǎn)品的任何內(nèi)容。5、從技術(shù)角度看,這也非常合理——不管有沒有做逆向工程,在使用軟件時總是會產(chǎn)生中間拷貝。1.7.3版權(quán)法(續(xù))共74頁591、專利的好處在于它給予發(fā)明者或?qū)@姓唛L達20年的發(fā)明控制權(quán)。但是必須公開發(fā)明的細節(jié),而且專利到期后,這樣發(fā)明基本上就成為公開的了。2、對于一項未申請專利的新開發(fā)的技術(shù),如果在開發(fā)的過程中以及保護其不被竊取的過程中投入了大量的精力,那么它會自動受到商業(yè)機密的合法保護。1.7.4商業(yè)機密和專利權(quán)共74頁602、對于一項未申請專利的新開發(fā)的技術(shù),如果在開發(fā)的過程中以及保護其不被竊取的過程中投入了大量的精力,那么它會自動受到商業(yè)機密的合法保護。(續(xù))(1)商業(yè)機密在“商業(yè)機密非法使用”的情況下合法地保護了開發(fā)者,如雇員將機密賣給競爭對手。(2)競爭對手合法地獲得該產(chǎn)品并且對其實施逆向工程,在這種情況下商業(yè)機密是無法保護其所有者的。共74頁61

美國數(shù)字千禧版權(quán)法(theDigtialMillenniumCopyrightAct,DMCA)是在1998年制定的,其主要目的是保護版權(quán)保護技術(shù)。

其思想是:版權(quán)保護技術(shù)本身是易受攻擊的,必須采用通過立法來保護這些技術(shù)。嚴格地說,DMCA的內(nèi)涵是通過合法地保護版權(quán)保護系統(tǒng)免受規(guī)避。1.7.5美國數(shù)字千禧版權(quán)法共74頁621.7.5美國數(shù)字千禧版權(quán)法(續(xù))

DMCA僅適用于版權(quán)保護系統(tǒng),它本質(zhì)上是DRM(DigitalRightsManagement,數(shù)字權(quán)限管理)技術(shù)。DMCA并不適用于其他的受版權(quán)保護的軟件類型,所以根本不會影響到大多數(shù)的逆向應(yīng)用程序。

DMCA所令行禁止的是如下內(nèi)容:(1)規(guī)避版權(quán)保護系統(tǒng)

這意味著任何人不能破壞數(shù)字化權(quán)限管理技術(shù),即使是出于個人目的。共74頁63(2)開發(fā)規(guī)避技術(shù)

這意味著任何人不能開發(fā)或公開發(fā)布任何規(guī)避DRM(DigtialRightsManagement)技術(shù)的產(chǎn)品或技術(shù)。

DMCA所令行禁止的是如下內(nèi)容(續(xù))

keygen程序就是這樣的。

DMCA也規(guī)定了幾種允許規(guī)避的例外情況,具體如下:共74頁64(1)互操作性

在為了與有疑問的軟件產(chǎn)品進行互操作的情況下,逆向和規(guī)避DRM技術(shù)是允許使用的。(2)加密研究

這在DMCA中是受到嚴格限制的條款,它只允許研究加密技術(shù)的人員規(guī)避加密產(chǎn)品中的版權(quán)保護技術(shù)。只有當保護技術(shù)妨礙了對加密技術(shù)的評估時,才允許使用規(guī)避手段。共74頁65(3)安全測試

為了評估或提高計算機系統(tǒng)的安全性,人們可以逆向和破解版權(quán)保護軟件。

DMCA也規(guī)定了幾種允許規(guī)避的例外情況,具體如下:(續(xù))(4)教育機構(gòu)和公共圖書館

在購買之前出于對受版權(quán)保護作品評估的目的,這些機構(gòu)可以規(guī)避版權(quán)保護技術(shù)。共74頁66(5)政府調(diào)查

政府機構(gòu)進行調(diào)查研究并不受DMCA的影響。

DMCA也規(guī)定了幾種允許規(guī)避的例外情況,具體如下:(續(xù))(6)規(guī)章制度

為了規(guī)范因特網(wǎng)上未成年人可訪問的資料,可以對DRM技術(shù)實施規(guī)避。共74頁67(7)保護隱私

收集和傳遞個人信息的產(chǎn)品可以被逆向,這類產(chǎn)品中所包含的任何保護技術(shù)可以規(guī)避。

DMCA也規(guī)定了幾種允許規(guī)避的例外情況,具體如下:(續(xù))共74頁681.7.6DMCA案例1、Felten對RIAA

2000年9月,數(shù)字音樂安

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
  • 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論