亚洲成年人黄色一级片,日本香港三级亚洲三级,黄色成人小视频,国产青草视频,国产一区二区久久精品,91在线免费公开视频,成年轻人网站色直接看

防止可執(zhí)行程序的調(diào)變的方法和設(shè)備的制作方法

文檔序號(hào):6574309閱讀:213來(lái)源:國(guó)知局
專(zhuān)利名稱(chēng):防止可執(zhí)行程序的調(diào)變的方法和設(shè)備的制作方法
技術(shù)領(lǐng)域
符合本發(fā)明的方法和設(shè)備涉及防止軟件文件的調(diào)變(modulation),更具體地說(shuō),涉及一種可在運(yùn)行與二進(jìn)制可執(zhí)行代碼相應(yīng)的代碼的同時(shí),直接/間接防止由外部源篡改數(shù)據(jù)的軟件模塊及其方法。

背景技術(shù)
隨著用于代碼程序的技術(shù)的改進(jìn),軟件內(nèi)容變得更大程度上暴露于由黑客進(jìn)行的各種未授權(quán)訪問(wèn)威脅,所述黑客是具有惡意意圖的非法用戶(hù),所述惡意意圖諸如改變軟件結(jié)構(gòu)或使得技術(shù)保護(hù)措施無(wú)效等。
換言之,黑客可入侵使用應(yīng)用數(shù)字版權(quán)管理(DRM)的內(nèi)容的計(jì)算機(jī)或終端,以便篡改或刪除可執(zhí)行代碼。
軟件入侵技術(shù)通過(guò)逆向分析和調(diào)試使得技術(shù)保護(hù)措施無(wú)效。例如,可通過(guò)使用諸如SoftIce、W32dasm等的調(diào)試工具、寄存器監(jiān)測(cè)工具、文件監(jiān)測(cè)工具等破壞已經(jīng)建立的DRM。
此外,由于對(duì)時(shí)間和數(shù)據(jù)進(jìn)行的篡改,所以可有意改變計(jì)算機(jī)或終端的時(shí)間,或者可操縱超過(guò)被準(zhǔn)許的使用計(jì)數(shù)的內(nèi)容的使用計(jì)數(shù)或使用細(xì)節(jié),以便有意使用超過(guò)有效期限的內(nèi)容。
最新軟件以模塊形式來(lái)設(shè)計(jì)和實(shí)現(xiàn),因此可擴(kuò)展性和集成性非常好。然而,這些模塊通過(guò)接口被調(diào)用并交換消息,因此,欺詐模塊可偽裝為普通模塊,以便操縱程序或竊取重要數(shù)據(jù)。
此外,DRM技術(shù)控制被準(zhǔn)許用戶(hù)根據(jù)他們被準(zhǔn)許的權(quán)限來(lái)使用內(nèi)容。然而,由于各種數(shù)據(jù)在應(yīng)用或計(jì)算機(jī)管理系統(tǒng)中進(jìn)行交換,所以在安全性方面會(huì)存在弱點(diǎn)。例如,可通過(guò)數(shù)據(jù)漏泄路徑來(lái)嘗試進(jìn)行篡改,所述異常數(shù)據(jù)漏泄路徑,諸如,通過(guò)“復(fù)制粘貼”、“拖放”進(jìn)行的數(shù)據(jù)復(fù)制,剪貼板,通過(guò)使用“打印屏幕”的屏幕捕獲和各種其它捕獲效用進(jìn)行的數(shù)據(jù)復(fù)制等。
傳統(tǒng)上,為了防止篡改,檢驗(yàn)程序以檢查所述程序是否已經(jīng)被黑客非法改變。通常,將篡改防止技術(shù)劃分為在源級(jí)別插入擾碼的方法和在管理系統(tǒng)中檢測(cè)并攔截入侵嘗試的方法。由于在源級(jí)別插入擾碼的方法涉及將偽代碼插入在程序中執(zhí)行重要邏輯功能的模塊,所以所述方法增加了執(zhí)行調(diào)試的難度。在管理系統(tǒng)中檢測(cè)并攔截入侵嘗試的方法涉及當(dāng)執(zhí)行可用于入侵的程序時(shí)在系統(tǒng)級(jí)別進(jìn)行檢測(cè),并停止入侵程序或?qū)⒈槐Wo(hù)的程序。
然而,存在各種軟件入侵工具,并且某些軟件入侵工具包括繞過(guò)所述在管理系統(tǒng)中檢測(cè)并攔截入侵嘗試的方法的功能。因此,需要更加基礎(chǔ)的篡改防止技術(shù)。


