專(zhuān)利名稱:中斷程序軟件保護(hù)的方法
技術(shù)領(lǐng)域:
本發(fā)明涉及一種軟件保護(hù)的方法,特別涉及一種中斷程序軟件保護(hù)的方法。
背景技術(shù):
隨著信息處理能力的需求,功能強(qiáng)大且處理程序簡(jiǎn)易的應(yīng)用程序軟件逐漸在發(fā)展中,而且軟件的功能及版本發(fā)展速度日新月異,當(dāng)軟件研發(fā)者努力將其辛苦開(kāi)發(fā)出來(lái)的軟件販?zhǔn)劢o消費(fèi)者使用的同時(shí),卻出現(xiàn)貪圖眼前利益的盜版業(yè)者,利用破解軟件保護(hù)技術(shù)的方式,將軟件研發(fā)者辛苦開(kāi)發(fā)的軟件程序,加以復(fù)制并從中謀取暴利,在知識(shí)產(chǎn)權(quán)逐漸受到重視的今天,軟件保護(hù)技術(shù)儼然成為非常受重視的一項(xiàng)課題。
一般軟件保護(hù)技術(shù)大部分架構(gòu)于操作系統(tǒng)(Operating System;OS)環(huán)境下,但這些軟件保護(hù)技術(shù)會(huì)面臨兩個(gè)問(wèn)題,程序破解者(Cracker)有能力反編譯出被破解軟件及有能力動(dòng)態(tài)跟蹤破解軟件,若這兩個(gè)問(wèn)題同時(shí)都存在時(shí),那么實(shí)現(xiàn)軟件保護(hù)幾乎不可能,而軟件保護(hù)研發(fā)人員的工作正是朝解決這樣的問(wèn)題去研究,為此出現(xiàn)了一些典型的保護(hù)方法(比如,亂序跳轉(zhuǎn),單向加密等),其中單向加密利用無(wú)法從結(jié)果推回到原先的值的原理來(lái)解決反編譯的問(wèn)題,但只要在操作系統(tǒng)OS可見(jiàn)范圍內(nèi),都無(wú)法確保這兩個(gè)問(wèn)題不會(huì)同時(shí)存在,也就是公知軟件保護(hù)方式所面臨的一個(gè)瓶頸。
發(fā)明內(nèi)容
鑒于以上的問(wèn)題,本發(fā)明的主要目的在于提供一種中斷程序軟件保護(hù)的方法,通過(guò)利用應(yīng)用程序安裝作業(yè)程序中,觸發(fā)一中斷處理程序,檢查基本輸入輸出系統(tǒng)版本是否兼容,以決定是否繼續(xù)執(zhí)行應(yīng)用程序作業(yè)程序,主要是在作業(yè)環(huán)境不可見(jiàn)的范圍中,作為軟件的保護(hù)技術(shù)。
因此,為達(dá)到上述目的,本發(fā)明所揭示的中斷程序軟件保護(hù)的方法,包括有依據(jù)一驅(qū)動(dòng)程序執(zhí)行該應(yīng)用程序作業(yè)程序;執(zhí)行一系統(tǒng)指令并取得一代碼地址;觸發(fā)該中斷處理程序;依據(jù)該中斷處理程序檢查基本輸入輸出系統(tǒng)版本是否兼容;確認(rèn)該基本輸入輸出系統(tǒng)版本兼容時(shí),產(chǎn)生一執(zhí)行代碼到該代碼地址;該中斷程序作業(yè)完成;以及該應(yīng)用程序依據(jù)該執(zhí)行代碼繼續(xù)作業(yè)。
其中確認(rèn)該基本輸入輸出系統(tǒng)版本為不兼容時(shí),產(chǎn)生一執(zhí)行終止代碼到該代碼地址;該中斷程序作業(yè)完成;以及該應(yīng)用程序依據(jù)該執(zhí)行終止代碼終止作業(yè)。
有關(guān)本發(fā)明的特征與運(yùn)用,配合附圖作最佳實(shí)施例詳細(xì)說(shuō)明如下。
圖1A及圖1B是本發(fā)明的方塊圖;及圖2是本發(fā)明的流程圖。
其中,附圖標(biāo)記說(shuō)明如下10 應(yīng)用程序20 驅(qū)動(dòng)程序30 操作系統(tǒng)40 基本輸入輸出系統(tǒng)50 代碼實(shí)體地址60 預(yù)定地址70 代碼步驟200依據(jù)一驅(qū)動(dòng)程序執(zhí)行應(yīng)用程序作業(yè)程序步驟205執(zhí)行一系統(tǒng)指令并取得一代碼地址步驟210觸發(fā)一中斷程序步驟215檢查基本輸入輸出系統(tǒng)版本是否兼容步驟220產(chǎn)生一執(zhí)行代碼到代碼地址步驟225應(yīng)用程序依據(jù)執(zhí)行代碼繼續(xù)應(yīng)用程序作業(yè)程序步驟230產(chǎn)生一執(zhí)行終止代碼到代碼地址步驟235應(yīng)用程序依據(jù)執(zhí)行終止代碼終止應(yīng)用程序作業(yè)程序
具體實(shí)施例方式
請(qǐng)參照?qǐng)D1A及圖1B,是本發(fā)明的方塊圖,包括有應(yīng)用程序10、驅(qū)動(dòng)程序20、操作系統(tǒng)30、基本輸入輸出系統(tǒng)40、代碼實(shí)體地址50、預(yù)定地址60及代碼70,在應(yīng)用程序10中預(yù)留一個(gè)代碼70,當(dāng)應(yīng)用程序10在未通過(guò)基本輸入輸出系統(tǒng)40認(rèn)證的情況下,將無(wú)法正常執(zhí)行作業(yè)。
首先請(qǐng)參照?qǐng)D1A,在應(yīng)用程序10安裝過(guò)程中執(zhí)行一系統(tǒng)指令(SystemCall),并傳入一參數(shù),該傳入的參數(shù)表示代碼70的虛擬地址,而這個(gè)虛擬地址可經(jīng)由一加密處理過(guò)程來(lái)保護(hù),以增加其保密性。
在得到應(yīng)用程序10傳入的參數(shù)后,驅(qū)動(dòng)程序20將代碼70的虛擬地址轉(zhuǎn)換為代碼實(shí)體地址50。
驅(qū)動(dòng)程序20將代碼實(shí)體地址50儲(chǔ)存到基本輸入輸出系統(tǒng)40預(yù)設(shè)的系統(tǒng)內(nèi)存的預(yù)定地址60,并于基本輸入輸出系統(tǒng)40激活后,把控制權(quán)交還給操作系統(tǒng)30時(shí),將儲(chǔ)存到預(yù)定地址60的代碼實(shí)體地址50的系統(tǒng)內(nèi)存部分隱藏,其中這段隱藏的系統(tǒng)內(nèi)存只有與基本輸入輸出系統(tǒng)40搭配的驅(qū)動(dòng)程序20可以使用,接下來(lái)觸發(fā)一系統(tǒng)管理中斷(System management Interrupt;SMI)。
請(qǐng)參照?qǐng)D1B,中斷處理程序會(huì)到預(yù)定地址60取得代碼的實(shí)體地址50,并將代碼70寫(xiě)入在代碼實(shí)體地址50上,中斷處理程序完成回到正常作業(yè)程序,其中代碼70由檢查基本輸入輸出系統(tǒng)40版本是否兼容,而決定代碼70的內(nèi)容。
應(yīng)用程序30繼續(xù)執(zhí)行,當(dāng)執(zhí)行到代碼70時(shí),代碼70將決定應(yīng)用程序30是否繼續(xù)正常執(zhí)行,若檢查基本輸入輸出系統(tǒng)版本40為兼容時(shí),則代碼70為繼續(xù)執(zhí)行應(yīng)用程序作業(yè)程序;若檢查基本輸入輸出系統(tǒng)40版本為不兼容時(shí),則代碼70為終止應(yīng)用程序30作業(yè)程序。
請(qǐng)參照?qǐng)D2,是本發(fā)明的步驟流程圖,包括有依據(jù)一驅(qū)動(dòng)程序執(zhí)行該應(yīng)用程序作業(yè)程序(步驟200);依照作業(yè)程序執(zhí)行一系統(tǒng)指令,并取得一代碼地址(步驟205),其中代碼地址可經(jīng)由一虛擬地址轉(zhuǎn)換為一實(shí)體地址的步驟,以增強(qiáng)其保密性;該代碼地址為一系統(tǒng)內(nèi)存地址。。
驅(qū)動(dòng)程序觸發(fā)中斷處理程序作業(yè)(步驟210);依據(jù)中斷處理程序檢查基本輸入輸出系統(tǒng)版本是否兼容(步驟215);確認(rèn)該基本輸入輸出系統(tǒng)版本為兼容時(shí),產(chǎn)生一執(zhí)行代碼并寫(xiě)入到系統(tǒng)指令所取得的代碼地址上(步驟220);中斷程序作業(yè)完成及應(yīng)用程序依據(jù)產(chǎn)生的執(zhí)行代碼繼續(xù)作業(yè)(步驟225)。
確認(rèn)該基本輸入輸出系統(tǒng)版本不兼容時(shí),產(chǎn)生一執(zhí)行終止代碼到代碼地址(步驟230);中斷程序作業(yè)完成及應(yīng)用程序依據(jù)產(chǎn)生執(zhí)行終止代碼終止作業(yè)(步驟235)。
本發(fā)明所揭示的利用中斷程序作軟件保護(hù)方式,是利用中斷程序判斷應(yīng)用程序是否繼續(xù)執(zhí)行作業(yè),因?yàn)橹袛喑绦驒z查基本輸入輸出系統(tǒng)的版本信息是否正確,若正確則寫(xiě)入一執(zhí)行代碼以允許應(yīng)用程序繼續(xù)執(zhí)行作業(yè)程序,這種方式是利用操作系統(tǒng)不可見(jiàn)范圍來(lái)進(jìn)行軟件保護(hù),也就是系統(tǒng)管理中斷,簡(jiǎn)單地說(shuō)就是利用檢查硬件信息,來(lái)判斷軟件是否被重復(fù)安裝使用在不同硬件上,與公知的避免程序破解者利用擷取安裝程序歷程紀(jì)錄文件信息,破解應(yīng)用程序的軟件保護(hù)技術(shù)不同,且避免公知軟件保護(hù)技術(shù)所會(huì)面臨背景技術(shù)所提到的兩個(gè)問(wèn)題,提高軟件保護(hù)作用。
雖然本發(fā)明以前述的較佳實(shí)施例揭示如上,然而并非用以限定本發(fā)明,任何本領(lǐng)域技術(shù)人員,在不脫離本發(fā)明的精神和范圍內(nèi),當(dāng)可作些許的更動(dòng)與潤(rùn)飾,因此本發(fā)明的專(zhuān)利保護(hù)范圍須視本說(shuō)明書(shū)所附的權(quán)利要求的界定為準(zhǔn)。
權(quán)利要求
1.一種中斷程序軟件保護(hù)的方法,利用一應(yīng)用程序安裝過(guò)程中,產(chǎn)生一基本輸入輸出系統(tǒng)的中斷處理程序,包括有依據(jù)一驅(qū)動(dòng)程序執(zhí)行該應(yīng)用程序作業(yè)程序;執(zhí)行一系統(tǒng)指令并取得一代碼地址;觸發(fā)該中斷處理程序;依據(jù)該中斷處理程序檢查基本輸入輸出系統(tǒng)版本是否兼容;確認(rèn)該基本輸入輸出系統(tǒng)版本兼容時(shí),產(chǎn)生一執(zhí)行代碼到該代碼地址;該中斷程序作業(yè)完成;以及該應(yīng)用程序依據(jù)該執(zhí)行代碼繼續(xù)作業(yè)。
2.如權(quán)利要求1所述中斷程序軟件保護(hù)的方法,其中,該中斷處理程序?yàn)橐幌到y(tǒng)管理中斷。
3.如權(quán)利要求1所述中斷程序軟件保護(hù)的方法,其中,確認(rèn)基本輸入輸出系統(tǒng)版本不兼容時(shí),產(chǎn)生一執(zhí)行終止代碼到該代碼地址。
4.如權(quán)利要求1所述中斷程序軟件保護(hù)的方法,其中,該應(yīng)用程序依據(jù)該執(zhí)行終止代碼終止作業(yè)。
5.如權(quán)利要求1所述中斷程序軟件保護(hù)的方法,其中,該代碼地址還經(jīng)由一虛擬地址轉(zhuǎn)換一實(shí)體地址的步驟。
6.如權(quán)利要求1所述中斷程序軟件保護(hù)的方法,其中,該代碼地址為一系統(tǒng)內(nèi)存地址。
全文摘要
一種中斷程序軟件保護(hù)的方法,利用應(yīng)用程序中,預(yù)留一執(zhí)行代碼,于應(yīng)用程序安裝過(guò)程中時(shí),觸發(fā)一中斷程序作業(yè),并檢查基本輸入輸出系統(tǒng)(BasicInput Output System;BIOS)版本是否兼容,以決定應(yīng)用程序是否繼續(xù)正常執(zhí)行作業(yè)程序。該方法包括依據(jù)驅(qū)動(dòng)程序執(zhí)行應(yīng)用程序作業(yè)程序;執(zhí)行系統(tǒng)指令并取得代碼地址;觸發(fā)中斷處理程序;依據(jù)中斷處理程序檢查基本輸入輸出系統(tǒng)版本是否兼容;確認(rèn)基本輸入輸出系統(tǒng)版本兼容時(shí),產(chǎn)生執(zhí)行代碼到代碼地址;中斷程序作業(yè)完成;以及應(yīng)用程序依據(jù)執(zhí)行代碼繼續(xù)作業(yè)。該方法避免軟件保護(hù)技術(shù)面臨的程序破解者反編譯出被破解軟件和動(dòng)態(tài)跟蹤破解軟件的問(wèn)題,從而提高軟件保護(hù)作用。
文檔編號(hào)G06F1/00GK1641513SQ200410001578
公開(kāi)日2005年7月20日 申請(qǐng)日期2004年1月13日 優(yōu)先權(quán)日2004年1月13日
發(fā)明者邱全成, 白昕 申請(qǐng)人:英業(yè)達(dá)股份有限公司