欧美在线观看视频网站,亚洲熟妇色自偷自拍另类,啪啪伊人网,中文字幕第13亚洲另类,中文成人久久久久影院免费观看 ,精品人妻人人做人人爽,亚洲a视频

保護軟件產(chǎn)品中的敏感數(shù)據(jù)的方法和裝置的制造方法_3

文檔序號:8905420閱讀:來源:國知局
戶分配的內(nèi)存變量也 稱為"動態(tài)變量",其中,局部變量在運行時被保存在找中,而用戶分配的內(nèi)存變量在運行時 被保存在堆中。相應(yīng)地,敏感數(shù)據(jù)也可被分成屬于靜態(tài)變量的靜態(tài)敏感數(shù)據(jù)和屬于動態(tài)變 量的動態(tài)敏感數(shù)據(jù)。同樣,間接敏感數(shù)據(jù)也分成靜態(tài)間接敏感數(shù)據(jù)和動態(tài)間接敏感數(shù)據(jù)。
[0049] 由于靜態(tài)敏感數(shù)據(jù)的數(shù)據(jù)類型、內(nèi)存地址、地址偏移量和長度在編譯時已知并且 不會改變,因此,在步驟S310,在所建立的安全數(shù)據(jù)段中記錄靜態(tài)敏感數(shù)據(jù)的存儲信息,作 為靜態(tài)存儲記錄??蒞對靜態(tài)存儲記錄建立條目索引,并記錄條目索引。進一步地,還在安 全數(shù)據(jù)段中記錄靜態(tài)間接敏感數(shù)據(jù)的存儲信息,作為靜態(tài)存儲記錄。
[0050] 然而,對于動態(tài)敏感數(shù)據(jù)來說,除了數(shù)據(jù)類型和局部變量的長度在編譯時是已知 的W外,動態(tài)敏感數(shù)據(jù)的內(nèi)存地址、地址偏移量和動態(tài)變量中用戶分配的內(nèi)存變量的長度 只有在運行時才可知。因此,在編譯時需要生成額外的機器指令W指示在運行時跟蹤動態(tài) 敏感數(shù)據(jù)的存儲信息并進行記錄。具體地,在步驟S315,生成用于在運行時在安全數(shù)據(jù)段中 記錄動態(tài)敏感數(shù)據(jù)的存儲信息的機器指令,其中,所記錄的動態(tài)敏感數(shù)據(jù)的存儲信息作為 動態(tài)存儲記錄。為了記錄局部變量和用戶分配的內(nèi)存變量的存儲信息,需要分別跟蹤找地 址和堆地址。進一步地,對于動態(tài)間接敏感數(shù)據(jù),也生成用于記錄動態(tài)間接敏感數(shù)據(jù)的存儲 信息作為動態(tài)存儲記錄的機器指令。
[0051] 此外,還可W在步驟S320,生成用于在動態(tài)敏感數(shù)據(jù)被釋放時消除對應(yīng)的動態(tài)存 儲記錄的機器指令。動態(tài)變量僅在其作用域內(nèi)使用,當超出動態(tài)變量的作用域時,動態(tài)變量 將被釋放。因此,當動態(tài)敏感數(shù)據(jù)在其作用域內(nèi)使用時,動態(tài)敏感數(shù)據(jù)被保存在動態(tài)段中, 其存儲信息被記錄在安全數(shù)據(jù)段中。當動態(tài)敏感數(shù)據(jù)從動態(tài)段中被釋放后,其存儲信息也 應(yīng)當從安全數(shù)據(jù)段中消除。進一步地,對于動態(tài)間接敏感數(shù)據(jù),也生成用于在動態(tài)間接敏感 數(shù)據(jù)被釋放時消除對應(yīng)的動態(tài)存儲記錄的機器指令。
[0052] 此外,還可W在步驟S325,生成用于在鏈接多個目標文件時重定位靜態(tài)存儲記錄 和動態(tài)存儲記錄在安全數(shù)據(jù)段中的地址的重定位記錄。在鏈接多個目標文件時,安全數(shù)據(jù) 段的位置會改變,相應(yīng)地,安全數(shù)據(jù)段中靜態(tài)存儲記錄和動態(tài)存儲記錄的地址也發(fā)生變化。 因此,在鏈接時需要對安全數(shù)據(jù)段進行重定位。
[0053] 雖然W上按照步驟S310、S315、S320和S325的順序進行了描述,但本領(lǐng)域的技術(shù) 人員可W知道,該些步驟也可W按照其它順序或并行地執(zhí)行。
[0054]在源文件的編譯中,除了W上描述的與敏感數(shù)據(jù)相關(guān)的操作外,還將執(zhí)行其它傳 統(tǒng)的編譯操作,此處省略其說明。最后,在步驟S330,生成具有安全數(shù)據(jù)段的目標文件。
[00巧]返回到圖2,在生成了具有安全數(shù)據(jù)段的目標文件后,在步驟S220,對所生成的目 標文件進行鏈接W生成可執(zhí)行文件,其中,所生成的可執(zhí)行文件在運行時對安全數(shù)據(jù)段進 行更新。
[0056] 在該步驟中,首先確定是否有多個目標文件待鏈接。如果只有一個目標文件,即在 步驟S210生成的具有安全數(shù)據(jù)段的目標文件,則按照傳統(tǒng)的鏈接過程進行鏈接,W生成具 有安全數(shù)據(jù)段的可執(zhí)行文件。如果有多個目標文件待鏈接,并且至少一個目標文件具有安 全數(shù)據(jù)段,則合并該多個目標文件。
[0057] 在合并時,多個目標文件的各個段分別進行合并。在兩個W上的目標文件具有安 全數(shù)據(jù)段的情況下,合并兩個W上的安全數(shù)據(jù)段W形成新的安全數(shù)據(jù)段。在合并期間,計算 新的安全數(shù)據(jù)段的長度。需要注意,由于全局變量可能被標記為敏感數(shù)據(jù),因此,在計算長 度時需要除去重復(fù)的全局變量。另外,還重新建立新的安全數(shù)據(jù)段的條目索引。
[0058] 然后,對合并后的目標文件中的新的安全數(shù)據(jù)段進行重定位。在重定位時,首先獲 得新的安全數(shù)據(jù)段的地址。根據(jù)合并前多個目標文件的各個段的長度,可W確定新的安全 數(shù)據(jù)段的地址。然后,基于所確定的地址,根據(jù)目標文件中關(guān)于靜態(tài)存儲記錄和動態(tài)存儲記 錄的重定位記錄,進行重定位。
[0059] 在目標文件的鏈接過程中,除了上述的與安全數(shù)據(jù)段有關(guān)的操作外,還執(zhí)行其它 傳統(tǒng)的鏈接操作,此處省略其說明。最后,生成具有新的安全數(shù)據(jù)段的可執(zhí)行文件。
[0060] 當所生成的可執(zhí)行文件被加載到內(nèi)存中運行時,根據(jù)可執(zhí)行文件中的相關(guān)機器指 令,對安全數(shù)據(jù)段進行更新。在本實施例中,更新可包括在安全數(shù)據(jù)段中至少更新敏感數(shù)據(jù) 的內(nèi)存地址和地址偏移量。進一步地,還可W更新敏感數(shù)據(jù)的長度。此外,由于靜態(tài)敏感數(shù) 據(jù)的存儲信息和動態(tài)敏感數(shù)據(jù)的數(shù)據(jù)類型在編譯時已知且不會改變,因此,在運行時也可 W不進行更新,而僅對動態(tài)敏感數(shù)據(jù)的在編譯時不能獲得的內(nèi)存地址和地址偏移量(可選 地,W及長度)進行更新。
[0061] 通過W上描述可W看出,本實施例的方法通過在源文件編碼階段使用特定標識符 標記敏感數(shù)據(jù)、在編譯和鏈接階段生成具有用于存儲敏感數(shù)據(jù)的存儲信息的安全數(shù)據(jù)段的 目標文件和可執(zhí)行文件W及在運行時更新敏感數(shù)據(jù)的存儲信息,能夠準確地確定敏感數(shù)據(jù) 并在運行時跟蹤敏感數(shù)據(jù),從而能夠W任何粒度保護敏感數(shù)據(jù)。此外,即使在多個進程共享 內(nèi)存的情形、變量賦值的情形、函數(shù)調(diào)用的情形和對象繼承的情形下,本實施例的方法也能 夠避免敏感數(shù)據(jù)的泄露。
[0062] 進一步,在實際應(yīng)用本實施例的方法時,還可W通過設(shè)置啟動/失效選項來控制 本實施例的方法的執(zhí)行。具體地,在源文件的編譯時,可首先確定是否啟動了敏感數(shù)據(jù)的保 護。如果敏感數(shù)據(jù)的保護被啟動,則執(zhí)行如上所述的保護敏感數(shù)據(jù)的過程。如果敏感數(shù)據(jù) 的保護未被啟動,則在編譯源文件時,忽略敏感數(shù)據(jù)的特定標識符,按照傳統(tǒng)的編譯方法進 行編譯。此外,在可執(zhí)行文件的運行時,也首先確定是否啟動了敏感數(shù)據(jù)的保護。如果敏感 數(shù)據(jù)的保護被啟動,則在運行時,更新安全數(shù)據(jù)段,否則,忽略更新。
[0063] 圖6示出了根據(jù)本發(fā)明的一個實施例的在執(zhí)行內(nèi)存轉(zhuǎn)儲時保護敏感數(shù)據(jù)的方法 的流程圖。下面結(jié)合附圖,對本實施例進行詳細描述。對于與前面實施例相同的部分,適當 省略其說明。
[0064] 如圖6所示,在步驟S610,當由于軟件產(chǎn)品發(fā)生異常而進行內(nèi)存轉(zhuǎn)儲時,掃描計算 機的內(nèi)存W在內(nèi)存中查找安全數(shù)據(jù)段。如果可執(zhí)行文件具有安全數(shù)據(jù)段,則可執(zhí)行文件在 內(nèi)存中運行時,將在內(nèi)存中包含安全數(shù)據(jù)段。在安全數(shù)據(jù)段中保存有敏感數(shù)據(jù)的存儲信息, 其包括敏感數(shù)據(jù)的數(shù)據(jù)類型、內(nèi)存地址、地址偏移量和長度。
[0065] 接著,在查找到安全數(shù)據(jù)段后,在步驟S620,根據(jù)所查找的安全數(shù)據(jù)段內(nèi)的敏感數(shù) 據(jù)的存儲信息,獲得對應(yīng)的敏感數(shù)據(jù)。如上所述,敏感數(shù)據(jù)的存儲信息包括敏感數(shù)據(jù)的內(nèi) 存地址和地址偏移量,由此,可獲得敏感數(shù)據(jù)在內(nèi)存中的實際地址,從而找到對應(yīng)的敏感數(shù) 據(jù)。
[0066] 然后,在步驟S630,對所獲得的敏感數(shù)據(jù)進行處理W隱藏敏感數(shù)據(jù)。該種隱藏處理 應(yīng)當是不可逆的,W防止對隱藏的敏感數(shù)據(jù)進行反向處理。隱藏處理可W是使用現(xiàn)有的隨 機替換算法來替換敏感數(shù)據(jù),也可W是使用現(xiàn)有的諸如動態(tài)密鑰算法的加密算法來模糊敏 感數(shù)據(jù)。
[0067] 最后,在步驟S640,生成內(nèi)存轉(zhuǎn)儲文件,其中,在該內(nèi)存轉(zhuǎn)儲文件中沒有敏感數(shù)據(jù)。
[0068] 通過W上描述可W看出,本實施例的方法通過根據(jù)內(nèi)存中的安全數(shù)據(jù)段來定位敏 感數(shù)據(jù)并進行隱藏處理,能夠確保在內(nèi)存轉(zhuǎn)儲時不泄露敏感數(shù)據(jù)。
[0069] 在相同的發(fā)明構(gòu)思下,圖7示出了根據(jù)本發(fā)明的一個實施例的用于保護軟件產(chǎn)品 中的敏感數(shù)據(jù)的裝置700的示意性方框圖。下面結(jié)合附圖,對本實施例進行詳細描述。對 于與前面實施例相同的部分,適當省略其說明。
[0070] 如圖7所示,本實施例的裝置700可包括;編譯器701,其被配置為編譯軟件產(chǎn)品 的源文件W生成目標文件,其中,源文件包括用特定標識符標記的至少一個敏感數(shù)據(jù),目標 文件具有用于在編譯時和運行時保存至少一個敏感數(shù)據(jù)的存儲信息的安全數(shù)據(jù)段;W及鏈 接器702,其被配置為鏈接通過
當前第3頁1 2 3 4 5 
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點贊!
1
桦川县| 哈巴河县| 舟山市| 遵化市| 太保市| 青海省| 龙里县| 阿坝| 仙桃市| 桐柏县| 玉田县| 安阳县| 镇沅| 潞城市| 济宁市| 琼结县| 江油市| 称多县| 远安县| 和平县| 古浪县| 上思县| 双柏县| 凤凰县| 古蔺县| 临江市| 衢州市| 饶平县| 民乐县| 泽州县| 霍山县| 仙桃市| 兖州市| 山东省| 临高县| 嘉鱼县| 儋州市| 正镶白旗| 黔南| 金塔县| 习水县|