發(fā)明內(nèi)容
本發(fā)明提供一種在執(zhí)行存儲(chǔ)在硬盤(pán)中的程序之前以及正在執(zhí)行所述程序時(shí)防止篡改所述程序的方法。
根據(jù)本發(fā)明的一方面,提供一種防止對(duì)可執(zhí)行程序的調(diào)變(modulation)的方法,所述方法包括對(duì)可執(zhí)行程序的頭部進(jìn)行解碼并計(jì)算關(guān)于多個(gè)可執(zhí)行代碼的信息;參考關(guān)于所述多個(gè)可執(zhí)行代碼的信息將所述多個(gè)可執(zhí)行代碼分組為第一代碼組和第二代碼組;將包括在第一代碼組中的每個(gè)可執(zhí)行代碼與包括在第二代碼組中的各個(gè)可執(zhí)行代碼進(jìn)行匹配;以及使用包括在第一代碼組中的多個(gè)可執(zhí)行代碼中的每一個(gè)的第一哈希值對(duì)包括在第二代碼組中的每個(gè)匹配的可執(zhí)行代碼進(jìn)行編碼。
所述方法還包括使用包括在第一代碼組中的多個(gè)可執(zhí)行代碼中的每一個(gè)的第一哈希值對(duì)包括在第二代碼組中的每個(gè)匹配的可執(zhí)行代碼進(jìn)行解碼;以及使用包括在第二代碼組中的多個(gè)可執(zhí)行代碼的各哈希值對(duì)包括在第一代碼組中的相應(yīng)可執(zhí)行代碼進(jìn)行編碼。
所述方法還包括改變可執(zhí)行程序的頭部的符號(hào)串?dāng)?shù)據(jù)。
包括在第一代碼組中的多個(gè)可執(zhí)行代碼和包括在第二代碼組中的多個(gè)可執(zhí)行代碼可一一對(duì)應(yīng)。
包括在第一代碼組中的可執(zhí)行代碼可以是將被保護(hù)的可執(zhí)行代碼。
根據(jù)本發(fā)明的另一方面,提供一種防止對(duì)可執(zhí)行程序的調(diào)變的方法,所述方法包括對(duì)可執(zhí)行程序的頭部進(jìn)行解碼并計(jì)算關(guān)于多個(gè)可執(zhí)行代碼的信息;參考關(guān)于所述多個(gè)可執(zhí)行代碼的信息將所述多個(gè)可執(zhí)行代碼分類(lèi)為由編碼的可執(zhí)行代碼形成的第一代碼組和由未編碼的可執(zhí)行代碼形成的第二代碼組;將包括在第一代碼組中的多個(gè)可執(zhí)行代碼中的每一個(gè)與包括在第二代碼組中的多個(gè)可執(zhí)行代碼中的每一個(gè)進(jìn)行匹配;使用與第一可執(zhí)行代碼相應(yīng)的第二可執(zhí)行代碼的哈希值對(duì)第一可執(zhí)行代碼進(jìn)行解碼,所述第一可執(zhí)行代碼是包括在第一代碼組中的多個(gè)可執(zhí)行代碼中將被執(zhí)行的可執(zhí)行代碼;以及在已經(jīng)執(zhí)行所解碼的第一可執(zhí)行代碼之后,使用第二可執(zhí)行代碼的哈希值對(duì)第一可執(zhí)行代碼進(jìn)行編碼。
在執(zhí)行第一可執(zhí)行代碼的同時(shí),可使用包括在第二代碼組中的相應(yīng)可執(zhí)行代碼的哈希值對(duì)除第一可執(zhí)行代碼之外的包括在第一代碼組中的至少一個(gè)可執(zhí)行代碼進(jìn)行編碼。
第二可執(zhí)行代碼可包括在第二代碼組中。
包括在第一代碼組中的多個(gè)可執(zhí)行代碼和包括在第二代碼組中的多個(gè)可執(zhí)行代碼可一一對(duì)應(yīng)。
根據(jù)本發(fā)明的另一方面,提供一種防止對(duì)可執(zhí)行程序的調(diào)變的設(shè)備,所述設(shè)備包括解析單元,對(duì)可執(zhí)行程序的頭部進(jìn)行解碼并計(jì)算關(guān)于多個(gè)可執(zhí)行代碼的信息;分類(lèi)單元,參考關(guān)于所述可執(zhí)行代碼的信息將所述可執(zhí)行代碼分類(lèi)為第一代碼組和第二代碼組;匹配單元,將包括在第一代碼組中的每個(gè)可執(zhí)行代碼與包括在第二代碼組中的各個(gè)可執(zhí)行代碼進(jìn)行匹配;以及編解碼器,使用包括在第一代碼組中的多個(gè)可執(zhí)行代碼的每個(gè)哈希值對(duì)包括在第二代碼組中的每個(gè)相應(yīng)可執(zhí)行代碼進(jìn)行編碼。
根據(jù)本發(fā)明的另一方面,提供一種防止對(duì)可執(zhí)行程序的調(diào)變的設(shè)備,所述設(shè)備包括解析單元,對(duì)可執(zhí)行程序的頭部進(jìn)行解碼并計(jì)算關(guān)于多個(gè)可執(zhí)行代碼的信息;分類(lèi)單元,參考關(guān)于所述多個(gè)可執(zhí)行代碼的信息將所述可執(zhí)行代碼分組為由編碼的可執(zhí)行代碼形成的第一代碼組和由未編碼的可執(zhí)行代碼形成的第二代碼組;匹配單元,將包括在第一代碼組中的多個(gè)可執(zhí)行代碼中的每一個(gè)與包括在第二代碼組中的各個(gè)可執(zhí)行代碼進(jìn)行匹配;編解碼器,使用與第一可執(zhí)行代碼相應(yīng)的第二可執(zhí)行代碼的哈希值對(duì)第一可執(zhí)行代碼進(jìn)行解碼,其中,所述第一可執(zhí)行代碼是包括在第一代碼組中的多個(gè)可執(zhí)行代碼中將被執(zhí)行的可執(zhí)行代碼;并且在已經(jīng)執(zhí)行所解碼的第一可執(zhí)行代碼之后,使用第二可執(zhí)行代碼的哈希值對(duì)第一可執(zhí)行代碼進(jìn)行編碼。



