專利名稱:一種軟件保護(hù)的方法及系統(tǒng)的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及軟件保護(hù)領(lǐng)域,特別涉及一種軟件保護(hù)的方法和系統(tǒng)。
背景技術(shù):
軟件加密是軟件安全保護(hù)和軟件版權(quán)保護(hù)的主要手段。一種常用的軟件保護(hù)方法就是給程序加一個普通的“殼”,所謂的“殼”,就是指軟件加密程序。當(dāng)一個被加“殼” 好的應(yīng)用程序通過標(biāo)準(zhǔn)的訪問方法在Windows系統(tǒng)上運(yùn)行時(shí),系統(tǒng)將自動為該程序分配一段內(nèi)存空間,其中一部分空間是用來存放被加載的Windows庫函數(shù),該應(yīng)用程序在運(yùn)行過程中,會與Windows系統(tǒng)發(fā)生一系列的交互操作,此時(shí)Windows系統(tǒng)的功能消息對話框 MessageBoxO將向電腦終端彈出一些簡單的提示信息,比如(是、否、取消、確認(rèn)、忽略、 跳過、警告、報(bào)錯等)。如果想破解這個被加密好的應(yīng)用程序,程序破解員根據(jù)所彈出的 MessageBoxO,便可查找閱讀DOS中斷21和中斷10等相關(guān)命令,以及了解計(jì)算機(jī)軟件運(yùn)行機(jī)制,便可迅速破解已加密好的應(yīng)用程序,從而導(dǎo)致經(jīng)濟(jì)利益的損失。
發(fā)明內(nèi)容
有鑒于此,為了更好地防止軟件被破解,同時(shí)解決由于軟件被破解而帶來的利益損失,本發(fā)明的實(shí)例提供了一種軟件保護(hù)的方法及系統(tǒng),其方法包括自定義的函數(shù)加載方式;一個虛擬機(jī)制的工作平臺;不能夠被已有的二進(jìn)制代碼調(diào)試器解析的消息對話框。本發(fā)明還提供一種軟件保護(hù)的系統(tǒng),包括加載模塊、加/解密模塊、人機(jī)交互模塊、解析模塊; 其中加載模塊是把Windows庫函數(shù)加載到虛擬機(jī)中;人機(jī)交互模塊是系統(tǒng)與電腦終端交互響應(yīng)的平臺;加/解密模塊是用來加/解密虛擬機(jī)中的Windows庫函數(shù)。本發(fā)明解決了現(xiàn)有加密技術(shù)中容易被跟蹤,被調(diào)試破解的問題,從而最大程度地提高了軟件的安全性。根據(jù)本發(fā)明的一個方面,一種軟件保護(hù)的方法,其特征在于,該方法包括A、自定義的函數(shù)加載方式;B、虛擬機(jī)的工作機(jī)制;C、不能被已有的二進(jìn)制代碼調(diào)試器解析的消息對話框。D、改變原函數(shù)的訪問入口根據(jù)本發(fā)明的一個方面,一種軟件保護(hù)的方法,其特征還在于,在步驟A中,該方法通過自定義的函數(shù)加載方式加載Windows庫函數(shù)。根據(jù)本發(fā)明的一個方面,一種軟件保護(hù)的方法,其特征還在于,所采用的函數(shù)加載方式并非Windows系統(tǒng)所采用的標(biāo)準(zhǔn)默認(rèn)的庫函數(shù)加載方式。根據(jù)本發(fā)明的一個方面,一種軟件保護(hù)的方法,其特征還在于,在步驟B中,該方法提供了一個虛擬機(jī)工作機(jī)制。根據(jù)本發(fā)明的一個方面,一種軟件保護(hù)的方法,其特征還在于,虛擬機(jī)工作機(jī)制指通過軟件模擬的具有完整硬件系統(tǒng)功能的,一套完整的計(jì)算機(jī)系統(tǒng)。根據(jù)本發(fā)明的一個方面,一種軟件保護(hù)的方法,其特征還在于,在步驟C中,該方法含有一個不能被已有的二進(jìn)制代碼調(diào)試器解析的消息對話框。根據(jù)本發(fā)明的一個方面,一種軟件保護(hù)的方法,其特征還在于,程序破譯者無法通過攔截系統(tǒng)響應(yīng)的消息對話框來破解受保護(hù)的程序。根據(jù)本發(fā)明的一個方面,一種軟件保護(hù)的方法,其特征還在于,在步驟D中,該軟件保護(hù)方法修改了原函數(shù)的訪問入口。根據(jù)本發(fā)明的一個方面,一種軟件保護(hù)的方法,其特征還在于,在原函數(shù)被系統(tǒng)訪問之前,需要先訪問一段被處理的程序代碼。根據(jù)本發(fā)明的一個方面,一種軟件保護(hù)的系統(tǒng),其特征還在于,所述系統(tǒng)包括加載模塊把Windows庫函數(shù)加載到虛擬機(jī)中;人機(jī)交互模塊是系統(tǒng)與電腦終端交互響應(yīng)的平臺;加/解密模塊用來加/解密虛擬機(jī)中的Windows庫函數(shù)。根據(jù)本發(fā)明的一個方面,一種軟件保護(hù)的系統(tǒng),其特征還在于,通過自定義的加載方式,把Windows庫函數(shù)加載中虛擬機(jī)中。根據(jù)本發(fā)明的一個方面,一種軟件保護(hù)的系統(tǒng),其特征還在于,人機(jī)交互模塊是系統(tǒng)與電腦終端響應(yīng)的消息對話框;進(jìn)一步地,該消息對話框內(nèi)容不能被已有的二進(jìn)制代碼調(diào)試器解析。根據(jù)本發(fā)明的一個方面,一種軟件保護(hù)的系統(tǒng),其特征還在于,加/解密模塊是用來加解/密Windows系統(tǒng)的庫函數(shù);具體為當(dāng)Windows庫函數(shù)被加載到虛擬機(jī)中后,此模塊對其自動加密;當(dāng)當(dāng)前程序自動加載Windows庫函數(shù)時(shí),此模塊對其自動解密。
圖1為應(yīng)用程序A在Windows操作系統(tǒng)上運(yùn)行的簡化流程圖;圖2為本發(fā)明優(yōu)選實(shí)施案例的工作流程圖。
具體實(shí)施例方式為使本發(fā)明的目的、技術(shù)方案及優(yōu)點(diǎn)更加清楚明白,以下通過舉實(shí)施例,對本發(fā)明進(jìn)一步詳細(xì)說明。圖1為應(yīng)用程序A在Windows操作系統(tǒng)上運(yùn)行的簡化流程圖。如圖1所示,某應(yīng)用程序A要在Windows系統(tǒng)上運(yùn)行,首先Windows系統(tǒng)自動加載運(yùn)行此應(yīng)用程序所需要的庫函數(shù),當(dāng)庫函數(shù)加載成功后,應(yīng)用程序順利運(yùn)行。圖2為本發(fā)明優(yōu)選實(shí)施案例的工作流程圖。如圖2所示,案例背景陳述在 Windows系統(tǒng)平臺上運(yùn)行某應(yīng)有程序A,需要加載Windows庫函數(shù)a。在步驟201中,根據(jù)本發(fā)明的軟件加密技術(shù),對應(yīng)用程序進(jìn)行加密處理,加密處理后的應(yīng)用程序?yàn)锳2 ;由此可知,經(jīng)過加密技術(shù)處理后的A2由兩部分組成,一部分是加密程序Al,一部分為原應(yīng)用程序A。在步驟202中,被加密處理后的程序A2在Windows操作系統(tǒng)上運(yùn)行,此時(shí),需要先運(yùn)行Al,也即一段加密程序;Al在Windows操作系統(tǒng)上運(yùn)行時(shí),同樣也需要加載相對應(yīng)的 Windows庫。進(jìn)一步地,當(dāng)系統(tǒng)為加密程序Al加載庫函數(shù)的時(shí),應(yīng)用程序A在Windows操作系統(tǒng)上運(yùn)行所需加載的庫函數(shù)a同時(shí)被加載至虛擬機(jī)中。在步驟203中,虛擬機(jī)的加/解密模塊自動加密原函數(shù)A運(yùn)行時(shí)所需Windows庫函數(shù)a為al。通過該步驟可知,本發(fā)明的特點(diǎn)之一就是通過自定義的加載方式加載Windows 庫,而且在虛擬機(jī)中,這些被加載的庫函數(shù)還被加密處理。在步驟204中,當(dāng)加密程序Al運(yùn)行完之后,此時(shí)開始運(yùn)行原應(yīng)用程序A ;在虛擬機(jī)平臺上運(yùn)行原應(yīng)用程序A時(shí),同樣需要加載Windows庫函數(shù)a ;由步驟203得知,原程序A運(yùn)行時(shí)所需的Windows庫函數(shù)a已被加密模塊加密成al。在步驟205中,解密模塊自動解密Windows庫函數(shù)al為a。在步驟206中,原程序A執(zhí)行圖1所述的工作流程圖。在這里需要特別強(qiáng)調(diào)的是,在以上整個工作流程中,人機(jī)交互模塊始終響應(yīng)著系統(tǒng)與電腦終端的交互信息,進(jìn)一步地此消息對話框的內(nèi)容不能被已有的二進(jìn)制代碼調(diào)試器解析。以上所述,僅為本發(fā)明的較佳的具體實(shí)施方式
,單本發(fā)明的保護(hù)范圍并不局限于此,任何熟悉本技術(shù)領(lǐng)域的技術(shù)人員在本發(fā)明揭露的技術(shù)范圍內(nèi),可輕易想到的變化或替換,都應(yīng)該涵蓋在本發(fā)明的保護(hù)范圍之內(nèi)。因此,本發(fā)明的保護(hù)范圍應(yīng)該以權(quán)利要求書的保護(hù)范圍為準(zhǔn)。
權(quán)利要求
1.一種軟件保護(hù)的方法,其特征在于,該方法包括A、自定義的函數(shù)加載方式;B、虛擬機(jī)的工作機(jī)制;C、不能被已有的二進(jìn)制代碼調(diào)試器解析的消息對話框;D、改變原函數(shù)的訪問入口;
2.根據(jù)權(quán)利要求1所述的一種軟件保護(hù)的方法,其特征在于,在步驟A中,該方法通過自定義的函數(shù)加載方式加載Windows庫函數(shù)。
3.根據(jù)權(quán)利要求2所述的一種軟件保護(hù)的方法,其特征在于,所采用的函數(shù)加載方式并非Windows系統(tǒng)所采用的標(biāo)準(zhǔn)默認(rèn)的庫函數(shù)加載方式。
4.根據(jù)權(quán)利要求1所述的一種軟件保護(hù)的方法,其特征在于,在步驟B中,該方法提供了一個虛擬機(jī)工作機(jī)制。
5.根據(jù)權(quán)利要求4所述的一種軟件保護(hù)的方法,其特征在于,虛擬機(jī)工作機(jī)制是指通過軟件模擬的具有完整硬件系統(tǒng)功能的,一套完整的計(jì)算機(jī)系統(tǒng)。
6.根據(jù)權(quán)利要求1所述的一種軟件保護(hù)的方法,其特征在于,在步驟C中,該方法含有一個不能被已有的二進(jìn)制代碼調(diào)試器解析的消息對話框。
7.根據(jù)權(quán)利要求6所述的一種軟件保護(hù)的方法,其特征在于,程序破譯者無法通過攔截系統(tǒng)響應(yīng)的消息對話框來破解受保護(hù)的程序。
8.根據(jù)權(quán)利要求1所述的一種軟件保護(hù)的方法,其特征在于,該軟件保護(hù)方法修改了原函數(shù)的訪問入口。
9.根據(jù)權(quán)利要求8所述的一種軟件保護(hù)的方法,其特征在于,在原函數(shù)被系統(tǒng)訪問之前,需要先訪問一段被處理的函數(shù)。
10.一種軟件保護(hù)的系統(tǒng),其特征在于,所述系統(tǒng)包括加載模塊把Windows庫函數(shù)加載到虛擬機(jī)中;人機(jī)交互模塊是系統(tǒng)與電腦終端交互響應(yīng)的平臺;加/解密模塊用來加/解密被加載到虛擬機(jī)中的Windows庫函數(shù)。
11.根據(jù)權(quán)利要求10所述的一種軟件保護(hù)系統(tǒng),其特征在于,通過自定義的加載方式, 把Windows庫函數(shù)加載中虛擬機(jī)中。
12.根據(jù)權(quán)利要求10所述的一種軟件保護(hù)系統(tǒng),其特征在于,人機(jī)交互模塊是系統(tǒng)與電腦終端響應(yīng)的消息對話框;進(jìn)一步地,該消息對話框內(nèi)容不能被已有的二進(jìn)制代碼調(diào)試器解析。
13.根據(jù)權(quán)利要求10所述的一種軟件保護(hù)系統(tǒng),其特征在于,加/解密模塊是用來加解/密Windows系統(tǒng)的庫函數(shù);具體為當(dāng)Windows庫函數(shù)被加載到虛擬機(jī)中后,此模塊對其自動加密;當(dāng)當(dāng)前程序自動加載Windows庫函數(shù)時(shí),此模塊對其自動解密。
全文摘要
本發(fā)明的實(shí)施例涉及軟件領(lǐng)域,尤其涉及軟件保護(hù)領(lǐng)域。為了解決現(xiàn)有加密技術(shù)容易被破解的問題,本發(fā)明的實(shí)施例提供了一種軟件保護(hù)的方法及系統(tǒng),其方法包括自定義的函數(shù)加載方式;一個虛擬機(jī)制的工作平臺;不能夠被已有的二進(jìn)制代碼調(diào)試器解析的消息對話框。本發(fā)明還提供一種軟件保護(hù)的系統(tǒng),包括加載模塊、加/解密模塊、人機(jī)交互模塊、解析模塊;其中加載模塊是把Windows庫函數(shù)加載到虛擬機(jī)中;人機(jī)交互模塊是系統(tǒng)與電腦終端交互響應(yīng)的平臺;加/解密模塊是用來加/解密被加載到虛擬機(jī)中的Windows庫函數(shù)。本發(fā)明解決了現(xiàn)有加密技術(shù)中容易被跟蹤,被調(diào)試破解的問題,從而最大程度地提高了軟件的安全性。
文檔編號G06F21/22GK102486820SQ20101057201
公開日2012年6月6日 申請日期2010年12月3日 優(yōu)先權(quán)日2010年12月3日
發(fā)明者鄒芬 申請人:鄒芬