




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
第三章軟件安全技術(shù)3.1軟件安全技術(shù)概述3.2軟件加密技術(shù)3.3軟件分析技術(shù)3.4軟件加殼技術(shù)3.5軟件防盜版技術(shù)3.6常用的軟件保護(hù)方法3.7應(yīng)用實(shí)例引入:章導(dǎo)學(xué)引入(錄視頻)3.1軟件安全技術(shù)概述3.1.1軟件及其安全的基本概念1.軟件的定義和分類計(jì)算機(jī)系統(tǒng)分為硬件系統(tǒng)和軟件系統(tǒng)兩部分,通常簡稱為硬件和軟件。硬件是看得見摸得著的物理實(shí)體,如顯示器、主機(jī)、打印機(jī)、鍵盤、鼠標(biāo)、掃描儀等,它們是計(jì)算機(jī)進(jìn)行工作的物質(zhì)基礎(chǔ),軟件是支配硬件進(jìn)行工作的“靈魂”。軟件通常包含計(jì)算機(jī)程序及其相關(guān)文檔數(shù)據(jù)。根據(jù)計(jì)算機(jī)程序所起的作用,軟件可分為固件、系統(tǒng)軟件、中間件和應(yīng)用軟件四種類型。2.軟件安全的含義軟件安全泛指計(jì)算機(jī)軟件與數(shù)據(jù)不受自然和人為有害因素的威脅和危害,具體來說,可以理解為軟件與數(shù)據(jù)不會被有意或無意地跟蹤、破壞、更改、顯露、盜版、非法復(fù)制,軟件系統(tǒng)能正常連續(xù)地運(yùn)行。3.2軟件加密技術(shù)軟件加密是軟件商為了保護(hù)軟件產(chǎn)品而采取的一種保護(hù)方式。軟件加密主要有兩種形式:(1)不依賴硬件的加密(軟加密)方案;(2)依賴特定硬件的加密(硬加密)方案。本節(jié)將介紹這兩種加密方式涉及的軟件加密技術(shù)。3.2.1軟件硬加密硬加密的原理是將加密信息固化在某個硬件電路中,然后將它作為一個軟件的附加設(shè)備一起交給用戶。當(dāng)用戶運(yùn)行該軟件的時候,將該固化的電路設(shè)備接到計(jì)算機(jī)連接端口,軟件將根據(jù)是否檢測到對應(yīng)的“密鑰”來決定運(yùn)行該軟件或者屏蔽某些功能。這類硬加密常見的有軟盤加密、加密狗、軟件鎖等。軟盤加密鑰匙盤的方式是最常見的軟盤加密方式。所謂鑰匙盤方式就是通過BIOS的INT13中斷對軟盤格式化一些特殊的磁道,有的還在特殊磁道里寫入一定的信息,軟件在運(yùn)行時要檢驗(yàn)這些信息。這種軟盤就好像一把“鑰匙”一樣,所以被人習(xí)慣稱為鑰匙盤。它們的主要特點(diǎn)是在軟磁盤的特殊位置做標(biāo)記,在軟件運(yùn)行中計(jì)算機(jī)要讀取這些特殊標(biāo)記,以驗(yàn)證軟件的合法性。由于記錄這種特殊標(biāo)記的位置不能被平常的復(fù)制命令或復(fù)制軟件所讀取,所以,鑰匙盤類的軟件不能被輕易復(fù)制,這樣,加在軟件中的“鎖”就變得安全有效了。加密狗加密狗是插在計(jì)算機(jī)并行口上的軟硬件結(jié)合的軟件硬加密產(chǎn)品,包括加密代碼程序和“密鑰”(亦稱加密盒)兩部分?!懊荑€”中存放了“密碼”,加密代碼程序檢查“密鑰”是否存在,是否正確,在無誤的情況下,去執(zhí)行正常功能的應(yīng)用程序。3.BIOS序列號在計(jì)算機(jī)的升級之中,主板是面臨淘汰的可能性最小的硬件,因此,主板序列號是主板唯一的標(biāo)志,可以被運(yùn)用到軟件的加密中。主板序列號其實(shí)就是BIOS序列號,因?yàn)槊颗_計(jì)算機(jī)的主板都有唯一的標(biāo)志——BIOS序列號,所以可以將這個序列號作為軟件的認(rèn)證信息。3.2.2軟件軟加密軟加密是一種低成本的加密方式。它的特點(diǎn)是不需要有輔助的硬件存在,直接在軟件中進(jìn)行加密或設(shè)立密碼。相關(guān)的方法有序列號法、密碼表加密法和許可證法。序列號法序列號法是用戶在購買正版軟件的時候供應(yīng)商提供給他們正確的號碼,從而使他們順利安裝和使用購買的軟件的方法。但是,由于計(jì)算機(jī)軟件的易復(fù)制性,盜版軟件只需復(fù)制軟件及安裝序列號,一樣能夠完成安裝并順利運(yùn)行,在軟件功能上沒有任何缺損。因此,這種類型的“鑰匙”其實(shí)成了一種象征性的擺設(shè),加密強(qiáng)度不夠。密碼表加密法密碼表加密法是程序在運(yùn)行時提出一些提示問題,用戶需要按提示問題回答,如果回答答案錯誤則程序停止運(yùn)行。正常情況下,只有輸入正確的答案,軟件才認(rèn)為是合法使用者。這種加密方法運(yùn)行簡單,使用廣泛。許可證法從某種角度上說,這種方式是序列號加密的一個變種。用戶從網(wǎng)上下載的或購買的軟件并不能直接使用,軟件在安裝時或運(yùn)行時會對計(jì)算機(jī)進(jìn)行一番檢測,并根據(jù)檢測結(jié)果生成一個計(jì)算機(jī)的特定指紋,這個指紋可以是一個小文件,也可以是一串誰也看不懂的數(shù),需要把這個指紋數(shù)據(jù)通過Internet、E-mail、電話、傳真等方式發(fā)送到開發(fā)商那里,開發(fā)商再根據(jù)這個指紋給用戶一個注冊碼或注冊文件,一般稱其為許可證,用戶得到包含注冊碼或注冊文件的許可證后,按軟件要求的步驟在計(jì)算機(jī)上完成注冊后方可使用。3.3軟件分析技術(shù)軟件逆向工程又稱軟件反向工程,是指通過可運(yùn)行的程序,運(yùn)用解密、反匯編、系統(tǒng)分析等手段,對軟件的結(jié)構(gòu)、流程、算法、代碼等進(jìn)行逆向分析和拆解,從而推導(dǎo)出軟件產(chǎn)品的源代碼、設(shè)計(jì)原理、結(jié)構(gòu)、算法、處理過程、運(yùn)行方法等。通常人們把對軟件進(jìn)行反向分析的整個過程統(tǒng)稱為軟件逆向工程,把在這個過程中所采用的技術(shù)都統(tǒng)稱為軟件逆向分析技術(shù)。本節(jié)主要介紹軟件逆向分析的靜態(tài)分析技術(shù)、動態(tài)分析技術(shù)與漏洞挖掘技術(shù)。3.3.1靜態(tài)分析技術(shù)靜態(tài)分析技術(shù)就是對反匯編得到的程序清單進(jìn)行分析,從提示信息入手,了解該程序的流程與模塊完成的功能。如果對靜態(tài)反匯編出來的程序清單進(jìn)行仔細(xì)閱讀,就可以了解該軟件的編程思路,實(shí)現(xiàn)對其進(jìn)行解密。靜態(tài)分析破解步驟對軟件采用靜態(tài)分析破解一般有以下幾個步驟:偵察軟件的文件類型,確定軟件的運(yùn)行文件是否經(jīng)過加殼(軟件加密或壓縮)處理;如果軟件被加殼,則需要使用工具進(jìn)行脫殼處理;運(yùn)行待破解的目標(biāo)軟件,一般會要求輸入用戶名、注冊碼或序列號等,任意輸入一個,軟件將會給出錯誤提示,把該提示記錄下來;備份目標(biāo)文件,使用反匯編工具如W32Dasm或IDAPro等對軟件進(jìn)行反匯編處理;在反匯編后的代碼里找到前面記錄的出錯提示字符串;在該字符串附近仔細(xì)分析各種跳轉(zhuǎn)指令和比較指令,如CMP、TEST指令等,試圖找出判斷注冊碼或序列號正誤的分支,記下該指令在文件中的偏移地址;使用編譯工具如WinHiex或Ultraedit打開目標(biāo)文件,按照前面獲得的偏移地址,在文件中找到對應(yīng)的指令代碼,修改后存盤,破解完畢。3.3.2動態(tài)分析技術(shù)用靜態(tài)分析法可以了解編寫程序的思路,但不能真正地了解軟件編寫的整個細(xì)節(jié)和執(zhí)行過程,在對軟件靜態(tài)分析無效的情況下可以對程序進(jìn)行動態(tài)分析。動態(tài)分析就是通過調(diào)試程序、設(shè)置斷點(diǎn)、控制被調(diào)試程序的執(zhí)行過程來發(fā)現(xiàn)問題。1.軟件動態(tài)跟蹤分析步驟對軟件動態(tài)跟蹤分析時可以分兩步進(jìn)行。(1)對軟件進(jìn)行粗跟蹤。所謂粗跟蹤,即在跟蹤時,大塊大塊地跟蹤,也就是說,每次遇到調(diào)用CALL指令、重復(fù)操作指令REP、循環(huán)操作LOOP指令以及中斷調(diào)用INT指令等,一般不用跟蹤進(jìn)去,而是根據(jù)執(zhí)行結(jié)果分析該段程序功能。(2)對關(guān)鍵部分進(jìn)行細(xì)跟蹤。在獲取軟件中關(guān)鍵模塊后,便可以獲取軟件中我們關(guān)心的模塊或程序段,這樣就可以針對性地對該模塊進(jìn)行具體而詳細(xì)的跟蹤分析。在一般情況下,對關(guān)鍵代碼的跟蹤可能要反復(fù)進(jìn)行若干次才能讀懂該程序,每次要把比較關(guān)鍵的中間結(jié)果或指令地址記錄下來,這樣會對下一次分析有很大的幫助。3.3.3漏洞挖掘技術(shù)軟件漏洞也稱為脆弱性,它是計(jì)算機(jī)軟件在程序的設(shè)計(jì)和實(shí)現(xiàn)過程中由于各種原因有意或無意中產(chǎn)生的不足與缺陷。目前主要的軟件漏洞有拒絕服務(wù)、內(nèi)存/交換區(qū)漏洞、符號連接、競爭條件、緩沖區(qū)溢出、格式化字符串、rhost、xhost等。1.軟件漏洞攻擊非法用戶利用軟件漏洞,對計(jì)算機(jī)進(jìn)行的非授權(quán)操作以及所有危害計(jì)算機(jī)系統(tǒng)安全的行為,都被視為軟件漏洞攻擊行為。軟件漏洞攻擊行為不僅可以使攻擊者獲得訪問權(quán)限的提升,甚至能夠執(zhí)行任意代碼。由此可見。軟件漏洞對計(jì)算機(jī)系統(tǒng)安全的威脅是十分巨大的。漏洞攻擊技術(shù)主要包括漏洞挖掘技術(shù)和漏洞利用技術(shù)。漏洞挖掘技術(shù)是發(fā)現(xiàn)漏洞的主要手段。漏洞利用技術(shù)則是通過研究已發(fā)掘漏洞,開發(fā)出相應(yīng)的利用代碼,生成具有攻擊性的文件或程序,該文件或程序在被瀏覽或運(yùn)行后可以觸發(fā)軟件漏洞,從而達(dá)到攻擊的目的。2.軟件漏洞挖掘漏洞挖掘是漏洞攻擊的重要環(huán)節(jié),只有先挖掘出漏洞,才能夠通過漏洞利用技術(shù)進(jìn)行漏洞攻擊。軟件安全漏洞發(fā)掘可以分為對已知漏洞的檢測和對未知漏洞的挖掘。已知漏洞的檢測主要是通過安全掃描技術(shù),發(fā)現(xiàn)系統(tǒng)是否存在已公布的安全漏洞。而未知漏洞挖掘的目的在于發(fā)現(xiàn)軟件系統(tǒng)中可能存在但尚未發(fā)現(xiàn)的漏洞?,F(xiàn)有的未知漏洞挖掘技術(shù)從操作的自動化程度角度,可分為手工分析和自動/半自動化分析;從軟件的運(yùn)行態(tài)角度,可分為靜態(tài)檢測和動態(tài)檢測;從軟件代碼的開放性角度,可分為白盒測試、黑盒測試和灰盒測試。3.軟件漏洞利用不是所有的軟件漏洞都能夠被利用,能夠利用的漏洞也不一定值得利用。一般而言,危害等級高的,特別是漏洞描述中提到了“任意代碼執(zhí)行”的漏洞,利用價值最高,危害程度也就越大。這類漏洞觸發(fā)之后,通常會造成溢出,從而獲得代碼執(zhí)行的權(quán)。漏洞利用技術(shù)主要就是通過構(gòu)造畸形數(shù)據(jù)造成溢出,進(jìn)而執(zhí)行惡意代碼。常見的利用軟件缺陷對應(yīng)用軟件系統(tǒng)發(fā)起攻擊的技術(shù)包括緩沖區(qū)溢出攻擊、堆溢出攻擊、棧溢出攻擊、格式化串漏洞利用等,在上述漏洞利用成功后,往往借助于shellcode跳轉(zhuǎn)或者執(zhí)行攻擊者的惡意代碼。4.軟件漏洞攻擊的防范防范軟件漏洞攻擊需要軟件開發(fā)商、政府、用戶三方面通力配合,才能夠有效減少軟件漏洞所帶來的危害。軟件開發(fā)商應(yīng)當(dāng)對所開發(fā)的軟件負(fù)責(zé),采用更加嚴(yán)格的軟件安全測試技術(shù),在生產(chǎn)環(huán)節(jié)就有效降低發(fā)掘軟件漏洞的可能性。軟件開發(fā)商還應(yīng)該具備及時提供修補(bǔ)軟件漏洞補(bǔ)丁的能力。雖然微軟公司的產(chǎn)品漏洞很多,但是相對于其他軟件要安全得多。政府作為信息產(chǎn)業(yè)的管理者,應(yīng)當(dāng)建立軟件漏洞檢測與公告機(jī)制。通過軟件漏洞檢測,盡可能主動挖掘軟件的潛在漏洞,并通知軟件生產(chǎn)商發(fā)布升級補(bǔ)丁修補(bǔ)漏洞或者推出新版本。軟件漏洞公告可以建立在類似于CVE等組織的漏洞公告網(wǎng)站。在發(fā)布漏洞信息的同時,還應(yīng)建立軟件漏洞信息數(shù)據(jù)庫,方便軟件漏洞的分類與管理。同時,軟件漏洞公告還有利于殺毒軟件商升級病毒庫,以查殺漏洞利用文件。在我國,中國信息安全測評中心(CNITSEC)也建立了漏洞數(shù)據(jù)庫CNNVD,并通過其網(wǎng)站和刊物發(fā)布漏洞公告。用戶作為軟件的使用者,是軟件漏洞攻擊的最直接目標(biāo)。用戶應(yīng)及時進(jìn)行軟件升級,以修補(bǔ)軟件中存在的漏洞。但是多數(shù)用戶的安全意識不高,認(rèn)為軟件的自動更新功能很不必要,直接將該功能關(guān)閉,同時又不關(guān)注軟件漏洞信息的發(fā)布,不進(jìn)行手動更新,這樣的用戶最容易成為軟件漏洞攻擊的受害者。3.4軟件加殼技術(shù)針對軟件逆向分析的威脅,出現(xiàn)了用來防止軟件被逆向分析的軟件加殼技術(shù),它可以防止軟件信息被披露、篡改及盜版。惡意軟件和病毒為了避免被殺毒軟件分析和識別也會使用加殼技術(shù),只是動機(jī)不良,為了保護(hù)合法軟件的安全,在掌握軟件加殼方法的同時有必要學(xué)習(xí)軟件脫殼的技巧,來識別惡意軟件和病毒。本節(jié)主要介紹軟件加殼的原理。3.4.1軟件加殼的原理1.“殼”的定義在自然界中,植物用殼來保護(hù)種子,動物用殼來保護(hù)身體等。根據(jù)其原理,在一些計(jì)算機(jī)軟件里也設(shè)計(jì)了一段專門負(fù)責(zé)保護(hù)軟件不被非法修改或反編譯的程序。它們一般都是先于程序運(yùn)行,拿到控制權(quán),然后完成它們保護(hù)軟件的任務(wù)。由于這段程序和自然界的殼有相似的功能,基于命名的規(guī)則,這樣的程序稱為“殼(shell)”。2.“殼”的作用通俗而言,殼的作用就是對待保護(hù)的程序進(jìn)行壓縮或加密。在加殼后的程序里,殼先于原程序拿到運(yùn)行的控制權(quán),對原程序進(jìn)行解壓或解密之后,再運(yùn)行原程序,這樣就可以有效防止程序被反編譯或非法修改;從本質(zhì)上講,殼是一種專門針EXE、COM、DLL等文件進(jìn)行的壓縮或加密的工具,使原程序文件代碼失去本來的面目,達(dá)到程序不被反編譯和非法修改的目的,軟件加殼的原理如圖3-1所示。圖3-1軟件加殼的原理示意圖3.5軟件防盜版技術(shù)通過某種技術(shù),使得操作系統(tǒng)的復(fù)制方法,甚至磁盤復(fù)制軟件不能將軟件完整復(fù)制,或者復(fù)制后不能安裝運(yùn)行使用,這種技術(shù)被稱為軟件的防盜版技術(shù)。本節(jié)簡要介紹軟件防盜版技術(shù)的定義與分類。3.5.1軟件防盜版的思想盜版軟件主要是通過非法復(fù)制和非法安裝運(yùn)行來實(shí)現(xiàn)的。非法復(fù)制是盜版軟件能得以傳播的根源,而非法安裝運(yùn)行才是盜版軟件最終的目的。如果從技術(shù)上能防止非法復(fù)制,就切斷了盜版軟件的盜版之源。然而,非法用戶可以“借”合法用戶的軟件產(chǎn)品安裝使用,顯然僅防止非法復(fù)制達(dá)不到軟件保護(hù)的目的。因此,防止軟件非法安裝運(yùn)行才是防止軟件盜版的最終解決方案。針對防盜版技術(shù)的具體實(shí)現(xiàn)細(xì)節(jié),可以使用純硬件方式、純軟件方式或軟硬件結(jié)合的方式。純硬件方式成本相對比較高,但靈活性差,破譯相對難一些;純軟件方式幾乎不需要增加任何成本,靈活性好,但破譯比較容易;軟硬件結(jié)合方式是前兩種方式的結(jié)合,具有較好的靈活性,破譯難度隨軟件的復(fù)雜程度而變。防止軟件非法復(fù)制必須從軟件發(fā)行載體入手。目前軟件發(fā)行的載體主要有軟磁盤、光盤以及計(jì)算機(jī)網(wǎng)絡(luò)。軟磁盤由于其容量較小,僅用于小型軟件或軟件密鑰盤;光盤以其大容量、低成本以及耐用等特點(diǎn),是目前最理想的軟件發(fā)行載體;而計(jì)算機(jī)網(wǎng)絡(luò)由于其靈活性較好,也逐漸成為小型共享軟件發(fā)行的首選載體之一。防止軟件非法安裝運(yùn)行技術(shù)通常采用的是本章已介紹過的加密技術(shù)的原理,即使用密鑰將軟件加密。用戶可以隨便復(fù)制,但是在安裝運(yùn)行之前需要使用密鑰解密,才能正確運(yùn)行軟件。3.6常用的軟件保護(hù)方法前面分類介紹了軟什的安全防護(hù)技術(shù),本節(jié)將集中介紹幾種常用的軟件保護(hù)方法。3.6.1序列號保護(hù)方法1.序列號保護(hù)機(jī)制當(dāng)用戶從網(wǎng)絡(luò)上下載某個shareware——共享軟件后,一般都有使用時間上的限制,當(dāng)過了共享軟件的試用期后,用戶必須到這個軟件的公司去注冊后方能繼續(xù)使用。注冊過程一般是用戶把自己的私人信息(一般主要指姓名)連同信用卡號碼告訴給軟件公司,軟件公司會根據(jù)用戶的信息計(jì)算出一個序列碼,在用戶得到這個序列碼后,按照注冊需要的步驟在軟件中輸人注冊信息和注冊碼,其注冊信息的合法性由軟件驗(yàn)證通過后,軟件就會取消本身的各種限制,這種加密實(shí)現(xiàn)起來比較簡單,不需要額外的成本,用戶購買也非常方便,在互聯(lián)網(wǎng)上的軟件80%都是以這種方式來保護(hù)的。3.6.2注冊文件保護(hù)(KeyFile保護(hù))1.KeyFile保護(hù)的思路KeyFile(注冊文件)是一種利用文件來保護(hù)軟件的方式。KeyFile一般是一個小文件,可以是純文本文件.也可以是包含不可顯示字符的二進(jìn)制文件,其內(nèi)容是一些加密過或未加密的數(shù)據(jù),其中可能有用戶名、注冊碼等信息。文件格式由軟件作者自己定義。試用版軟件沒有注冊文件,當(dāng)用戶向作者付費(fèi)注冊之后,會收到作者寄來的注冊文件,其中可能包含用戶的個人信息。用戶只要將該文件放人指定的目錄,就可以讓軟件成為正式版。該文件一般是放在軟件的安裝目錄中或系統(tǒng)目錄下。軟件每次啟動時,從該文件中讀取數(shù)據(jù),然后利用某種算法進(jìn)行處理,根據(jù)處理的結(jié)果判斷是否為正確的注冊文件,如果正確則以注冊版模式來運(yùn)行。為增加破解難度,可以在KeyFile中加人一些垃圾信息;對于注冊文件的合法性檢查可分散在軟件的不同模塊中進(jìn)行判斷;對注冊文件內(nèi)的數(shù)據(jù)處理也盡可能采用復(fù)雜的算法。2.KeyFile破解的思路為了更好地利用KeyFile保護(hù),不僅要了解KeyFile保護(hù)方式的原理,還要了解破解KeyFile保護(hù)的方法。KeyFile保護(hù)方式可以通過創(chuàng)建假的KeyFile文件來進(jìn)行破解。一般來講,KeyFile文件都是“*.key”格式,因此可以在假的KeyFile中輸入一些特別的語句,作為識別的標(biāo)志。然后通過動態(tài)調(diào)試工具在一些特殊的API函數(shù)上設(shè)置斷點(diǎn),進(jìn)行斷點(diǎn)攔截,找出KeyFile正誤的判斷函數(shù),這樣就容易進(jìn)行破解了。3.6.3軟件限制技術(shù)目前,許多應(yīng)用程序都有在一定限制條件內(nèi)免費(fèi)使用的功能,利用該功能可以有效限制非法用戶的使用,同時,還可以使合法用戶在充分了解軟件優(yōu)缺點(diǎn)的基礎(chǔ)上,再決定是否購買。實(shí)現(xiàn)這種功能的方法為軟件限制技術(shù)。軟件限制技術(shù)的利用在保護(hù)正版軟件的基礎(chǔ)上,既有效地?cái)U(kuò)大了軟件的使用范圍,又給用戶提供了進(jìn)行充分選擇的機(jī)會。軟件限制技術(shù)有很多種,如利用注冊表限制程序使用的天數(shù),例如限制使用30天;利用注冊表限制程序使用的次數(shù),例如限制使用45次;設(shè)定程序使用的截止日期,例如設(shè)截止日期為2013年6月30日;限制每次使用程序的時間,例如一次允許使用50分鐘。限制使用程序的部分功能,例如菜單中選項(xiàng)是灰色的功能無法使用。這些軟件限制技術(shù)既可以單獨(dú)使用,也可以幾個同時使用實(shí)現(xiàn)綜合保護(hù)。3.6.4加密狗1.加密狗的構(gòu)成加密狗是插在計(jì)算機(jī)并行口上的軟硬件結(jié)合的軟件加密產(chǎn)品。加密狗一般都有幾十或幾百字節(jié)的非易失性存儲空間可供讀寫,有的內(nèi)部還增添了一個單片機(jī)。軟件運(yùn)行時通過向并行口寫入一定的數(shù)據(jù),判斷從并行口返回密碼數(shù)據(jù)正確與否來檢查加密狗是否存在。加密狗包括加密代碼程序和“密鑰”(亦稱加密盒)兩部分。加密代碼程序檢查“密鑰”是否存在,是否正確,在無誤的情況下,去執(zhí)行正常功能的應(yīng)用程序?!懊荑€”中存放了“密碼”,用硬件電路實(shí)現(xiàn)加密。2.加密狗的工作原理為了防止程序被非法復(fù)制,加密狗所做的加密保護(hù)措施一般都包括兩部分。首先是要有保存密碼數(shù)據(jù)的載體,即密鑰;其次是夾雜在應(yīng)用程序中的主機(jī)檢查程序,即加密代碼。密鑰應(yīng)該能保證不易被解密、復(fù)制;如一般用磁盤做加密時,加密部分無法用一般的工具復(fù)制。另外,當(dāng)檢查程序用特殊方法去讀密碼時,密碼應(yīng)該能很容易地被讀出,而不致影響應(yīng)用程序的正常執(zhí)行。當(dāng)發(fā)現(xiàn)密碼不對或密鑰不存在時,就讓主機(jī)掛起、重新啟動或采用其他的措施。3.6.5反動態(tài)跟蹤技術(shù)軟件的反動態(tài)跟蹤就是防止解密者利用程序調(diào)試工具跟蹤軟件的運(yùn)行、竊取軟件源碼、取消防復(fù)制和加密功能實(shí)現(xiàn)對軟件的動態(tài)破譯。隨著計(jì)算機(jī)加密技術(shù)的發(fā)展,它的對立面解密技術(shù)也應(yīng)運(yùn)而生并發(fā)展著。因此除了對程序進(jìn)行可靠的加密外,還要有較好的反跟蹤措施來防止非法復(fù)制者對所研制的軟件進(jìn)行解密。1.反動態(tài)跟蹤技術(shù)的實(shí)現(xiàn)途徑反動態(tài)跟蹤技術(shù)總地來說有兩種途徑來破壞跟蹤。(1)通過暫時破壞軟件調(diào)試和動態(tài)跟蹤軟件的某些功能和運(yùn)行環(huán)境,使跟蹤者跟蹤幾步就死機(jī)、機(jī)器自啟動或者屏幕混亂;(2)利用反窮舉法、程序流動態(tài)控制措施、逆指令流技術(shù)等,在程序中安排大量的陷井,使跟蹤者在筋疲力盡前不能進(jìn)行實(shí)質(zhì)有效的跟蹤。例如在程序中故意地安排大量的循環(huán)、多出口程序,它們不完成任何有用功能,只是進(jìn)行多次循環(huán)。3.6.6軟件水印軟件水印是嵌入到程序當(dāng)中的秘密消息,這些消息應(yīng)能方便可靠地提取出來,以證明軟件的所有權(quán),并且具有在保證程序功能的情況下不能或難以去除該消息的功能。該技術(shù)可提供所有者鑒別、所有權(quán)驗(yàn)證、操作跟蹤、復(fù)制控制等服務(wù),是密碼學(xué)、軟件工程、算法設(shè)計(jì)、圖論等學(xué)科的交叉研究領(lǐng)域。簡單地說,軟件水印是用水印的思想實(shí)施軟件保護(hù)。3.7應(yīng)用實(shí)例在學(xué)習(xí)軟件安全防護(hù)技術(shù)相關(guān)理論之后,本節(jié)將介紹兩個常用的軟件安全技術(shù)的應(yīng)用實(shí)例,以便讀者更快速地掌握幾種軟件加密工具的使用方法。3.7.1軟件加殼脫殼軟件加殼是保護(hù)代碼或維護(hù)軟件產(chǎn)權(quán)等利益所常用到的手段。目前有很多加殼與脫殼工具,脫殼又有自動脫殼和手動脫殼之分,下面以ASPack2.12和ASPackDie為AccessDriver的執(zhí)行程序加殼和脫殼為例,介紹軟件加殼和脫殼的方法與步驟。1.軟件加殼(1)運(yùn)行ASPack2.12,在其主界面選擇“OpenFile"標(biāo)簽,從中單擊【Open】按鈕,如圖3—2所示。圖3-2“ASPack2.12”主界面(2)在打開的Selectfiletocompress對話框中選擇要加殼的文件ad4.402.installer.EXE(壓縮前2.11MB),然后單擊【打開】按鈕,如圖3-3所示。圖3-3Selectfiletocompress對話框接著可以看到軟件會自動給ad4.402.installer加殼,如圖3—4所示,并且很快就會自動加殼完畢。返回來查看ad4.402.installer文件,發(fā)現(xiàn)已經(jīng)由原來的2.11MB壓縮到了37.8KB了,可見ASPack對ad4.402.installer已進(jìn)行了一次壓縮殼。圖3-4ASPack加殼進(jìn)程圖2.加殼類型偵測假設(shè)此時并不知道ad4.402.installer是用什么軟件加的殼。接下來可以用Language2000來檢測一下。(1)運(yùn)行Language2000(中文版),在其主界面中單擊【打開】按鈕,如圖3—5所示。圖3-5用Lanuage2000偵測加殼類型結(jié)果顯示界面(2)在彈出的“瀏覽文件夾”對話框中,選擇已經(jīng)加了殼的ad4.402.installer.EXE文件,單擊【確定】按鈕后即顯示探測結(jié)果,探測結(jié)果如圖3—5所示。軟件的版本、類型、編寫軟件等信息都顯現(xiàn)出來了。其中“程序”一欄顯示了加殼的類型,從這里就可以得到對方使用什么工具加殼的了。2.軟件脫殼當(dāng)知道加殼的類型之后,就可以著手來脫殼了,在這里選用工具ASPackDie來完成。(1)運(yùn)行ASPackDiel.41,打開“選擇目標(biāo)文件”對話框,如圖3—6所示。圖3-6“選擇目標(biāo)文件”對話框(2)選擇ad4.402.installer.EXE文件后,單擊【打開】按鈕,解壓后自動打開一個“ASPackDie一信息”對話框,提示脫殼后文件的名字和存放路徑,如圖3-7所示。圖3-7“ASPackDie-信息”對話框(3)單擊【確定】按鈕后脫殼成功。接著查看ad4.402.installer.EXE文件發(fā)現(xiàn)又變回2MB多了。以上使用ASPack2.12加殼后脫殼的方法,每個軟件的作者會選不同的脫殼工具,但基本操作的原理大同小異。3.7.2加密解密WinRAR壓縮文件WinRAR是一款較WinZip推出晚一點(diǎn)的高效壓縮軟件,不但壓縮比、操作方法都較WinZip優(yōu)越,而且能兼容ZIP壓縮文件,所以很快受到大家的青睞,現(xiàn)已成為人們常用的壓縮軟件,下面介紹通過WinRAR加密與解密的方法。1.用WinRAR加密文件操作步驟如下:(1)用鼠標(biāo)右擊需要壓縮并加密的文件,在彈出的快捷菜單中選擇“添加到壓縮文件”命令。在打開的“壓縮文件名和參數(shù)”對話框中,用戶可以設(shè)置壓縮文件的名稱及壓縮格式,如圖3—8所示。圖3-8“壓縮文件名和參數(shù)”對話框(2)選擇“高級”標(biāo)簽,從中單擊【設(shè)置密碼】按鈕,如圖3—9所示,在打開的“帶密碼壓縮”對話框中,輸入自己設(shè)置的密碼,然后連續(xù)單擊【確定】按鈕即可生成加密的RAR文件。圖3-9設(shè)置壓縮文件密碼示意圖2.用AdvancedRARPasswordRecovery解密文件AdvancedRARPasswordRecovery是一款專門用于對RAR加密壓縮文件進(jìn)行解密的工具,其操作界面如圖3—10所示。圖3-10ARPR1.53操作界面操作步驟如下:(1)單擊“打開”按鈕,在彈出的“打開”對話框中選取需要解密的RAR文件,單擊【打開】按鈕。(2)在ARPR1.53主界面中單擊【Start】按鈕即可開始破解。破解成功后彈出“Passwordsuccessfullyrecovered!”對話框,在“Totalpasswords”一欄顯示了密碼的信息,如圖3-11所示。圖3-11密碼破解顯示界面3.使用RARKey解開WinRAR口令RARKey軟件是專門用于對RAR加密文檔進(jìn)行解密的工具,用RARKey解密RAR文件的操作步驟如下:(1)運(yùn)行RARKey軟件,其主界面如圖3—12所示。(2)設(shè)置破解選項(xiàng),在主界面單擊【Settings】按鈕,打開如圖3—13所示的Settings對話框。圖3-12RARKey主界面圖3-13Setting對話框在"General”標(biāo)簽下,可以選擇破解優(yōu)先權(quán)和破解方式;在“Dictionary”標(biāo)簽下,可以選擇是否使用字典文件破解、密碼長度范圍,同時還可以選擇字典文件及組成密碼的英文字母大寫情況;在“Xieveoptimization"標(biāo)簽下,可以選擇是否使用優(yōu)化暴力破解、優(yōu)化暴力破解時密碼的長度范圍、執(zhí)行優(yōu)化暴力破解水平等選項(xiàng);在“Brute—force”標(biāo)簽下,可以選擇是否使用暴力破解方式以及破解時組成密碼的長度。在“Symbolset”標(biāo)簽下,用戶可以設(shè)置參與密碼組合的各種字符。(3)在RARKey主界面單擊【Recover】按鈕,在打開的“Selectfiletorecover”對話框中選擇需要破解密碼的壓縮文件,單擊【打開】按鈕,如圖3—14所示。圖3-14“選擇解密文件”提示框(4)單擊【打開】按鈕后即可按照用戶設(shè)置好的條件進(jìn)行破解。密碼破解過程中顯示的界面如圖3—15所示,“TestingPassword”顯示了正在測試的密碼,找到密碼后,將給出具體提示。圖3-15RARKey解密過程界面3.7.3加密解密PDF文件PDF是美國Adobe公司開發(fā)的一種通用文件格式,已成為在Internet上進(jìn)行電子文檔發(fā)行和數(shù)字化信息傳播的理想文檔格式。越來越多的電子圖書、產(chǎn)品說明、公司文告、網(wǎng)絡(luò)資料、電子郵件開始使用PDF格式文件。下面介紹一種PDF文件的加密解密方法。1.在AdobeAcrobat中加密PDF文件為了保護(hù)文件的內(nèi)容,Adobe公司對PDF文件設(shè)置了一定的保護(hù)措施,但這一保護(hù)措施只能在AdobeAcrobat中實(shí)現(xiàn),在AdobeReaderPDF閱讀器中無法實(shí)現(xiàn)。在AdobeAcrobat中,可以通過口令來限制用戶打開、打印和編輯AdobePDF。如果已經(jīng)簽名或驗(yàn)證了文檔,無法將口令加入到文檔。有兩類口令是可用的:文檔打開口令:在使用文檔打開口令(也稱為用戶口令)的情況下,用戶必須輸入為打開PDF所指定的口令。許可口令:當(dāng)你僅設(shè)置一個許可口令(也稱為主口令),用戶不需要口令(用戶口令)即可打開文檔。但是,用戶必須輸入許可口令才能設(shè)置或更改受限功能。如果用兩種類型的口令保護(hù)PDF,則它可用任一種口令打開。但是,只有許可口令才允許用戶更改受限功能。下面介紹PDF文件口令加密過程實(shí)現(xiàn)步驟。第1步:打開PDF文件。運(yùn)行AdobeAcrobat(以AdobeAcrobat9為例),在主界面的菜單中選擇“文件”→“打開”選項(xiàng)來打開一個PDF文件。第2步:使用口令加密PDF文件。(1)在菜單中選擇“高級”→“安全性”→“顯示安全屬性”命令,打開如圖3—16所示的“文檔屬性’’對話框,在“安全性”標(biāo)簽下顯示了當(dāng)前PDF文件的安全設(shè)置,圖中顯示目前這個PDF文件無安全性設(shè)置,可以被任意處理。圖3-16Acrobat文檔安全設(shè)置(2)在菜單中選擇“高級”→“安全性”→“使用口令加密”命令,打開“口令安全性一設(shè)置”對話框,如圖3-17所示。圖3-17“口令安全性-設(shè)置”對話框(3)在“口令安全性一設(shè)置”對話框中勾選“要求打開文檔的口令”,然后輸入打開文檔口令,這樣用戶在打開該P(yáng)DF文檔時,就必須輸入口令;在“許可”框中勾選“限制文檔編輯和打印。改變這些許可設(shè)置需要口令”,然后輸入更改許可口令,這樣在修改文檔和口令時要求輸入該口令;可以在“許可”框中設(shè)置“允許打印”項(xiàng),指定允許用戶用于PDF文檔的打印級別;設(shè)置“允許更改”項(xiàng),定義允許在PDF文檔中執(zhí)行的編輯操作,如圖3—17所示。(4)所有這些操作完成后,保存文件。此時再在“文檔屬性”對話框中的“安全性”標(biāo)簽項(xiàng)中單擊【顯示詳細(xì)信息】按鈕,打開“文檔安全性”對話框,顯示文件的安全性設(shè)置如圖3—18所示,表示該文件已被加密。圖3-18顯示文檔安全性信息(5)再次打開該P(yáng)DF文檔時會彈出“口令”對話框,提示輸入口令,如圖3—19所示。圖3-19“口令”對話框2.利用AdvancedPDFPasswordRecovery破解PDF加密文件AdvancedPDFPasswordRecovery(簡稱APPR)是一款專門用來解密受保護(hù)的AdobeAcrobatPDF文件的工具軟件,它能方便地去除PDF文件內(nèi)在的保護(hù)。該軟件的安裝方法很簡單,就不再贅述。破解操作步驟如下。(1)APPR安裝完成后,啟動該程序,打開如圖3—20所示的AdvancedPDFPasswordRecovery操作界面。圖3-20AdvancedPDFPasswordRecovery操作界面(2)單擊“Open”按鈕,在打開的“Open”對話框中選擇需要解密的PDF文件,然后單擊【Open】按鈕。(3)在文件解密前需要設(shè)置一些基本選項(xiàng)。在“Typeofattack”下拉列表框中,用戶可以選擇“Brute—force”(暴力攻擊)、“Mask”、(掩碼)、“Dictionary”(字典文件)、“Keysearch”(密碼搜尋)等破解方式。(4)在“Range”標(biāo)簽中,用戶可以設(shè)置暴力攻擊的范圍;在“Length”標(biāo)簽中可以設(shè)置密碼長度的范圍;在“Dictionary”標(biāo)簽中,用戶可以選擇破解時所使用的字典文件;在“Keysearch”標(biāo)簽中,用戶可以設(shè)置密碼搜尋的范圍;在“Auto—save”標(biāo)簽中,用戶可以設(shè)置自動保存的時間間隔、保存的文件名及文件夾;在“Options”標(biāo)簽中,用戶可以設(shè)置使用該軟件時的各種選項(xiàng)。(5)設(shè)置好各種選項(xiàng)后,單擊“Start!”按鈕,即可按用戶設(shè)置的選項(xiàng)開始破解,并給出最終提示,如圖3—21所示。圖3-21密碼被成功破解(6)在APPR的操作界面中,單擊“Decryptnow”按鈕可將去除密碼后的PDF文件直接以一個新的文件名保存到用戶指定的文件夾中。3.7.4加密解密Excel文件Excel是MicrosoftOffice套件中的一個重要的組成部分,其功能強(qiáng)大,操作簡單,應(yīng)用十分廣泛。那么如何才能保護(hù)自己的電子表格,使別人不能打開,或允許其打開后不能修改呢?下面就來介紹Excel文檔的一些加密解密方法。1.通過Excel自身功能加密Excel本身就具有設(shè)置密碼的功能,以MicrosoftofficeExcel2007為例介紹其操作方法如下。第1步:為Excel設(shè)置文檔打開密碼。(1)打開一個編輯好的電子表格,單擊左上角的office圖標(biāo),在彈出的下拉菜單中選擇“準(zhǔn)備”→“加密文檔”菜單命令,打開“加密文檔’’對話框,如圖3-22所示。圖3-22打開“加密文檔”對話框(2)在打開的“加密文檔”對話框中輸入打開電子表格的密碼,然后單擊【確定】按鈕,如圖3—23所示。在彈出的“確定密碼”對話框中再次輸入設(shè)置的打開密碼,然后單擊【確定】按鈕,即設(shè)置文檔打開密碼完成,其他用戶在打開該表格時就必須輸入正確的密碼才能打開。圖3-23“加密文檔對話框”第2步:為Excel工作表設(shè)置保護(hù)密碼。(1)在工具欄的“審閱”功能區(qū)下,單擊【保護(hù)工作表】按鈕,打開“保護(hù)工作表”對話框,如圖3—24所示。圖3-24“保護(hù)工作表”對話框(2)在“取消工作表保護(hù)時使用的密碼”文本框中輸入自己的密碼,在“允許此工作表的所有用戶進(jìn)行”列表框中選擇允許其他用戶可以操作的選項(xiàng),即打“√”復(fù)選框表示允許其他用戶進(jìn)行此項(xiàng)操作,否則不能進(jìn)行此項(xiàng)操作。單擊【確定】按鈕即可設(shè)置完畢。此后當(dāng)前表格中的內(nèi)容只允許瀏覽不允許修改。(3)如果想修改此表格,則可在“審閱”功能區(qū)下,單擊【撤銷工作表保護(hù)】按鈕,在打開的【撤銷工作表保護(hù)】對話框中輸入先前設(shè)置的密碼,單擊【確定】按鈕取消對工作表的保護(hù),如圖3—25所示。圖3-25“撤銷工作表保護(hù)”對話框第3步:為Excel工作簿設(shè)置保護(hù)密碼。(1)在工具欄的“審閱”功能區(qū)下,單擊【保護(hù)工作簿】按鈕,在彈出的下拉列表
溫馨提示
- 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)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 廣東中學(xué)考試試題及答案
- 2024國際商業(yè)美術(shù)設(shè)計(jì)師考試內(nèi)容更新試題及答案
- 2024年紡織工程師考試知識點(diǎn)分析試題及答案
- 加強(qiáng)紡織工程師證書考試能力的試題及答案選擇
- it基礎(chǔ)考試試題及答案
- 助理廣告師考試廣告運(yùn)行流程試題及答案
- jsp考試筆試題及答案
- 了解紡織行業(yè)人才流動與變動試題及答案
- 2024年紡織品檢驗(yàn)實(shí)務(wù)技巧試題及答案
- 禾望電氣筆試題及答案
- 少先隊(duì)輔導(dǎo)員技能大賽考試題庫300題(含答案)
- 2024年山東青島第三十九中學(xué)化學(xué)自招試卷試題(含答案詳解)
- DL∕T 1254-2013 差動電阻式監(jiān)測儀器鑒定技術(shù)規(guī)程
- 《埋地塑料排水管道工程技術(shù)規(guī)程》CJJ143-2010
- DL∕ T 802.7-2010 電力電纜用導(dǎo)管技術(shù)條件 第7部分:非開挖用改性聚丙烯塑料電纜導(dǎo)管
- (正式版)CB∕T 4557-2024 船舶行業(yè)企業(yè)勞動防護(hù)用品配備要求
- 足浴場所衛(wèi)生管理要求
- 年度采購合同框架協(xié)議
- 中藥藥理學(xué)實(shí)驗(yàn)講義2
- 14J936變形縫建筑構(gòu)造
- 行政復(fù)議法-形考作業(yè)3-國開(ZJ)-參考資料
評論
0/150
提交評論