通過(guò)參照附圖進(jìn)行的對(duì)本發(fā)明示例性實(shí)施例的詳細(xì)描述,本發(fā)明的上述和其它方面將會(huì)變得更加清楚,其中 圖1是示出根據(jù)本發(fā)明示例性實(shí)施例的篡改防止模塊100的框圖; 圖2是示出根據(jù)本發(fā)明示例性實(shí)施例的在執(zhí)行程序之前防止篡改的方法的流程圖; 圖3A至圖3C是示出圖2的程序的變換處理的示圖; 圖4是示出根據(jù)本發(fā)明示例性實(shí)施例的使用保護(hù)集合的哈希值對(duì)鏈路集合進(jìn)行編碼的編解碼器150的示圖; 圖5是示出根據(jù)本發(fā)明示例性實(shí)施例的在執(zhí)行程序的同時(shí)防止篡改的方法的流程圖; 圖6是示出當(dāng)根據(jù)圖5將程序載入外圍裝置的存儲(chǔ)器中時(shí)程序的變換處理的示圖;以及 圖7A至圖7C是示出在執(zhí)行程序的同時(shí)圖5的程序的變換處理的示圖。

具體實(shí)施例方式 以下,將參照附圖更加全面地描述本發(fā)明,在所述附圖中示出本發(fā)明的示例性實(shí)施例。
圖1是示出根據(jù)本發(fā)明示例性實(shí)施例的篡改防止模塊100的框圖。
篡改防止模塊100包括控制單元110、解析單元120、分類(lèi)單元130、匹配單元140、編解碼器150和替代單元160。
首先,控制單元110通過(guò)與篡改防止模塊100的每個(gè)單元進(jìn)行鏈接來(lái)控制全部處理。解析單元120通過(guò)對(duì)程序的頭部進(jìn)行解析來(lái)提取關(guān)于二進(jìn)制可執(zhí)行代碼的信息。
分類(lèi)單元130將二進(jìn)制可執(zhí)行代碼分類(lèi)為保護(hù)集合和鏈路集合。鏈路集合包括二進(jìn)制可執(zhí)行代碼中的多個(gè)純文本編程命令,其實(shí)現(xiàn)各種非敏感服務(wù)。保護(hù)集合包括諸如編程命令的純文本的多個(gè)組,其實(shí)現(xiàn)各種敏感服務(wù),混淆單元(obfuscated cell)等。因此,將實(shí)現(xiàn)敏感服務(wù)或需要保護(hù)的服務(wù)的組存儲(chǔ)為保護(hù)集合。這里,二進(jìn)制可執(zhí)行代碼并非必須通過(guò)分類(lèi)單元130存儲(chǔ)為兩個(gè)集合,而可以存儲(chǔ)為三個(gè)或更多集合,其中包括不具有任何函數(shù)的普通集合。
匹配單元140產(chǎn)生并管理所選擇的兩個(gè)集合之間的相互關(guān)系。也就是說(shuō),將包括在保護(hù)集合中的多個(gè)可執(zhí)行代碼和包括在鏈路集合中的多個(gè)可執(zhí)行代碼一一對(duì)應(yīng)。
編解碼器150包括哈希函數(shù)單元152和加擾器154。哈希函數(shù)單元152使用哈希函數(shù)產(chǎn)生哈希值,加擾器154基于產(chǎn)生的哈希值對(duì)二進(jìn)制可執(zhí)行代碼進(jìn)行編碼或解碼。
替代單元160隨機(jī)地排列或改變程序的頭部的符號(hào)串?dāng)?shù)據(jù),從而使符號(hào)串?dāng)?shù)據(jù)變得沒(méi)有意義。
以下,將描述在執(zhí)行存儲(chǔ)在硬盤(pán)中的程序之前防止篡改的方法。此外,將描述當(dāng)正在執(zhí)行程序時(shí)防止篡改的方法。
首先,將參照?qǐng)D2至圖4來(lái)描述由圖1的篡改防止模塊100使用的在執(zhí)行程序之前防止篡改的方法。
圖2是示出根據(jù)本發(fā)明示例性實(shí)施例的在執(zhí)行程序之前防止篡改的方法的流程圖,圖3A至圖3C是示出圖2的程序的變換處理的示圖。假設(shè)程序在被執(zhí)行之前存儲(chǔ)在盤(pán)中。
首先,在操作S10產(chǎn)生由如圖3A所示的頭部和函數(shù)部分形成的可執(zhí)行程序。所述頭部包括頭部信息,諸如用于執(zhí)行調(diào)試的函數(shù)的符號(hào)串?dāng)?shù)據(jù)、函數(shù)的位置等。函數(shù)部分包括表示為二進(jìn)制可執(zhí)行代碼的各種函數(shù),例如,func1、func2、...、func8等。
然后,解析單元120在操作S20解析所述可執(zhí)行程序,以便獲得記錄在頭部的關(guān)于二進(jìn)制可執(zhí)行代碼的信息。
分類(lèi)單元130在操作S30將每個(gè)二進(jìn)制可執(zhí)行代碼分類(lèi)為函數(shù)部分中的保護(hù)集合和鏈路集合。如上所述,保護(hù)集合包括實(shí)現(xiàn)敏感服務(wù)或需要保護(hù)的服務(wù)的二進(jìn)制可執(zhí)行代碼,鏈路集合包括實(shí)現(xiàn)非敏感服務(wù)的二進(jìn)制可執(zhí)行代碼。這里,可使用編碼器存儲(chǔ)保護(hù)集合和鏈路集合。分類(lèi)單元130存儲(chǔ)與存儲(chǔ)的保護(hù)集合和鏈路集合相應(yīng)的關(guān)于二進(jìn)制可執(zhí)行代碼的信息。為了便于描述,在圖3B中,假設(shè)函數(shù)func2、func5和func7是包括在保護(hù)集合中的二進(jìn)制可執(zhí)行代碼,函數(shù)func1、func3和func6是包括在鏈路集合中的二進(jìn)制可執(zhí)行代碼。
匹配單元140任意地將包括在保護(hù)集合中的函數(shù)func2、func5和func7與包括在鏈路集合中的函數(shù)func1、func3和func6進(jìn)行匹配,編解碼器150在操作S40使用包括在保護(hù)集合中的函數(shù)func2、func5和func7的哈希值對(duì)包括在鏈路集合中的相應(yīng)函數(shù)func1、func3和func6進(jìn)行編碼。在當(dāng)前的示例性實(shí)施例中,函數(shù)func2與函數(shù)func1匹配,函數(shù)func5與函數(shù)func6匹配,函數(shù)func7與函數(shù)func3匹配。
圖4是示出根據(jù)本發(fā)明示例性實(shí)施例的使用保護(hù)集合的哈希值對(duì)鏈路集合進(jìn)行編碼的圖1的編解碼器150的示圖。
如圖4所示,當(dāng)將包括在保護(hù)集合中的二進(jìn)制可執(zhí)行代碼i輸入到哈希函數(shù)單元152時(shí),產(chǎn)生哈希值并將其輸出到加擾器154。此外,當(dāng)將包括在鏈路集合中的二進(jìn)制可執(zhí)行代碼j輸入到加擾器154時(shí),加擾器154使用輸入的哈希值對(duì)二進(jìn)制可執(zhí)行代碼j進(jìn)行編碼,并輸出重新編碼的二進(jìn)制可執(zhí)行代碼j#。
當(dāng)輸入的二進(jìn)制可執(zhí)行代碼i被改變時(shí),輸出的二進(jìn)制可執(zhí)行代碼j#被改變。因此,當(dāng)黑客改變程序時(shí),包括改變部分的函數(shù)的哈希值也改變。改變的哈希值用于對(duì)與包括改變部分的函數(shù)相應(yīng)的其它函數(shù)進(jìn)行解碼。由于改變的哈希值不同于在對(duì)其它函數(shù)進(jìn)行編碼時(shí)使用的哈希值,所以不能正常執(zhí)行程序。
以這種方式,如圖3C所示,使用函數(shù)func2產(chǎn)生編碼函數(shù)func1#,使用函數(shù)func5產(chǎn)生編碼函數(shù)func6#,使用函數(shù)func7產(chǎn)生編碼函數(shù)func3#。
因此,通過(guò)在執(zhí)行程序之前對(duì)存儲(chǔ)在盤(pán)中的程序的二進(jìn)制可執(zhí)行代碼進(jìn)行編碼,黑客不能正常地執(zhí)行程序。
傳統(tǒng)上,在執(zhí)行存儲(chǔ)在硬盤(pán)中的程序之前,黑客使用“反匯編程序”,以便通過(guò)將作為機(jī)器代碼的二進(jìn)制可執(zhí)行代碼改變?yōu)閰R編語(yǔ)言并跟蹤匯編語(yǔ)言來(lái)嘗試入侵。因此,通過(guò)對(duì)存儲(chǔ)在盤(pán)中的二進(jìn)制可執(zhí)行代碼的一部分進(jìn)行編碼,黑客不能正常的執(zhí)行如圖3A所示的原始程序。
同時(shí),替代單元160可在圖2的操作S50任意地改變或替代程序的頭部的符號(hào)串?dāng)?shù)據(jù)以使其無(wú)意義,從而將錯(cuò)誤信息發(fā)送到黑客。也就是說(shuō),通過(guò)改變記錄在頭部中的位置信息和函數(shù)的標(biāo)題,黑客不能正常地執(zhí)行或改變程序。
如上所述,通過(guò)在執(zhí)行圖3A的原始程序之前對(duì)所述程序的二進(jìn)制可執(zhí)行代碼進(jìn)行編碼,在圖2的操作S60產(chǎn)生如圖3C所示的改變程序。因此,黑客不能正常地使用原始程序或改變程序。
以下,將參照?qǐng)D5至圖7C來(lái)描述在執(zhí)行程序的同時(shí)由圖1的篡改防止模塊100使用的防止篡改的方法。
圖5是示出根據(jù)本發(fā)明示例性實(shí)施例的在執(zhí)行程序的同時(shí)防止篡改的方法的流程圖,圖6是示出當(dāng)根據(jù)圖5將程序載入外圍裝置的存儲(chǔ)器中時(shí)程序的變換處理的示圖,以及圖7A至圖7C是示出在執(zhí)行程序的同時(shí)圖5的程序的變換處理的示圖。
首先,當(dāng)包括在如圖3C所示的鏈路集合中的函數(shù)被編碼時(shí),在操作S110使用包括在保護(hù)集合中的函數(shù)的哈希值對(duì)包括在鏈路集合中的相應(yīng)函數(shù)進(jìn)行解碼。使用保護(hù)集合的哈希值對(duì)鏈路集合進(jìn)行解碼的處理與如圖4所示的使用保護(hù)集合的哈希值對(duì)鏈路集合進(jìn)行編碼的處理相同。因此,將省略對(duì)其的詳細(xì)描述。
在使用圖4所示的方法通過(guò)使用保護(hù)集合的哈希值對(duì)相應(yīng)鏈路集合進(jìn)行解碼之后,在操作S120使用鏈路集合的哈希值對(duì)相應(yīng)保護(hù)集合進(jìn)行編碼。因此,在使用包括在鏈路集合中的各個(gè)函數(shù)的哈希值對(duì)包括在保護(hù)集合中的相應(yīng)函數(shù)進(jìn)行編碼之后,如圖6所示,將程序上載到外圍裝置的存儲(chǔ)器中。
如上所述,通過(guò)對(duì)包括在保護(hù)集合中的二進(jìn)制可執(zhí)行代碼進(jìn)行編碼,可防止轉(zhuǎn)儲(chǔ),黑客可通過(guò)所述轉(zhuǎn)儲(chǔ)順序地讀取上載到存儲(chǔ)器中的二進(jìn)制可執(zhí)行代碼。
接著,將描述執(zhí)行上載到如圖6所示的存儲(chǔ)器中的程序。
通常,從上載到存儲(chǔ)器中的程序中順序執(zhí)行在頭部中指示的地址的函數(shù)。在當(dāng)前的示例性實(shí)施例中,假設(shè)從函數(shù)func1開(kāi)始順序執(zhí)行函數(shù)。
當(dāng)控制單元110產(chǎn)生用于執(zhí)行上載到存儲(chǔ)器中的程序的命令時(shí),在操作S130對(duì)將被執(zhí)行的保護(hù)集合中的二進(jìn)制可執(zhí)行代碼進(jìn)行解碼。
也就是說(shuō),在執(zhí)行函數(shù)func1之后,應(yīng)該執(zhí)行編碼函數(shù)func2#。因此,在如圖6所示的編碼函數(shù)func2#、func5#和func7#中,如圖7A所示,僅將函數(shù)func2#解碼為函數(shù)func2以便執(zhí)行。然后,在執(zhí)行函數(shù)func2之后,再次將執(zhí)行的函數(shù)func2編碼為函數(shù)func2#。當(dāng)如圖7B所示,將函數(shù)func5#解碼為函數(shù)func5之后,函數(shù)func2#和函數(shù)func7#保持編碼狀態(tài)。
也就是說(shuō),在操作S140再次對(duì)執(zhí)行的保護(hù)集合的二進(jìn)制可執(zhí)行代碼進(jìn)行編碼,從而在執(zhí)行程序的同時(shí),所述程序不具有與圖3A的原始程序相同的格式。
以相同的方式,在對(duì)函數(shù)func5#進(jìn)行解碼隨后作為函數(shù)func5執(zhí)行之后,再次將函數(shù)func5編碼為函數(shù)func5#,并且在如圖7C所示,將函數(shù)func7#解碼為函數(shù)func7的同時(shí),函數(shù)func2#和函數(shù)func5#保持編碼狀態(tài)。
因此,通過(guò)在多個(gè)二進(jìn)制可執(zhí)行代碼中保持至少一個(gè)二進(jìn)制可執(zhí)行代碼處于編碼狀態(tài),當(dāng)將程序上載到外圍裝置的存儲(chǔ)器并執(zhí)行所述程序時(shí),黑客無(wú)法入侵所述程序。
在執(zhí)行程序之前防止篡改的方法中,使用保護(hù)集合的哈希值對(duì)鏈路集合進(jìn)行編碼(操作S40),但是可使用鏈路集合的哈希值對(duì)保護(hù)集合進(jìn)行編碼。當(dāng)執(zhí)行程序之前對(duì)保護(hù)集合進(jìn)行編碼時(shí),可在執(zhí)行程序的同時(shí)對(duì)保護(hù)集合進(jìn)行解碼,隨后可對(duì)鏈路集合進(jìn)行編碼以便防止篡改。
此外,在執(zhí)行程序之前對(duì)鏈路集合進(jìn)行編碼并且在將程序上載到存儲(chǔ)器中的同時(shí)對(duì)其進(jìn)行解碼,并且對(duì)保護(hù)集合進(jìn)行編碼,但是在執(zhí)行程序之前可按原樣將編碼的鏈路集合上載到存儲(chǔ)器中。
可將根據(jù)本發(fā)明示例性實(shí)施例的在執(zhí)行程序之前防止篡改的方法和在執(zhí)行程序的同時(shí)防止篡改的方法寫(xiě)為計(jì)算機(jī)程序。本發(fā)明所屬領(lǐng)域的編程技術(shù)人員可容易地解釋用于實(shí)現(xiàn)本發(fā)明示例性實(shí)施例的代碼和代碼段。此外,將計(jì)算機(jī)程序存儲(chǔ)在計(jì)算機(jī)可讀介質(zhì)中,并由計(jì)算機(jī)程序讀取以執(zhí)行。因此,實(shí)現(xiàn)防止篡改的方法。計(jì)算機(jī)可讀介質(zhì)的示例包括磁記錄介質(zhì)和光數(shù)據(jù)存儲(chǔ)介質(zhì)。
根據(jù)本發(fā)明示例性實(shí)施例的防止篡改的方法通過(guò)在執(zhí)行程序之前將程序上載到存儲(chǔ)器中,在執(zhí)行程序的同時(shí)將二進(jìn)制可執(zhí)行代碼分類(lèi)為鏈路集合和保護(hù)集合,并對(duì)二進(jìn)制可執(zhí)行代碼進(jìn)行編碼,防止由黑客調(diào)變(modulation)程序和正常執(zhí)行程序。
盡管已經(jīng)參照本發(fā)明的示例性實(shí)施例具體示出和描述了本發(fā)明,但是本領(lǐng)域的技術(shù)人員將理解在不脫離由權(quán)利要求限定的本發(fā)明的精神和范圍的情況下,可進(jìn)行形式和細(xì)節(jié)上的各種改變。
權(quán)利要求
1.一種防止對(duì)可執(zhí)行程序的調(diào)變的方法,所述方法包括
對(duì)可執(zhí)行程序的頭部進(jìn)行解碼并產(chǎn)生頭部的關(guān)于多個(gè)可執(zhí)行代碼的信息;
參考關(guān)于所述多個(gè)可執(zhí)行代碼的信息將所述多個(gè)可執(zhí)行代碼分組為第一代碼組和第二代碼組;
將第一代碼組的每個(gè)可執(zhí)行代碼與第二代碼組的各個(gè)可執(zhí)行代碼進(jìn)行匹配;以及
使用第一代碼組的多個(gè)可執(zhí)行代碼中的每一個(gè)的各個(gè)第一哈希值對(duì)第二代碼組的每個(gè)匹配的可執(zhí)行代碼進(jìn)行編碼。
2.如權(quán)利要求1所述的方法,還包括
使用第一代碼組的多個(gè)可執(zhí)行代碼中的每一個(gè)的各個(gè)第一哈希值對(duì)第二代碼組的每個(gè)匹配的可執(zhí)行代碼進(jìn)行解碼;以及
使用第二代碼組的多個(gè)可執(zhí)行代碼中的每一個(gè)的各個(gè)第二哈希值對(duì)第一代碼組的相應(yīng)可執(zhí)行代碼進(jìn)行編碼。
3.如權(quán)利要求1所述的方法,還包括修改可執(zhí)行程序的頭部的符號(hào)串?dāng)?shù)據(jù)。
4.如權(quán)利要求2所述的方法,還包括修改可執(zhí)行程序的頭部的符號(hào)串?dāng)?shù)據(jù)。
5.如權(quán)利要求1所述的方法,其中,第一代碼組的多個(gè)可執(zhí)行代碼中的每一個(gè)分別和第二代碼組的多個(gè)可執(zhí)行代碼中的每一個(gè)對(duì)應(yīng)。
6.如權(quán)利要求1所述的方法,其中,第一代碼組的可執(zhí)行代碼是被保護(hù)的可執(zhí)行代碼。
7.一種防止對(duì)可執(zhí)行程序的調(diào)變的方法,所述方法包括
對(duì)可執(zhí)行程序的頭部進(jìn)行解碼并產(chǎn)生頭部的關(guān)于多個(gè)可執(zhí)行代碼的信息;
參考關(guān)于所述多個(gè)可執(zhí)行代碼的信息將所述多個(gè)可執(zhí)行代碼分類(lèi)為包括敏感可執(zhí)行代碼的第一代碼組和包括非敏感可執(zhí)行代碼的第二代碼組;
將第一代碼組的多個(gè)可執(zhí)行代碼中的每一個(gè)與第二代碼組的多個(gè)可執(zhí)行代碼中的每一個(gè)進(jìn)行匹配;
使用與第一可執(zhí)行代碼相應(yīng)的第二可執(zhí)行代碼的第一哈希值對(duì)第一可執(zhí)行代碼進(jìn)行解碼,所述第一可執(zhí)行代碼是在第一代碼組的多個(gè)可執(zhí)行代碼中將被執(zhí)行的可執(zhí)行代碼;以及
在已經(jīng)執(zhí)行所解碼的第一可執(zhí)行代碼之后,使用第二可執(zhí)行代碼的第一哈希值對(duì)第一可執(zhí)行代碼進(jìn)行編碼。
8.如權(quán)利要求7所述的方法,其中,在執(zhí)行第一可執(zhí)行代碼的同時(shí),使用第二代碼組的相應(yīng)可執(zhí)行代碼的第二哈希值,對(duì)除第一可執(zhí)行代碼之外的第一代碼組的多個(gè)可執(zhí)行代碼中的至少一個(gè)可執(zhí)行代碼進(jìn)行編碼。
9.如權(quán)利要求8所述的方法,其中,第二代碼組包括第二可執(zhí)行代碼。
10.如權(quán)利要求7所述的方法,其中,第一代碼組的多個(gè)可執(zhí)行代碼中的每一個(gè)分別和第二代碼組的多個(gè)可執(zhí)行代碼中的每一個(gè)對(duì)應(yīng)。
11.一種防止對(duì)可執(zhí)行程序的調(diào)變的設(shè)備,所述設(shè)備包括
解析單元,對(duì)可執(zhí)行程序的頭部進(jìn)行解碼并產(chǎn)生頭部的關(guān)于多個(gè)可執(zhí)行代碼的信息;
分類(lèi)單元,參考關(guān)于所述可執(zhí)行代碼的信息將所述可執(zhí)行代碼分組為第一代碼組和第二代碼組;
匹配單元,將第一代碼組的每個(gè)可執(zhí)行代碼與第二代碼組中的各個(gè)可執(zhí)行代碼進(jìn)行匹配;以及
編解碼器,使用第一代碼組的多個(gè)可執(zhí)行代碼中的每一個(gè)的第一哈希值對(duì)分別對(duì)應(yīng)于第一代碼組的可執(zhí)行代碼的第二代碼組的每個(gè)相應(yīng)可執(zhí)行代碼進(jìn)行編碼。
12.如權(quán)利要求11所述的設(shè)備,其中,編解碼器包括
哈希函數(shù)單元,產(chǎn)生與第一代碼組的第一可執(zhí)行代碼相應(yīng)的第一哈希值;以及
加擾器,操作與第一可執(zhí)行代碼相應(yīng)的第二可執(zhí)行代碼和第一哈希值以輸出編碼的第二可執(zhí)行代碼。
13.如權(quán)利要求12所述的設(shè)備,其中,編解碼器使用第一可執(zhí)行代碼的第一哈希值對(duì)相應(yīng)的第二可執(zhí)行代碼進(jìn)行解碼,并使用第二可執(zhí)行代碼的第二哈希值對(duì)相應(yīng)的第一可執(zhí)行代碼進(jìn)行編碼。
14.如權(quán)利要求13所述的設(shè)備,其中,第二代碼組包括第二可執(zhí)行代碼。
15.如權(quán)利要求11所述的設(shè)備,還包括替代單元,改變可執(zhí)行程序的頭部的符號(hào)串?dāng)?shù)據(jù)。
16.如權(quán)利要求11所述的設(shè)備,其中,第一代碼組的多個(gè)可執(zhí)行代碼中的每一個(gè)分別對(duì)應(yīng)于第二代碼組的多個(gè)可執(zhí)行代碼中的每一個(gè)。
17.如權(quán)利要求11所述的設(shè)備,其中,第一代碼組的可執(zhí)行代碼是被保護(hù)的可執(zhí)行代碼。
18.一種防止對(duì)可執(zhí)行程序的調(diào)變的設(shè)備,所述設(shè)備包括
解析單元,對(duì)可執(zhí)行程序的頭部進(jìn)行解碼并產(chǎn)生頭部的關(guān)于多個(gè)可執(zhí)行代碼的信息;
分類(lèi)單元,參考關(guān)于所述多個(gè)可執(zhí)行代碼的信息將所述可執(zhí)行代碼分組為包括敏感可執(zhí)行代碼的第一代碼組和包括非敏感可執(zhí)行代碼的第二代碼組;
匹配單元,將第一代碼組的多個(gè)可執(zhí)行代碼中的每一個(gè)與第二代碼組的各個(gè)可執(zhí)行代碼中的每一個(gè)進(jìn)行匹配;
編解碼器,使用與第一可執(zhí)行代碼相應(yīng)的第二可執(zhí)行代碼的第一哈希值對(duì)第一代碼組的多個(gè)可執(zhí)行代碼中將被執(zhí)行的第一可執(zhí)行代碼進(jìn)行解碼,并且在已經(jīng)執(zhí)行所解碼的第一可執(zhí)行代碼之后,使用第二可執(zhí)行代碼的第一哈希值對(duì)第一可執(zhí)行代碼進(jìn)行編碼。
19.如權(quán)利要求18所述的設(shè)備,其中,在執(zhí)行第一可執(zhí)行代碼的同時(shí),使用第二代碼組的相應(yīng)可執(zhí)行代碼的第二哈希值對(duì)除去第一可執(zhí)行代碼的第一代碼組的至少一個(gè)可執(zhí)行代碼進(jìn)行編碼。
20.如權(quán)利要求18所述的設(shè)備,其中,第二代碼組包括第二可執(zhí)行代碼。
21.如權(quán)利要求17所述的設(shè)備,其中,第一代碼組的多個(gè)可執(zhí)行代碼中的每一個(gè)分別對(duì)應(yīng)于第二代碼組的多個(gè)可執(zhí)行代碼中的每一個(gè)。
22.一種具有用于執(zhí)行防止對(duì)可執(zhí)行程序的調(diào)變的方法的程序的計(jì)算機(jī)可讀記錄介質(zhì),所述方法包括
對(duì)可執(zhí)行程序的頭部進(jìn)行解碼并產(chǎn)生頭部的關(guān)于多個(gè)可執(zhí)行代碼的信息;
參考關(guān)于所述多個(gè)可執(zhí)行代碼的信息將所述多個(gè)可執(zhí)行代碼分組為第一代碼組和第二代碼組;
將第一代碼組的多個(gè)可執(zhí)行代碼中的每一個(gè)與第二代碼組的各個(gè)可執(zhí)行代碼進(jìn)行匹配;以及
使用第一代碼組的多個(gè)可執(zhí)行代碼中的每個(gè)第一哈希值對(duì)與第一代碼組的每個(gè)可執(zhí)行代碼相應(yīng)的第二代碼組的每個(gè)可執(zhí)行代碼進(jìn)行編碼。
23.一種具有用于執(zhí)行防止對(duì)可執(zhí)行程序的調(diào)變的方法的程序的計(jì)算機(jī)可讀記錄介質(zhì),所述方法包括
對(duì)可執(zhí)行程序的頭部進(jìn)行解碼并產(chǎn)生頭部的關(guān)于多個(gè)可執(zhí)行代碼的信息;
參考關(guān)于所述多個(gè)可執(zhí)行代碼的信息將所述多個(gè)可執(zhí)行代碼分類(lèi)為包括敏感可執(zhí)行代碼的第一代碼組和包括非敏感可執(zhí)行代碼的第二代碼組;
將第一代碼組的每個(gè)可執(zhí)行代碼與第二代碼組的各個(gè)可執(zhí)行代碼進(jìn)行匹配;
使用與第一可執(zhí)行代碼相應(yīng)的第二可執(zhí)行代碼的第一哈希值對(duì)第一可執(zhí)行代碼進(jìn)行解碼,所述第一可執(zhí)行代碼是在第一代碼組的多個(gè)可執(zhí)行代碼中將被執(zhí)行的可執(zhí)行代碼;以及
在已經(jīng)執(zhí)行所解碼的第一可執(zhí)行代碼之后,使用第二可執(zhí)行代碼的第一哈希值對(duì)第一可執(zhí)行代碼進(jìn)行編碼。
全文摘要
提供一種防止對(duì)可執(zhí)行程序的調(diào)變的方法和設(shè)備。所述方法包括對(duì)可執(zhí)行程序的頭部進(jìn)行解碼并產(chǎn)生關(guān)于多個(gè)可執(zhí)行代碼的信息;參考關(guān)于所述多個(gè)可執(zhí)行代碼的信息將所述多個(gè)可執(zhí)行代碼分組為第一代碼組和第二代碼組;將包括在第一代碼組中的多個(gè)可執(zhí)行代碼中的每一個(gè)與包括在第二代碼組中的多個(gè)可執(zhí)行代碼中的每一個(gè)進(jìn)行匹配;以及使用包括在第一代碼組中的可執(zhí)行代碼的每個(gè)哈希值對(duì)包括在第二代碼組中的相應(yīng)可執(zhí)行代碼中的每一個(gè)進(jìn)行編碼。
文檔編號(hào)G06F21/22GK101131726SQ20071008474
公開(kāi)日2008年2月27日 申請(qǐng)日期2007年2月28日 優(yōu)先權(quán)日2006年8月25日
發(fā)明者南秀鉉, 崔尚洙 申請(qǐng)人:三星電子株式會(huì)社
網(wǎng)友詢(xún)問(wèn)留言 已有0條留言
  • 還沒(méi)有人留言評(píng)論。精彩留言會(huì)獲得點(diǎn)贊!
1