国产精品1024永久观看,大尺度欧美暖暖视频在线观看,亚洲宅男精品一区在线观看,欧美日韩一区二区三区视频,2021中文字幕在线观看

  • <option id="fbvk0"></option>
    1. <rt id="fbvk0"><tr id="fbvk0"></tr></rt>
      <center id="fbvk0"><optgroup id="fbvk0"></optgroup></center>
      <center id="fbvk0"></center>

      <li id="fbvk0"><abbr id="fbvk0"><dl id="fbvk0"></dl></abbr></li>

      軟件保護(hù)的制作方法

      文檔序號(hào):6566935閱讀:305來(lái)源:國(guó)知局
      專利名稱:軟件保護(hù)的制作方法
      軟件保護(hù)發(fā)明領(lǐng)域本發(fā)明涉及一種用于保護(hù)計(jì)算機(jī)設(shè)備上的可執(zhí)行程序免受檢查 和/或操縱的方法,所述計(jì)算機(jī)設(shè)備包括用于執(zhí)行所述可執(zhí)行程序的 執(zhí)行環(huán)境。
      背景技術(shù)
      計(jì)算機(jī)設(shè)備上的軟件可能會(huì)遭受欺詐性的檢查、篡改、反向工程 等,這是眾所周知的問(wèn)題。隨著越來(lái)越多的計(jì)算機(jī)通過(guò)網(wǎng)絡(luò)(例如, 外聯(lián)網(wǎng)、內(nèi)聯(lián)網(wǎng)、互聯(lián)網(wǎng)等)至少偶爾地連接其它計(jì)算機(jī),這個(gè)問(wèn)題 變得越來(lái)越嚴(yán)重?,F(xiàn)有的外殼打包器程序(shell packager)使用壓縮算法將可執(zhí)行 程序打包,然后再將其與解壓縮代碼合并。所得到的可執(zhí)行程序有引 導(dǎo)程序代碼,引導(dǎo)程序代碼先將壓縮的可執(zhí)行程序解壓縮在存儲(chǔ)器 中,然后調(diào)用可執(zhí)行程序的進(jìn)入點(diǎn)(entrypoint)。但是,如果可執(zhí)行 程序是通過(guò)目前的打包器程序壓縮的,則可以實(shí)施反向工程,這是因 為,在計(jì)算機(jī)的存儲(chǔ)器介質(zhì)中可得到該可執(zhí)行程序。此外,對(duì)于目前 的壓縮可執(zhí)行程序在經(jīng)過(guò)解壓縮后,可以偵查可執(zhí)行程序?qū)Σ僮飨到y(tǒng) (OS)、注冊(cè)表或存儲(chǔ)器的調(diào)用。US 6006328描述了保護(hù)軟件免受竊聽(tīng)、篡改、檢査、跟蹤和欺 騙。這種保護(hù)借助于以下手段的組合來(lái)實(shí)現(xiàn)加密、亂序處理、反跟 蹤、反篡改、自我驗(yàn)證、運(yùn)行時(shí)間自我監(jiān)視、視聽(tīng)鑒權(quán)技術(shù)。但是, 這是一種很復(fù)雜的組合,需要對(duì)這些技術(shù)的進(jìn)程做大量的日志。發(fā)明內(nèi)容因此,本發(fā)明的目的是提供一種替代性方法來(lái)增強(qiáng)軟件保護(hù),以 免受檢查和/或操縱。此目的借助于開(kāi)篇所述的方法來(lái)實(shí)現(xiàn),其包括 下列步驟生成替代性的執(zhí)行環(huán)境,所述替代性的執(zhí)行環(huán)境包括操作 系統(tǒng)(OS)調(diào)用的實(shí)現(xiàn);將原始的可執(zhí)行程序和所述替代性的執(zhí)行 環(huán)境合并成一個(gè)新的可執(zhí)行程序。因此,原始的可執(zhí)行程序就被打包/包裝在新的可執(zhí)行程序中, 這個(gè)新的可執(zhí)行程序包括替代性的執(zhí)行環(huán)境,從而,原始的可執(zhí)行程 序?qū)τ?jì)算機(jī)設(shè)備的操作系統(tǒng)的調(diào)用不會(huì)再受檢査或操縱。這樣一來(lái), 就能保護(hù)可執(zhí)行程序免受任何類型的檢查和操縱。目前的操作系統(tǒng)和 編譯器一般都使用所謂的動(dòng)態(tài)鏈接方法去調(diào)用操作系統(tǒng)提供的應(yīng)用程序接口 (API),所以,原始的可執(zhí)行程序一般都包括對(duì)操作系統(tǒng)的 調(diào)用。這樣的調(diào)用可以是對(duì)庫(kù)和實(shí)現(xiàn)操作系統(tǒng)API服務(wù)的函數(shù)的調(diào) 用。貫穿全文,術(shù)語(yǔ)"檢查和/或操縱"意在涵蓋下列詞語(yǔ)竊聽(tīng)、篡改、檢查、反向工程、API劫取(hijacking)、 API注入和API偵聽(tīng)。此外,術(shù)語(yǔ)"可執(zhí)行程序"意在涵蓋下列詞語(yǔ)包含程序的任何軟件或文件,即,能在計(jì)算機(jī)設(shè)備中執(zhí)行或者作為程序運(yùn)行的軟件或文件。術(shù)語(yǔ)"OS調(diào)用的實(shí)現(xiàn)"意在涵蓋以下方式執(zhí)行與原始可執(zhí)行程序中的os調(diào)用相對(duì)應(yīng)的調(diào)用。最后,術(shù)語(yǔ)"調(diào)用"與"命令"或"請(qǐng)求"同義。優(yōu)選情況下,本方法包括下列步驟將原始可執(zhí)行程序中的調(diào)用 轉(zhuǎn)換成實(shí)現(xiàn)在替代性的執(zhí)行環(huán)境中的相應(yīng)調(diào)用。采用本方法的轉(zhuǎn)換步 驟,將原始可執(zhí)行程序中對(duì)例如動(dòng)態(tài)鏈接庫(kù)的引用或調(diào)用替換成或者 轉(zhuǎn)換成實(shí)現(xiàn)在替代性的執(zhí)行環(huán)境中的調(diào)用。這樣,可以確保新的可執(zhí) 行程序的運(yùn)行對(duì)應(yīng)于原始的可執(zhí)行程序的運(yùn)行。將原始可執(zhí)行程序中 的調(diào)用進(jìn)行轉(zhuǎn)換的步驟可以通過(guò)以下方式實(shí)現(xiàn)借助于原始可執(zhí)行程 序中的一張表(包含對(duì)動(dòng)態(tài)鏈接庫(kù)的引用);將那些引用替換成實(shí)現(xiàn) 在替代性的執(zhí)行環(huán)境中的調(diào)用。在一個(gè)優(yōu)選實(shí)施例中,替代性的執(zhí)行環(huán)境包括虛擬操作系統(tǒng)。當(dāng) 原始可執(zhí)行程序中的調(diào)用已經(jīng)被轉(zhuǎn)換成虛擬操作系統(tǒng)中的對(duì)應(yīng)調(diào)用 時(shí),該虛擬操作系統(tǒng)能夠執(zhí)行操作系統(tǒng)中與原始可執(zhí)行程序有關(guān)的任 務(wù)。但是,虛擬操作系統(tǒng)中的這些調(diào)用不會(huì)被虛擬操作系統(tǒng)之外檢測(cè) 到。在本發(fā)明的方法的另一優(yōu)選實(shí)施例中,替代性的執(zhí)行環(huán)境還包括 以下一個(gè)或多個(gè)組件虛擬文件系統(tǒng)、虛擬注冊(cè)表、虛擬進(jìn)程管理器、 虛擬資源管理器。至于這些組件是否均應(yīng)包括在替代性的執(zhí)行環(huán)境 中,這取決于在原始可執(zhí)行程序中會(huì)調(diào)用哪些組件,所以,原始可執(zhí) 行程序中不調(diào)用的組件不必包括在替代性的執(zhí)行環(huán)境中,反之亦然。優(yōu)選情況下,本發(fā)明的方法中的合并步驟還包括將新的可執(zhí)行 程序和引導(dǎo)程序代碼進(jìn)行合并。因此,通過(guò)使用引導(dǎo)程序代碼,新的 可執(zhí)行程序可以加載到計(jì)算機(jī)設(shè)備中,并在其上執(zhí)行。在本發(fā)明的一個(gè)優(yōu)選實(shí)施例中,它還包括下述的在先步驟識(shí)別 原始可執(zhí)行程序中的調(diào)用;由此,生成替代性的執(zhí)行環(huán)境的步驟包括 只生成在原始可執(zhí)行程序中識(shí)別出的調(diào)用的實(shí)現(xiàn)。因此,這可以防止 生成過(guò)于復(fù)雜或過(guò)于龐大的替代性執(zhí)行環(huán)境。在本發(fā)明的另一優(yōu)選實(shí)施例中,生成所述替代性的執(zhí)行環(huán)境是為 了包括最常見(jiàn)的操作系統(tǒng)(OS)調(diào)用的實(shí)現(xiàn)。例如,這些最常見(jiàn)的 操作系統(tǒng)(OS)調(diào)用包括文件系統(tǒng)調(diào)用、注冊(cè)表調(diào)用、進(jìn)程管理調(diào) 用、資源管理調(diào)用。因此,可以防止對(duì)原始可執(zhí)行程序中的調(diào)用的識(shí) 別。


      下面將結(jié)合附圖和優(yōu)選實(shí)施例對(duì)本發(fā)明進(jìn)行詳細(xì)描述,其中圖1是現(xiàn)有執(zhí)行環(huán)境的組件的示意圖;圖2是根據(jù)本發(fā)明的替代性執(zhí)行環(huán)境的組件的示意圖;圖3是根據(jù)本發(fā)明的新可執(zhí)行程序的示意圖;圖4是本發(fā)明的示例方法的流程圖。
      具體實(shí)施例方式
      應(yīng)當(dāng)理解的是,所有附圖中的組件是硬件、軟件或中間件的一部 分,可以實(shí)現(xiàn)在計(jì)算機(jī)設(shè)備中。還應(yīng)當(dāng)理解的是,計(jì)算機(jī)設(shè)備包括操作系統(tǒng)(os),例如,在初始裝載進(jìn)計(jì)算機(jī)設(shè)備后管理計(jì)算機(jī)設(shè)備中所有其它程序的一種程序。其它程序被稱為可執(zhí)行程序或應(yīng)用程序??蓤?zhí)行程序或應(yīng)用程序利用操作系統(tǒng)的方式為通過(guò)規(guī)定的應(yīng)用程序接口 (OSAPI)發(fā)出服務(wù)調(diào)用或請(qǐng)求。附圖中將該OSAPI顯示成水 平線,將對(duì)OSAPI的調(diào)用顯示成指向其的箭頭。圖中將對(duì)操作系統(tǒng) (OS)的直接調(diào)用顯示成指向位于該水平線下方的元素的箭頭。還應(yīng)當(dāng)理解的是,計(jì)算機(jī)設(shè)備一般包括合適的組件,例如,注冊(cè) 表、存儲(chǔ)模塊、處理器單元、輸入/輸出模塊、顯示模塊等等。但是, 圖中沒(méi)有顯示這些。圖1是現(xiàn)有執(zhí)行環(huán)境的組件的示意圖。圖中示出了原始的可執(zhí)行 程序IO。該可執(zhí)行程序調(diào)用OS API,如箭頭10a所示。在執(zhí)行可執(zhí) 行程序10的過(guò)程中,會(huì)牽涉到其它可執(zhí)行程序20;這些其它可執(zhí)行 程序20可能親自調(diào)用OSAPI,如箭頭20a所示。箭頭30a表示原始 可執(zhí)行程序10或其它可執(zhí)行程序20對(duì)文件系統(tǒng)中其它文件和/或目 錄30的調(diào)用。箭頭40a表示原始可執(zhí)行程序10或其它可執(zhí)行程序 20對(duì)注冊(cè)表的調(diào)用,例如讀取注冊(cè)表設(shè)置40。最后,箭頭50a表示 原始可執(zhí)行程序10或其它可執(zhí)行程序20對(duì)其它資源50的調(diào)用。調(diào) 用30a、 40a、 50a由操作系統(tǒng)OS處理,例如,發(fā)送到管理文件、目 錄、資源等的訪問(wèn)的OS。根據(jù)上面對(duì)圖1給出的描述顯然可以看出,對(duì)原始可執(zhí)行程序可 以進(jìn)行反向工程,以揭示出對(duì)OSAPI和OS的調(diào)用10a-50a,例如, 這通過(guò)API劫取或API注入法來(lái)實(shí)現(xiàn)。當(dāng)原始可執(zhí)行程序10試圖訪 問(wèn)計(jì)算機(jī)設(shè)備的存儲(chǔ)器件上的文件或者計(jì)算機(jī)設(shè)備中的注冊(cè)表中的 鍵值時(shí),API偵察工具可用來(lái)監(jiān)視和偵察這些調(diào)用。圖2是根據(jù)本發(fā)明的替代性的執(zhí)行環(huán)境100的組件的示意圖。替 代性的執(zhí)行環(huán)境100包括虛擬操作系統(tǒng)101、虛擬文件系統(tǒng)110、虛 擬注冊(cè)表120、虛擬進(jìn)程和資源管理器130。虛擬OS 101可以在文件I/O方面調(diào)用111虛擬文件系統(tǒng)110,例如,"創(chuàng)建文件"、"打開(kāi)文件"、 "讀文件"等。此外,虛擬OS 101可以在注冊(cè)表I/O方面調(diào)用121 虛擬注冊(cè)表120,例如,"打開(kāi)鍵值"、"讀鍵值"等。最后,虛擬OS 可以在進(jìn)程管理方面調(diào)用131和/或在資源管理132方面調(diào)用虛擬進(jìn) 程和資源管理器130,例如"創(chuàng)建進(jìn)程"、"裝載庫(kù)"、"獲取資源"等。圖2所示的替代性的執(zhí)行環(huán)境的組件僅僅是舉例,其它組件或者 替代性的組件也可以是替代性的執(zhí)行環(huán)境的一部分,這取決于原始可 執(zhí)行程序中的調(diào)用。圖3是根據(jù)本發(fā)明的新可執(zhí)行程序1000的示意圖。新可執(zhí)行程 序1000是將原始可執(zhí)行程序10處理和打包到替代性的執(zhí)行環(huán)境100 中的結(jié)果。因此,新可執(zhí)行程序1000包括圖1所示的原始可執(zhí)行程 序10、其它可執(zhí)行程序20、其它文件和目錄30、注冊(cè)表設(shè)置40和 其它資源50。此外,新可執(zhí)行程序1000包括圖2所示的虛擬OS 100、 虛擬文件系統(tǒng)110、虛擬注冊(cè)表120、虛擬進(jìn)程和資源管理器130, 以及還有調(diào)用lll、 121、 131和132。此外,如圖3所示,新可執(zhí)行 程序1000還包括引導(dǎo)程序代碼1010,其用于將新可執(zhí)行程序1000 加載到存儲(chǔ)器中并使之開(kāi)始運(yùn)行。應(yīng)當(dāng)注意的是,圖1和3中的原始可執(zhí)行程序10可以進(jìn)行壓縮。圖4是本發(fā)明的示例方法的流程圖。所示方法開(kāi)始于步驟A。在 后續(xù)的步驟B中,識(shí)別原始可執(zhí)行程序中的調(diào)用。這些調(diào)用通常是 對(duì)操作系統(tǒng)的調(diào)用。然后,在步驟C中,生成替代性的執(zhí)行環(huán)境。 該替代性的執(zhí)行環(huán)境應(yīng)當(dāng)包括操作系統(tǒng)調(diào)用的實(shí)現(xiàn)。該替代性的執(zhí)行 環(huán)境可以包括虛擬操作系統(tǒng)以及還可能包括下列之一或更多虛擬文 件系統(tǒng)、虛擬注冊(cè)表、虛擬進(jìn)程管理器、虛擬資源管理器。此后,在 步驟D中,把在步驟B中識(shí)別出的原始可執(zhí)行程序中的調(diào)用轉(zhuǎn)換成 實(shí)現(xiàn)在替代性的執(zhí)行環(huán)境中的相應(yīng)調(diào)用。本方法繼續(xù)進(jìn)行到步驟E, 將原始的可執(zhí)行程序和所述替代性的執(zhí)行環(huán)境合并成一個(gè)新的可執(zhí) 行程序。優(yōu)選情況下,再將新的可執(zhí)行程序和引導(dǎo)程序代碼進(jìn)行合并。 此流程結(jié)束于步驟F。 應(yīng)當(dāng)強(qiáng)調(diào)的是,本文中使用的"包括"一詞指明了存在所列特征、 整體、步驟或組件,但并不排除存在或添加一個(gè)或多個(gè)其它特征、整 體、步驟、組件或其組合。有些手段記載在相互不同的從屬權(quán)利要求 中或在不同實(shí)施例中加以描述,僅僅這一事實(shí)并不表示不能用這些手 段的組合來(lái)獲益。
      權(quán)利要求
      1、一種用于保護(hù)計(jì)算機(jī)設(shè)備上的可執(zhí)行程序免受檢查和/或操縱的方法,所述計(jì)算機(jī)設(shè)備包括用于執(zhí)行所述可執(zhí)行程序的執(zhí)行環(huán)境,其特征在于所述方法包括下列步驟生成(C)替代性的執(zhí)行環(huán)境(100),所述替代性的執(zhí)行環(huán)境(100)包括操作系統(tǒng)(OS)調(diào)用的實(shí)現(xiàn);將原始的可執(zhí)行程序(10)和所述替代性的執(zhí)行環(huán)境(100)合并(E)成一個(gè)新的可執(zhí)行程序(1000)。
      2、 如權(quán)利要求1所述的方法,其特征在于還包括下列步驟 將所述原始可執(zhí)行程序(10)中的調(diào)用轉(zhuǎn)換(D)成實(shí)現(xiàn)在所述替代性的執(zhí)行環(huán)境(100)中的相應(yīng)調(diào)用。
      3、 如權(quán)利要求1或2所述的方法,其特征在于,所述替代性的 執(zhí)行環(huán)境(100)包括虛擬的操作系統(tǒng)(101)。
      4、 如權(quán)利要求3所述的方法,其特征在于,所述替代性的執(zhí)行 環(huán)境(100)還包括下列一個(gè)或多個(gè)組件虛擬文件系統(tǒng)(110)、虛 擬注冊(cè)表(120)、虛擬進(jìn)程管理器(130)、虛擬資源管理器(130)。
      5、 如權(quán)利要求1至4中任意一項(xiàng)所述的方法,其特征在于,所 述合并步驟還包括將所述新的可執(zhí)行程序(1000)和引導(dǎo)程序代碼(1010)進(jìn)行合并。
      6、 如權(quán)利要求1至5中任意一項(xiàng)所述的方法,其特征在于,還 包括下述的在先步驟識(shí)別所述原始可執(zhí)行程序(10)中的調(diào)用(B);由此,生成所述替代性的執(zhí)行環(huán)境(100)的步驟包括只生成所述原始可執(zhí)行程序(10)中被識(shí)別出的調(diào)用的實(shí)現(xiàn)。
      7、 如權(quán)利要求1至6中任意一項(xiàng)所述的方法,其特征在于,生 成所述替代性的執(zhí)行環(huán)境(100)是為了包括最常見(jiàn)的操作系統(tǒng)(OS) 調(diào)用的實(shí)現(xiàn)。
      8、 一種計(jì)算機(jī)程序,當(dāng)所述計(jì)算機(jī)程序運(yùn)行在數(shù)據(jù)處理設(shè)備上 時(shí),其包括的程序代碼模塊能使所述數(shù)據(jù)處理設(shè)備執(zhí)行權(quán)利要求1至 7中任意一項(xiàng)所述的方法的步驟。
      9、 一種數(shù)據(jù)處理設(shè)備,其包括的第一處理電路能執(zhí)行權(quán)利要求 1至7中任意一項(xiàng)所述的方法。
      全文摘要
      本發(fā)明涉及軟件保護(hù)。按照所公開(kāi)的方法,把可以運(yùn)行在具有執(zhí)行環(huán)境的計(jì)算機(jī)設(shè)備上的原始可執(zhí)行程序包裝在替代性的執(zhí)行環(huán)境中,從而形成一個(gè)新的可執(zhí)行程序,因此,原始的可執(zhí)行程序?qū)τ?jì)算機(jī)設(shè)備的操作系統(tǒng)的調(diào)用不會(huì)再受檢查或操縱。這樣一來(lái),可執(zhí)行程序就能免受檢驗(yàn)和反向工程。
      文檔編號(hào)G06F21/14GK101151617SQ200680010861
      公開(kāi)日2008年3月26日 申請(qǐng)日期2006年4月3日 優(yōu)先權(quán)日2005年4月7日
      發(fā)明者N·吉達(dá)洛維 申請(qǐng)人:皇家飛利浦電子股份有限公司
      網(wǎng)友詢問(wèn)留言 已有0條留言
      • 還沒(méi)有人留言評(píng)論。精彩留言會(huì)獲得點(diǎn)贊!
      1