4]內容服務器200可以包括經由一個或多個系統總線208互連的處理器202、存儲器204、用戶接口 206、網絡接口 210、以及內容存儲模塊212。將要理解的是,圖2包括一定程度的抽象并且設備200的組件的實際組織可以比所示出的更為復雜。
[0055]處理器202可以是能夠執行存儲在存儲器204或存儲模塊212中的指令的任何硬件設備。因此,處理器可以包括微處理器、現場可編程門陣列(FPGA)、應用專用集成電路(ASIC)、或者其他類似設備。
[0056]存儲器204可以包括各種內容,例如L1、L2、L3緩存或系統存儲器。因此,存儲器202可以包括靜態隨機訪問存儲器(SRAM)、動態RAM(DRAM)、閃存、只讀存儲器(ROM)、或者其他類似存儲設備。
[0057]用戶接口206可以包括用于使得能夠與諸如管理員的用戶進行通信的一個或多個設備。例如,用戶接口 206可以包括顯示器、鼠標、以及用于接收用戶命令的鍵盤。
[0058]網絡接口210可以包括用于使得能夠與其他硬件設備進行通信的一個或多個設備。例如,網絡接口 210可以包括配置成根據以太網協議進行通信的網絡接口卡(NIC)。此夕卜,網絡接口 210可以實現用于根據TCP/IP協議的通信的TCP/IP棧。網絡接口 210的各種備選或附加的硬件或配置將是顯而易見的。
[0059]內容儲存212可以包括一個或多個機器可讀內容存儲介質,例如,只讀存儲器(R0M)、隨機訪問存儲器(RAM)、磁盤存儲介質、光存儲介質、閃存設備、或類似存儲介質。在各實施例中,內容存儲器212可以存儲要提供給用戶的內容。
[0060]應用服務器220包括與內容服務器200中的元件相似的元件,并且對內容服務器200中的相似元件的描述適用于應用服務器220。此外,應該注意的是,內容服務器和應用服務器可以在單個服務器上實現。而且,這樣的服務器可以實現在分布式計算機系統以及云的計算機系統上。
[0061]根據本發明的實施例的方法可以實現為計算機系統上的計算機實現方法。根據本發明的方法的可執行代碼可以存儲在計算機程序介質上。計算機程序介質的示例包括存儲裝置、光存儲設備、集成電路、服務器、在線軟件等。該計算機系統還可以包括其他硬件元件,包括存儲模塊、用于與外部系統進行數據傳輸的網絡接口、以及計算機系統的其他元件等。
[0062]在本發明的實施例中,計算機程序可以包括適配為當計算機程序在計算機上運行時間,執行根據本發明的方法的所有步驟的計算機程序代碼。優選地,該計算機程序包含在非瞬態計算機可讀介質上。
[0063]根據本發明的創建白盒實現的混淆代碼的方法可以在計算機上實現作為計算機實現方法。根據實施例的方法的可執行代碼可以存儲在計算機程序介質上。在該方法中,計算機程序可以包括適配為在計算機程序在計算機上運行時間,執行方法的所有步驟的計算機程序。該計算機程序包含在非瞬態計算機可讀介質上。
[0064]在處理器上運行的用于實現本發明的實施例的特定軟件的任何組合構成特定專用機器。
[0065]本文中,術語“非瞬態計算機可讀存儲介質”應被理解為排除瞬態的傳播信號,但包括所有形式的易失性和非易失性存儲器。此外,本文中的術語“處理器”應被理解為包括各種設備,例如微處理器、現場可編程門陣列(FPGA)、應用專用集成電路(ASIC)以及其他類似處理設備。當軟件在處理器上實現時,該組合成為單個專用機器。
[0066]雖然對本發明的某些示例性方面進行具體參考,以詳細描述各示例性實施例,但是應當理解,本發明能夠具有其它實施例并且能夠在各種明顯的方面對其細節進行修改。由于是對本領域技術人員來說顯而易見,可以在本發明的精神和范圍之內實現各種變化和修改。因此,前述公開內容、描述和附圖僅用于說明性目的,不以任何方式限制由權利要求來界定的本發明。
【主權項】
1.一種混淆包括多個基本塊的軟件代碼的方法,包括: 由處理器計算當前基本塊的校驗和值以及指向當前基本塊的結尾的指針; 確定當如基本塊的在先基本塊; 將當前基本塊的校驗和值插入到在先基本塊中;以及 將用來基于當前基本塊的校驗和值確定指向當前基本塊的開始的指針的指令插入到在先基本塊中。2.根據權利要求1所述的方法,還包括: 將用于確定最后一個基本塊的指令插入到在先基本塊中;以及 將用于將當前基本塊設置為最后一個基本塊的指令插入到在先基本塊中。3.根據權利要求1所述的方法,還包括:插入用于將當前塊設置到在先塊的指令。4.根據權利要求3所述的方法,還包括:在達到第一個基本塊前,重復以下步驟:計算當前基本塊的fe驗和值,確定在先基本塊,插入fe驗和值,將指令插入到在先基本塊中,以及將當前塊設置到在先塊。5.根據權利要求4所述的方法,還包括:計算當前基本塊的校驗和值和指向第一個基本塊的結尾的指針,以及向調用第一個基本塊的應用提供第一個塊的校驗和值和指向第一個塊的結尾的指針。6.根據權利要求1所述的方法,還包括:在當前基本塊和在先基本塊之間插入垃圾代碼。7.根據權利要求1所述的方法,其中,用于確定指向當前基本塊的開始的指針的指令還包括:重復地計算當前基本塊的校驗和并使指向當前基本塊的指針遞減,直到所計算的校驗和值等于當前基本塊的之前計算的校驗和值為止,其中指針的初始值指向當前基本塊的結尾。8.根據權利要求7所述的方法,還包括:確定所計算的校驗和值過早地等于當前基本塊的之前計算的校驗和值。9.根據權利要求8所述的方法,還包括:當所計算的校驗和值過早地等于之前計算的校驗和值時,修改當前基本塊的代碼以防止所計算的校驗和值過早地等于之前計算的校驗和。10.根據權利要求7所述的方法,其中,基于指針的值來計算當前基本塊的校驗和。11.一種校驗用于由處理器執行的軟件代碼的完整性的方法,包括: 初始化下一個基本塊的校驗和值; 設置指向下一個基本塊的結尾的指針; 確定下一個基本塊的開始。12.根據權利要求11所述的方法,其中,確定下一個基本塊的開始包括:基于對下一個基本塊的校驗和的迭代確認來使指針遞減,以確定下一個基本塊的開始。13.根據權利要求12所述的方法,其中,校驗和的迭代確認基于指針的值。14.根據權利要求12所述的方法,其中,初始化下一個基本塊的校驗和值包括:針對下一個基本塊使用嵌入校驗和值。15.根據權利要求11所述的方法,還包括: 針對在當前基本塊之前的在先基本塊,包括:初始化當前基本塊的校驗和值;設置指向當前基本塊的結尾的指針;以及確定當前基本塊的開始。16.根據權利要求11所述的方法,還包括:將當前塊設置到在先塊。17.根據權利要求11所述的方法,還包括:基于條件確定下一個基本塊,其中初始化下一個基本塊的校驗和值取決于所述條件;以及設置指向下一個基本塊的結尾的指針取決于所述條件。
【專利摘要】一種混淆包括多個基本塊的軟件代碼的方法,包括:由處理器計算當前基本塊的校驗和值以及指向當前基本塊的結尾的指針;確定當前基本塊的在先基本塊;將當前基本塊的校驗和值插入到在先基本塊中;以及將用來基于當前基本塊的校驗和值確定指向當前基本塊的開始的指針的指令插入到在先基本塊中。
【IPC分類】G06F21/56, G06F21/14
【公開號】CN105701368
【申請號】CN201510918983
【發明人】簡·胡格布魯格, 威赫穆斯·P·A·J·米歇爾
【申請人】恩智浦有限公司
【公開日】2016年6月22日
【申請日】2015年12月11日
【公告號】EP3035228A1, US20160171246