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

防止程序篡改的方法、升級混淆程序的方法及裝置的制作方法

文檔序號:6400611閱讀:371來源:國知局
專利名稱:防止程序篡改的方法、升級混淆程序的方法及裝置的制作方法
技術(shù)領(lǐng)域
本發(fā)明涉及一種防止篡改程序的方法及其裝置,更具體的,涉及一種利用程序唯一編號來防止篡改程序的方法、一種升級抗-篡改程序的方法及它們的裝置。
背景技術(shù)
隨著最近有關(guān)因特網(wǎng)的發(fā)展,以在線方式提供各種服務的服務提供商的數(shù)量大大的增加了。在過去,術(shù)語“內(nèi)容(content)”通常被用來表示書或文章中的內(nèi)容或表格。但是,近來,術(shù)語“內(nèi)容”總的來說是指通過各種有線/無線通信網(wǎng)絡提供的數(shù)字信息。例如,這樣的內(nèi)容包括通過因特網(wǎng)或PC通信提供的各種節(jié)目或信息,以及記錄在CD-ROM上的電影、音樂和游戲軟件。
盡管在早期階段,用于通過因特網(wǎng)提供內(nèi)容的服務是免費的,但是近來,這樣的服務收取內(nèi)容使用費。隨著內(nèi)容逐漸收費,出現(xiàn)了許多關(guān)于保護和管理作為在線無形財產(chǎn)的數(shù)字內(nèi)容的方法而進行的研究,例如數(shù)字權(quán)益管理(下文中稱為“DRM”)。
DRM也指一種被開發(fā)用來確保收費內(nèi)容通過Web的安全分發(fā)的服務器軟件,更重要的,用來防止其未被授權(quán)的分發(fā)。DRM技術(shù)被開發(fā)為一種用來保護商業(yè)內(nèi)容的在線保密的措施,隨著例如Napster的文件共享程序在用戶中的廣泛使用,所述商業(yè)內(nèi)容的在線保密的數(shù)量大大增加。
盡管在線內(nèi)容受到版權(quán)法的保護,但是由于在實際中很難監(jiān)督未被授權(quán)的網(wǎng)絡使用和找到違犯者,因此需要DRM。DRM技術(shù)不是一種在在線違犯者作出違反之后找出他們的魯莽的策略,相反,DRM技術(shù)試圖作為一種關(guān)注于使網(wǎng)絡內(nèi)容的盜用實質(zhì)上成為不可能的更加可靠的解決方案。許多公司基于各種訪問方法和技術(shù)生產(chǎn)了多種DRM產(chǎn)品。通常,DRM是一種包括諸如服務器軟件和用戶插入程序的所有需要操作的實體的集成組件(integrated package)的形式。
一種傳統(tǒng)的DRM技術(shù)是混淆(obfuscation),用于防止對程序的篡改。
混淆是指代碼修改,其通過在保持與程序代碼相同功能的同時添加麻煩的操作等而使得難以進行逆向工程,所述程序代碼例如尚未被混淆的源代碼、目標代碼或執(zhí)行文件(下文中,稱為“原代碼”)。
例如,假設存在如下代碼i=1;while(i<100){i++;}即使該代碼被改變?yōu)槿缦滤?,在功能上也不存在差異i=1;j=100;while((i<100 &&(((j*j*(j+1)*(j+1)%4)==0)){…i++;j=j*i+3;}也就是說,無論j是偶數(shù)或奇數(shù),j*j*(j+1)*(j+1)總是4的倍數(shù),因此((j*j**(j+1)*(j+1))%4)==0總是為真。
因此,存在一種通過以這樣的方式插入一個條件形成循環(huán)來執(zhí)行混淆的方法。除了這一方法,還有一些其他的混淆方法。
在線可以獲得的、有關(guān)混淆方法的文章的例子包括http//www.cs.arizona.edu/~collberg/Research/Publications/CollbergThomborsonLow97c/index.html,http//www.cs.arizona.edu/~collberg/Research/Publications/CollbergThomborsonLow97d/index.html,或http//www.cs.arizona.edu/~collberg/Research/Publications/CollbergThomborsonLow97a/index.html。
實際上,可以得到一種或多種混淆方法。下文中,在進行描述時不提及特定的混淆方法,假設可以使用各種混淆方法。
圖1a是圖解說明相關(guān)技術(shù)中防止篡改程序的處理的視圖。
圖1a中圖解說明的防止篡改程序的傳統(tǒng)方法通過結(jié)合一種或幾種已知的混淆方法,來混淆尚未被混淆的諸如源代碼或目標代碼的原代碼,并從而創(chuàng)建混淆的代碼。
將混淆的代碼分發(fā)給各個用戶。作為分發(fā)混淆的代碼的方法,主要使用在線分發(fā),并且也可以使用CD、軟盤等。
但是,混淆是一種通過使原代碼變得難以理解來阻擋逆向工程的方法。此外,進行混淆不用完全隱藏原代碼。這樣,用足夠的時間和努力可以發(fā)現(xiàn)原代碼。即,如果一個程序需要頻繁更新,則從混淆的代碼中發(fā)現(xiàn)了原代碼的惡意用戶可以向所有的用戶提供未被授權(quán)的更新文件。為了解決這一問題,已經(jīng)開發(fā)了一種即使從利用一種混淆方法混淆的代碼中發(fā)現(xiàn)了原代碼,也能夠借助于多個不同的混淆方法而不是一個單一的混淆方法來防止將未授權(quán)的升級文件提供至擁有被不同地混淆的程序的用戶的方法。
圖1b示出了一種通過利用相關(guān)技術(shù)中的多種混淆方法來防止篡改程序的方法。
即,利用多種混淆方法來混淆一個原代碼,以創(chuàng)建不同的代碼,并且將所創(chuàng)建的不同的代碼提供給用戶。即使有人發(fā)現(xiàn)了一種被施加到特定代碼的混淆方法,并試圖提供該代碼的未授權(quán)的更新文件,他/她無法向已使用不同的混淆方法進行了混淆的程序的用戶提供未授權(quán)的更新文件。
但是,在上述的環(huán)境下,由于用戶不知道在更新程序時使用了哪種混淆方法來混淆他/她自己的程序,因此這是用戶獲取他/她的程序的新更新的代碼的不便之處。而且,在程序頻繁被補丁文件所更新,例如在線游戲的情況下,所述不便之處變得更嚴重。此外,即使用戶不具有程序的舊版本,他/她可以通過更新請求來獲得新更新的程序。為了解決這一情況,需要分別驗證請求更新的個人是否是合法用戶。因此,這樣的用戶驗證也帶來了不方便。

發(fā)明內(nèi)容
本發(fā)明考慮解決上述的問題。本發(fā)明的一個目的是提供一種能夠利用多種混淆方法基于原代碼來創(chuàng)建多個不同的代碼以便防止未授權(quán)的更新的方法,以及提供一種更新程序而不需要在更新多個混淆代碼時要求額外的驗證處理的方法。
本發(fā)明的另一個目的是提供用于所公開的方法的裝置。
根據(jù)用于實現(xiàn)所述目的的本發(fā)明的一個方面,提供一種用于防止篡改程序的方法,包括通過使用N種不同的混淆方法處理原代碼來創(chuàng)建第一至第N個混淆代碼;生成唯一編號;利用預定的計算方法對所述唯一編號進行計算;以及確定與通過所述計算獲得的結(jié)果值相對應的、并將被提供給用戶的混淆的代碼。可以基于余數(shù)來執(zhí)行選擇N個混淆的代碼中的一個的步驟,所述余數(shù)是通過用N去除唯一編號的部分或全部數(shù)字的總和得到的。
根據(jù)本發(fā)明的另一個方面,提供一種用于更新程序的方法,其中更新基于唯一編號從通過N種不同的混淆方法所創(chuàng)建的第一至第N個混淆代碼中選擇的混淆代碼;并且該方法包括步驟通過利用N種混淆方法處理更新代碼來創(chuàng)建第一至第N個混淆的更新代碼;將第一至第N個混淆的更新代碼與第一至第N個混淆的代碼進行比較,并且根據(jù)通過該比較而獲得的不同代碼來創(chuàng)建第一至第N個補丁代碼;以及從用戶接收唯一編號,利用預定的計算方法對該唯一編號進行計算,并確定與通過該計算所獲得的結(jié)果值相對應的、并且將要被提供給用戶補丁代碼。可以基于余數(shù)來執(zhí)行選擇N個補丁代碼中的一個的步驟,所述余數(shù)是通過用N去除唯一編號的部分或全部數(shù)字的總和得到的。同時,為了防止更新具有非法復制的特定唯一編號的多個程序,如果從用戶接收到唯一編號的次數(shù)超過預定數(shù)量,則不提供將要提供給用戶的、對應于該唯一編號的補丁代碼。
根據(jù)本發(fā)明的另一個方面,提供一種用于防止篡改程序的裝置,包括混淆單元,用于通過使用N種不同的混淆方法處理原代碼來創(chuàng)建N個不同的混淆代碼;代碼表,用于存儲混淆的代碼;唯一編號生成器,生成用于識別分發(fā)的單個程序的唯一編號;以及映射單元,用于接收在唯一編號生成器中生成的唯一編號,利用預定的方法對該唯一編號進行計算,和確定已存儲在所述代碼表中的對應于通過計算所獲得的相關(guān)值并且將被提供給用戶的混淆的代碼。所述映射單元可以基于余數(shù)來選擇存儲在代碼表中的N個混淆代碼中的一個,所述余數(shù)是通過用N去除在唯一編號生成器中生成的唯一編號的部分或全部數(shù)字的總和得到的。
根據(jù)本發(fā)明的又一個方面,提供一種用于更新程序的裝置,其中更新基于唯一編號從通過N種不同的混淆方法所創(chuàng)建的第一至第N個混淆代碼中選擇的混淆代碼;該裝置包括混淆單元,用于通過使用N種混淆方法處理更新代碼來創(chuàng)建第一至第N個混淆的更新代碼;比較單元,用于將第一至第N個混淆的更新代碼與第一至第N個混淆的代碼進行比較,并且根據(jù)通過該比較而獲得的不同代碼來創(chuàng)建第一至第N個補丁代碼;代碼表,用來存儲第一至第N個補丁代碼;以及映射單元,用于接收輸入的唯一編號、利用預定的計算方法對所述唯一編號進行計算、和確定已存儲在所述代碼表中的對應于通過計算所獲得的結(jié)果值并且將被提供給用戶的混淆的代碼。所述映射單元可以基于余數(shù)來選擇存儲在所述代碼表中的N個混淆代碼中的一個,所述余數(shù)是通過用N去除輸入的唯一編號的部分或全部數(shù)字的總和得到的。同時,所述裝置還包括一個計數(shù)器,用于計數(shù)同一唯一編號的輸入次數(shù),從而如果該唯一編號的輸入次數(shù)超過了預定數(shù)量,則不將對應于該唯一編號的補丁代碼提供給用戶。


結(jié)合附圖,從下面對優(yōu)選實施例的描述中,本發(fā)明的上述及其他目的和特征將變得清楚,其中圖1a是圖解防止篡改程序的傳統(tǒng)處理的視圖;圖1b是圖解利用多種混淆方法來防止篡改程序的傳統(tǒng)方法的視圖;圖2是顯示根據(jù)本發(fā)明的一個實施例的系統(tǒng)環(huán)境的視圖;圖3是圖解根據(jù)本發(fā)明另一個實施例的創(chuàng)建關(guān)于混淆的代碼表以防止篡改程序的視圖;圖4是圖解根據(jù)本發(fā)明另一個實施例的防止篡改程序的處理的視圖;圖5是圖解根據(jù)本發(fā)明又一個實施例的為更新程序而創(chuàng)建代碼表的處理的視圖;圖6是圖解根據(jù)本發(fā)明又一個實施例的更新程序的處理的視圖。
具體實施例方式
下文中,將參考附圖詳細描述本發(fā)明的優(yōu)選實施例。
圖2是顯示根據(jù)本發(fā)明的一個實施例的系統(tǒng)環(huán)境的視圖。
用于執(zhí)行防止程序篡改和進行程序的更新提供的DRM服務器100包括混淆單元110,用于混淆原代碼或更新代碼;代碼表120,用于存儲混淆的代碼;唯一編號生成器130,用于生成唯一編號;映射單元140,用于接收所述唯一編號和允許確定存儲在所述代碼表中的多個混淆的代碼中的一個;比較單元160,用于在新更新代碼已經(jīng)被混淆時通過將新更新的代碼與現(xiàn)有的混淆代碼進行比較來生成補丁代碼,并將生成的補丁代碼發(fā)送至代碼表;輸入/輸出單元150,用于允許通過因特網(wǎng)(未示出)或其他媒介向用戶的計算機200傳輸數(shù)據(jù)和從用戶的計算機200接收數(shù)據(jù);計數(shù)器170,用于對從用戶的計算機200向輸入/輸出單元150傳輸唯一編號以請求更新所執(zhí)行的次數(shù)進行計數(shù)。
下面將參考圖3和4首先描述防止篡改程序的方法。
圖3圖解了根據(jù)本發(fā)明另一個實施例來創(chuàng)建關(guān)于混淆的代碼表以防止篡改程序的處理,圖4圖解了通過利用圖3的處理所產(chǎn)生的代碼表來防止篡改程序的方法。
首先,混淆單元110通過利用N種混淆方法處理原代碼來創(chuàng)建N個混淆的代碼(代碼1-n,圖3)。這里,“原代碼”是指程序的源代碼或目標代碼,或尚未混淆的程序的執(zhí)行文件。第一至第n個混淆的代碼存儲在代碼表120中(圖4)。在本發(fā)明中,代碼表是指用于存儲混淆的代碼的空間,或混淆的代碼的集合。
首先參照圖4,唯一編號生成器130為將分發(fā)至用戶的每個程序生成唯一編號,例如序號。映射單元140接收該唯一編號并生成相關(guān)的映射編號,以確定利用預定的計算方法處理過的混淆代碼。例如,假設唯一編號是“123456789012”(即12個數(shù)字)并且對應于混淆的代碼的編號是16,操作“123456789012對16取?!钡玫?,因此對應于“1”的第一混淆的編碼成為將關(guān)于唯一編號“123456789012”而分發(fā)的代碼。由于該第一編碼被確定為將要發(fā)送的代碼,因此將唯一編號“123456789012”和該第一混淆的編碼分發(fā)至用戶。
同時,預定的計算方法不限于上述的示例,并且可以包括使用哈希(hash)函數(shù)的方法。至于將唯一編號和代碼分發(fā)至用戶的方法,可以通過因特網(wǎng)經(jīng)由輸入/輸出單元150將所述唯一編號和方法發(fā)送至用戶的計算機200。可選的,可以將在其中存儲有第一代碼和唯一編號“123456789012”的CD或其他存儲介質(zhì)提供給用戶。
接著,將參考圖5和6描述更新程序的方法。
圖5圖解了根據(jù)本發(fā)明又一個實施例的、為更新程序而創(chuàng)建代碼表的處理,圖6示出了通過利用經(jīng)過圖5的處理而創(chuàng)建的代碼表來更新程序的處理。
混淆單元110通過利用n種混淆方法處理更新代碼來創(chuàng)建N個混淆的更新代碼(圖5中的代碼1a-na)。比較單元160將混淆的更新代碼與在現(xiàn)有代碼表120中存儲的現(xiàn)有的混淆的代碼(代碼1-n)進行比較。比較單元160通過將混淆的更新代碼與現(xiàn)有的混淆代碼進行比較來創(chuàng)建N個補丁代碼(代碼PClb-PCnb)。所創(chuàng)建的第一至第n個補丁代碼存儲在代碼表120中。
為了以在線方式更新安裝在用戶的計算機200上的程序,應當首先將來自用戶的計算機的唯一編號發(fā)送到DRM服務器100。計數(shù)器170(圖6)計數(shù)關(guān)于接收到的唯一編號的更新請求的發(fā)送次數(shù),以預防更新非法復制的程序。映射單元140確定對應于所接收到的唯一編號的補丁代碼,并將該確定的補丁代碼發(fā)送至用戶的計算機。同時,如果計數(shù)超出了預定的次數(shù),例如5次或更多次,則有關(guān)的唯一編號被認為是非法復制的程序的唯一編號。從而,將發(fā)送諸如“請聯(lián)系DRM服務器的管理員”的消息,而不是對應于所述唯一編號的補丁代碼。
本領(lǐng)域的技術(shù)人員應當明白,能夠以其他特定的形式來實現(xiàn)本發(fā)明而不會改變本發(fā)明的技術(shù)要旨和實質(zhì)特征。例如,盡管上面主要描述了N種不同的混淆方法,但本發(fā)明不限于那樣。可選的,可以通過結(jié)合少于N種的混淆方法來產(chǎn)生N種混淆方法。換句話說,如果N是10并且有五種混淆方法,則可以通過將這五種混淆方法中的兩種相結(jié)合來產(chǎn)生十種混淆方法。
同時,盡管上述的本發(fā)明中的各個組件可以用硬件來實現(xiàn),但是本發(fā)明并不限于那樣。用軟件模塊或硬件和軟件模塊的結(jié)合來實現(xiàn)本發(fā)明也在本發(fā)明的技術(shù)要旨之內(nèi)。
根據(jù)上述的本發(fā)明,由于將通過把多種混淆方法應用于一個原代碼而產(chǎn)生的多個混淆的代碼分發(fā)給用戶,即使競爭者或惡意用戶知道應用于分發(fā)給用戶的混淆的代碼中的任何一種的混淆的破解方法,這一破解方法也不能應用到分發(fā)給其他用戶的其他混淆代碼上。
此外,在程序需要頻繁更新的情形中,如果在相關(guān)技術(shù)中分發(fā)了利用多種混淆方法混淆的代碼,則很難知道哪種混淆方法已被應用于用戶當前使用的程序的代碼。因此,增加了更新程序的難度。根據(jù)本發(fā)明,一旦確定了用戶當前使用的程序的唯一編號,則可以確定關(guān)于該程序使用了哪種混淆方法,從而使程序的更新變得容易。
同時,根據(jù)本發(fā)明,即使在已經(jīng)進行了一些未授權(quán)的復制的情形中,也存在可以通過限制具有特定唯一編號的程序的補丁的發(fā)送的次數(shù)來防止更多的未授權(quán)的復制的優(yōu)點。
應當明白,上述實施例無論從哪方面來看都僅僅是示例性的,并且本發(fā)明并不限于那樣。本發(fā)明的范圍由所附的權(quán)利要求而不是由本發(fā)明的詳細描述來限定。應當認為根據(jù)本發(fā)明及其等價物所做的所有的改變或修改都在本發(fā)明的范圍之內(nèi)。
權(quán)利要求
1.一種防止程序篡改的方法,該方法包括(a)通過使用N種各不相同的混淆方法處理原代碼來創(chuàng)建第一至第N個混淆代碼;(b)生成唯一編號;(c)利用預定的計算方法對所述唯一編號進行計算;以及確定與通過所述計算獲得的結(jié)果值相對應的混淆代碼。
2.如權(quán)利要求1所述的方法,其中步驟(c)包括基于余數(shù)來選擇N個混淆代碼中的一個,所述余數(shù)是通過用N去除唯一編號的部分或全部數(shù)字的總和得到的。
3.一種更新程序的方法,其中對混淆代碼進行更新,該混淆代碼是基于具有一個或多個數(shù)字的唯一編號從通過N種不同的混淆方法所創(chuàng)建的第一至第N個混淆代碼中選擇的;并且該方法包括(a)通過利用N種混淆方法處理更新代碼來創(chuàng)建第一至第N個混淆的更新代碼;(b)將在步驟(a)中創(chuàng)建的第一至第N個混淆的更新代碼與第一至第N個混淆代碼進行比較,并且根據(jù)通過該比較而獲得的不同代碼來創(chuàng)建第一至第N個補丁代碼;以及(c)從用戶接收唯一編號,利用預定的計算方法對該唯一編號進行計算,并確定與通過該計算所獲得的結(jié)果值相對應的補丁代碼。
4.如權(quán)利要求3所述的方法,其中步驟(c)包括基于余數(shù)來選擇N個補丁代碼中的一個,所述余數(shù)是通過用N去除唯一編號的部分或全部數(shù)字的總和得到的。
5.如權(quán)利要求3所述的方法,其中如果從用戶接收到唯一編號的次數(shù)超過預定值,則不將對應于該唯一編號的補丁代碼提供給用戶。
6.一種用于防止篡改程序的裝置,包括混淆單元,操作用來通過使用N種不同的混淆方法處理原代碼來創(chuàng)建N個不同的混淆代碼;代碼表,操作用來存儲混淆代碼;唯一編號生成器,操作用來生成用于識別分發(fā)的單個程序的、具有一個或多個數(shù)字的唯一編號;以及映射單元,操作用來接收在所述唯一編號生成器中生成的唯一編號,利用預定的方法對該唯一編號進行計算,和確定已存儲在所述代碼表中并對應于通過計算所獲得的相關(guān)值的混淆代碼。
7.如權(quán)利要求6所述的裝置,其中所述映射單元基于余數(shù)來選擇存儲在所述代碼表中的N個混淆代碼中的一個,所述余數(shù)是通過用N去除在唯一編號生成器中生成的唯一編號的部分或全部數(shù)字的總和得到的。
8.一種用于更新程序的裝置,其中對混淆代碼進行更新,該混淆代碼是基于具有一個或多個數(shù)字的唯一編號從通過N種不同的混淆方法所創(chuàng)建的第一至第N個混淆代碼中選擇的,該裝置包括混淆單元,操作用來通過使用N種混淆方法處理更新代碼來創(chuàng)建第一至第N個混淆的更新代碼;比較單元,操作用來將第一至第N個混淆的更新代碼與第一至第N個混淆代碼進行比較,并且根據(jù)通過該比較而獲得的不同代碼來創(chuàng)建第一至第N個補丁代碼;代碼表,用來存儲第一至第N個補丁代碼;以及映射單元,操作用來接收所述唯一編號,利用預定的計算方法對所述唯一編號進行計算,和確定已存儲在所述代碼表中并對應于通過計算所獲得的結(jié)果值的補丁代碼。
9.如權(quán)利要求8所述的裝置,其中所述映射單元還操作用來基于余數(shù)來選擇存儲在所述代碼表中的N個混淆代碼中的一個,所述余數(shù)是通過用N去除唯一編號的部分或全部數(shù)字的總和得到的。
10.如權(quán)利要求8所述的裝置,還包括計數(shù)器,操作用來計數(shù)同一唯一編號使用的次數(shù),從而如果該唯一編號的使用次數(shù)超過了預定數(shù)量,則不提供所述補丁代碼。
全文摘要
一種防止程序篡改的方法、一種更新程序的方法、及它們的裝置。防止篡改程序的方法通過使用多種混淆方法處理原代碼來創(chuàng)建多個混淆代碼、生成程序唯一編號、基于所述唯一編號來確定所創(chuàng)建的混淆的代碼中的一種、并將所選擇的代碼提供給用戶。更新程序的方法通過利用多種混淆方法處理更新代碼來創(chuàng)建多個混淆的代碼,將所創(chuàng)建的混淆的代碼與現(xiàn)有的混淆的代碼進行比較,并基于通過比較而得到的差異來創(chuàng)建多個補丁代碼?;谟捎脩糨斎氲奈ㄒ痪幪杹磉x擇補丁代碼。
文檔編號G06F21/06GK1574727SQ200410038480
公開日2005年2月2日 申請日期2004年4月28日 優(yōu)先權(quán)日2003年5月20日
發(fā)明者李栽興 申請人:三星電子株式會社
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點贊!
1