專(zhuān)利名稱(chēng):對(duì)運(yùn)行窗口操作系統(tǒng)的計(jì)算機(jī)的驗(yàn)證方法
技術(shù)領(lǐng)域:
本發(fā)明是有關(guān)于一種計(jì)算機(jī)的驗(yàn)證方法,特別有關(guān)于一種對(duì)運(yùn)行窗口操作系統(tǒng) 的計(jì)算機(jī)的驗(yàn)證方法。
背景技術(shù):
目前微軟公司對(duì)于旗下所推出的各式窗口型操作系統(tǒng)(例如為WindowsXP、 Windows Vista)均設(shè)置有一產(chǎn)品啟動(dòng)功能(ProductActivation)。若使用者是自行購(gòu)買(mǎi)及安
裝微軟公司的窗口型操作系統(tǒng),則于操作系統(tǒng)安裝完成后,使用者透過(guò)因特網(wǎng)來(lái)對(duì)安裝 完成的操作系統(tǒng)進(jìn)行一產(chǎn)品啟動(dòng)程序,以借此來(lái)啟動(dòng)該操作系統(tǒng)于計(jì)算機(jī)平臺(tái)上正常運(yùn) 作。若使用者未進(jìn)行此產(chǎn)品啟動(dòng)程序、或同一份的操作系統(tǒng)已預(yù)先安裝至另一臺(tái)計(jì)算機(jī) 上,則該操作系統(tǒng)即被禁能而無(wú)法正常運(yùn)作。目前計(jì)算機(jī)制造廠(chǎng)商于制造計(jì)算機(jī)時(shí),通常是將操作系統(tǒng)預(yù)先安裝至各個(gè)計(jì)算 機(jī),并采用微軟公司所發(fā)展的軟件授權(quán)保護(hù)程序(Software licensing andProtection, SLP)
來(lái)讓此計(jì)算機(jī)于實(shí)際應(yīng)用時(shí),可不必由使用者透過(guò)因特網(wǎng)來(lái)進(jìn)行產(chǎn)品啟動(dòng)程序。請(qǐng)參 考圖1所示,其為現(xiàn)有的儲(chǔ)存軟件授權(quán)保護(hù)程序的示意圖。此軟件授權(quán)保護(hù)程序是將 各個(gè)計(jì)算機(jī)平臺(tái)所專(zhuān)屬的一組硬件組態(tài)數(shù)據(jù)預(yù)先轉(zhuǎn)換一組軟件授權(quán)保護(hù)檢查碼,并將此 軟件授權(quán)保護(hù)檢查碼預(yù)先以?xún)?nèi)嵌方式燒錄于基本輸入/輸出系統(tǒng)IlOCBasic Input/Output System, BIOS)中的一特定的儲(chǔ)存區(qū),令窗口操作系統(tǒng)120于開(kāi)機(jī)之后可從此一特定儲(chǔ)存 區(qū)中讀取到所需的軟件授權(quán)保護(hù)檢查碼111,并將此軟件授權(quán)保護(hù)檢查碼111與窗口操作 系統(tǒng)120的認(rèn)證碼121作一比對(duì)。若比對(duì)結(jié)果為符合,則窗口操作系統(tǒng)120即可被啟動(dòng) 來(lái)正常運(yùn)作。為能使非法的計(jì)算機(jī)可以運(yùn)行正版的窗口操作系統(tǒng)120,可以透過(guò)硬件或軟件的 方式來(lái)達(dá)成。以硬件的方式來(lái)說(shuō),可以透過(guò)修改基本輸入/輸出系統(tǒng)110自身的數(shù)據(jù), 讓窗口操作系統(tǒng)120將非法計(jì)算機(jī)視為合法計(jì)算機(jī)。而軟件的方式,是將合法計(jì)算機(jī)的基本輸入/輸出系統(tǒng)110復(fù)制到非法的計(jì)算機(jī) 上并修改軟件授權(quán)保護(hù)檢查碼111來(lái)欺騙窗口操作系統(tǒng)120,借以讓窗口操作系統(tǒng)120是 被安裝在合法的計(jì)算機(jī)上。特別是對(duì)原始配備生產(chǎn)商(Original Equipment Manufacturing, OEM)而言,其所使用的窗口操作系統(tǒng)120可以輕易的被改用在非特定機(jī)型的計(jì)算機(jī)中。 如此一來(lái),原始配備生產(chǎn)商所投入的開(kāi)發(fā)成本將被剽竊一空。
發(fā)明內(nèi)容
鑒于以上的問(wèn)題,本發(fā)明提供一種對(duì)運(yùn)行窗口操作系統(tǒng)的計(jì)算機(jī)的驗(yàn)證方法, 用以對(duì)運(yùn)行窗口操作系統(tǒng)的計(jì)算機(jī)進(jìn)行驗(yàn)證,以判斷是否為原廠(chǎng)的計(jì)算機(jī)。為達(dá)上述目的,本發(fā)明所揭露的一種對(duì)運(yùn)行窗口操作系統(tǒng)的計(jì)算機(jī)的驗(yàn)證方 法,用以驗(yàn)證一窗口操作系統(tǒng)所運(yùn)行的一計(jì)算機(jī)是否為原廠(chǎng)的該計(jì)算機(jī),該驗(yàn)證方法包 括下列步驟
于該窗口操作系統(tǒng)的啟動(dòng)期間,運(yùn)行一檢查程序;由該檢查程序從一基本輸入/輸出系統(tǒng)中取得一第一檢查碼;由該窗口操作系統(tǒng)從該基本輸入/輸出系統(tǒng)中取得一第二檢查碼;該檢查程序比對(duì)該第一檢查碼與該第二檢查碼是否一致;當(dāng)該第一檢查碼與該第二檢查碼不一致時(shí),則禁止運(yùn)行該窗口操作系統(tǒng)的一軟 件授權(quán)保護(hù)程序。該第一檢查碼儲(chǔ)存于該基本輸入/輸出系統(tǒng)的一桌面管理界面區(qū)段中。該第一檢查碼是根據(jù)該計(jì)算機(jī)的多個(gè)預(yù)設(shè)周邊裝置所產(chǎn)生。該第二檢查碼儲(chǔ)存于該基本輸入/輸出系統(tǒng)的一軟件授權(quán)保護(hù)區(qū)段中。該第二檢查碼是根據(jù)該計(jì)算機(jī)的多個(gè)當(dāng)前周邊裝置所產(chǎn)生。當(dāng)該第一檢查碼與該第二檢查碼不一致時(shí),則另運(yùn)行一隨機(jī)數(shù)寫(xiě)入程序,其是 以隨機(jī)數(shù)方式從內(nèi)存區(qū)段中選取一內(nèi)存地址,并以隨機(jī)數(shù)寫(xiě)入該內(nèi)存地址。當(dāng)該第一檢查碼與該第二檢查碼一致時(shí),則另執(zhí)行下述步驟將該第二檢查碼與該窗口操作系統(tǒng)的一認(rèn)證碼進(jìn)行比對(duì);當(dāng)該認(rèn)證碼與該第二檢查碼不一致時(shí),則將軟件授權(quán)保護(hù)程序禁能,并對(duì)內(nèi)存 運(yùn)行一隨機(jī)數(shù)寫(xiě)入程序,以隨機(jī)數(shù)方式隨機(jī)寫(xiě)入內(nèi)存的不同地址。本發(fā)明所提供的利用窗口操作系統(tǒng)的檢查碼驗(yàn)證計(jì)算機(jī)的驗(yàn)證方法可以避免有 心人士利用修改基本輸入/輸出系統(tǒng)中的第二檢查碼的方式,使得窗口操作系統(tǒng)將非法 計(jì)算機(jī)誤認(rèn)為合法計(jì)算機(jī),進(jìn)而在非法計(jì)算機(jī)上運(yùn)行。以下結(jié)合附圖和具體實(shí)施例對(duì)本發(fā)明進(jìn)行詳細(xì)描述,但不作為對(duì)本發(fā)明的限定。
圖1為現(xiàn)有的儲(chǔ)存SLP的示意圖;圖2為本發(fā)明的硬件架構(gòu)示意圖;圖3為本發(fā)明的運(yùn)作流程示意圖;圖4為本發(fā)明的另一實(shí)施例流程示意圖。其中,附圖標(biāo)記
110基本輸入/輸出系統(tǒng)
111軟件授權(quán)保護(hù)檢查碼
120窗口操作系統(tǒng)
121認(rèn)證碼
200計(jì)算機(jī)
210儲(chǔ)存單元
211檢查程序
212窗口操作系統(tǒng)
213隨機(jī)數(shù)寫(xiě)入程序
220基本輸入/輸出系統(tǒng)
221軟件授權(quán)保護(hù)區(qū)段
4
222桌面管理界面區(qū)段230 處理單元240 內(nèi)存
具體實(shí)施例方式本發(fā)明應(yīng)用于微軟(Microsoft)公司所推出的窗口操作系統(tǒng)中,用以對(duì)運(yùn)行窗口 操作系統(tǒng)的計(jì)算機(jī)進(jìn)行驗(yàn)證是否為合法的計(jì)算機(jī)。在本發(fā)明中的窗口操作系統(tǒng)可以是但 不限定為Windows XP 系列、Windows 2003、Windows Vista 或 Windows 7 等操作系統(tǒng)。 請(qǐng)參考圖2所示,其為本發(fā)明的計(jì)算機(jī)架構(gòu)示意圖。在本發(fā)明的計(jì)算機(jī)200中包括有 儲(chǔ)存單元210、基本輸入/輸出系統(tǒng)220、處理單元230和內(nèi)存240。在儲(chǔ)存單元210中儲(chǔ)存有檢查程序211、窗口操作系統(tǒng)212、與隨機(jī)數(shù)寫(xiě)入程序 213?;据斎?輸出系統(tǒng)220可以?xún)?chǔ)存在可程序化內(nèi)存中CErasableProgrammableRead Only Memory,EPROM)。在本發(fā)明中是在基本輸入/輸出系統(tǒng)220中分別設(shè)置有軟件授 權(quán)保護(hù)區(qū)段221與桌面管理界面(DesktopManagement Interface, DMI)區(qū)段222。當(dāng)然除 了桌面管理界面區(qū)段222外,也可以利用不同區(qū)段儲(chǔ)存第一檢查碼(未繪示)。而窗口操 作系統(tǒng)212中則是儲(chǔ)存有一相應(yīng)于第一檢查碼的認(rèn)證碼(未繪示)。就合法的計(jì)算機(jī)200而言,在桌面管理界面區(qū)段222與軟件授權(quán)保護(hù)區(qū)段221中 均儲(chǔ)存第一檢查碼。舉例來(lái)說(shuō),PSLM6C與PSLV6C為可開(kāi)啟SLP的字符串,然其余字 符串為不可開(kāi)啟SLP的字符串。在此為清楚說(shuō)明,所以本發(fā)明中對(duì)于待測(cè)的計(jì)算機(jī)200 的軟件授權(quán)保護(hù)區(qū)段221所儲(chǔ)存的檢查碼將其定義為第二檢查碼。第一檢查碼的生成方式是根據(jù)軟件授權(quán)保護(hù)規(guī)范所產(chǎn)生的密鑰。第一檢查碼的 生成是廠(chǎng)商根據(jù)計(jì)算機(jī)200所搭載的預(yù)設(shè)周邊裝置利用雜湊函數(shù)的方式所產(chǎn)生的。硬件 雜湊是八個(gè)字節(jié)的值,它是透過(guò)單向的數(shù)學(xué)轉(zhuǎn)換過(guò)程從計(jì)算機(jī)硬件元件執(zhí)行多種不同的 信息部分所建立的。這意謂所得的雜湊結(jié)果無(wú)法逆向計(jì)算原始的數(shù)值。此外,只有一部 份的雜湊結(jié)果數(shù)值會(huì)用于硬件雜湊,以確保完全的匿名。對(duì)于不同型號(hào)的計(jì)算機(jī)200而言所搭載的周邊硬件也有所差異。因此,生產(chǎn)廠(chǎng) 商可以根據(jù)不同硬件周邊來(lái)產(chǎn)生不同版本的第一檢查碼,并將第一檢查碼寫(xiě)入軟件授權(quán) 保護(hù)區(qū)段221與桌面管理界面區(qū)段222中。使得窗口操作系統(tǒng)212在運(yùn)行時(shí),可以透過(guò) 本身的認(rèn)證碼來(lái)檢查所運(yùn)行的計(jì)算機(jī)200是否是相應(yīng)的機(jī)型。同理,對(duì)于非法的計(jì)算機(jī)200來(lái)說(shuō),為了能驅(qū)動(dòng)窗口操作系統(tǒng)212正常運(yùn)行。因 此會(huì)根據(jù)非法計(jì)算機(jī)200的周邊硬件來(lái)產(chǎn)生相應(yīng)的第二檢查碼,并將其儲(chǔ)存在軟件授權(quán) 保護(hù)區(qū)段221。并且修改窗口操作系統(tǒng)212中的認(rèn)證碼,借以將認(rèn)證碼符合第二檢查碼。為能解決現(xiàn)有技術(shù)中透過(guò)硬件修改方式將正版窗口操作系統(tǒng)212可以在非法計(jì) 算機(jī)200上運(yùn)行的此一缺失。本發(fā)明提供了以下的驗(yàn)證方法,為清楚說(shuō)明本發(fā)明的運(yùn)作 過(guò)程,還請(qǐng)配合圖3所示,其為本發(fā)明的運(yùn)作流程示意圖。步驟S310:于窗口操作系統(tǒng)的啟動(dòng)期間,運(yùn)行檢查程序;步驟S320 由檢查程序從基本輸入/輸出系統(tǒng)中取得第一檢查碼;步驟S330 由窗口操作系統(tǒng)從基本輸入/輸出系統(tǒng)中取得第二檢查碼;步驟S340 檢查程序比對(duì)第一檢查碼與第二檢查碼是否一致;以及
步驟S350:當(dāng)?shù)谝粰z查碼與第二檢查碼不一致時(shí),則將窗口操作系統(tǒng)的軟件授 權(quán)保護(hù)程序禁能,并對(duì)內(nèi)存運(yùn)行隨機(jī)數(shù)寫(xiě)入程序,以隨機(jī)數(shù)方式隨機(jī)寫(xiě)入內(nèi)存的不同地址。在步驟S310中,窗口操作系統(tǒng)212在計(jì)算機(jī)200完成過(guò)電自檢(Power TestOn
Self, POST)后,隨即會(huì)開(kāi)始加載各種硬件與軟件相關(guān)的驅(qū)動(dòng)程序(driver)。于此同時(shí), 窗口操作系統(tǒng)212亦加載檢查程序211。并由處理單元230運(yùn)行該檢查程序211。接著, 檢查程序211由基本輸入/輸出系統(tǒng)220的軟件授權(quán)保護(hù)區(qū)段221與桌面管理界面區(qū)段 222中擷取出第一檢查碼與第二檢查碼(對(duì)應(yīng)步驟S320與步驟S330)。由檢查程序211比對(duì)第一檢查碼與第二檢查碼是否一致(對(duì)應(yīng)步驟S340)。若兩 者一致時(shí),則窗口操作系統(tǒng)212繼續(xù)運(yùn)行其它程序。若第一檢查碼與第二檢查碼不一致 時(shí),則將窗口操作系統(tǒng)212的軟件授權(quán)保護(hù)程序禁能。由于軟件授權(quán)保護(hù)程序禁能后, 窗口操作系統(tǒng)212會(huì)無(wú)法確認(rèn)其身份,因此將被視為非法的計(jì)算機(jī)200。因此處理單元 230會(huì)對(duì)內(nèi)存區(qū)段任一選取出一內(nèi)存地址并運(yùn)行一隨機(jī)數(shù)寫(xiě)入程序213。檢查程序211會(huì) 以隨機(jī)數(shù)方式隨機(jī)修改內(nèi)存240的不同地址的值,使得非法計(jì)算機(jī)200無(wú)法正常使用該版 的窗口操作系統(tǒng)212 (對(duì)應(yīng)步驟S350)。本發(fā)明除了針對(duì)硬件方式外,在本發(fā)明的另一實(shí)施例中可以針對(duì)軟件修改的缺 失進(jìn)行驗(yàn)證。請(qǐng)參考圖4所示,其為本發(fā)明的另一實(shí)施例流程示意圖。步驟S410:于窗口操作系統(tǒng)的啟動(dòng)期間,運(yùn)行檢查程序;步驟S420 由檢查程序從基本輸入/輸出系統(tǒng)中取得第一檢查碼;步驟S430 由窗口操作系統(tǒng)從基本輸入/輸出系統(tǒng)中取得第二檢查碼;步驟S440 檢查程序比對(duì)第一檢查碼與第二檢查碼是否一致;步驟S450:當(dāng)?shù)谝粰z查碼與第二檢查碼不一致時(shí),則將窗口操作系統(tǒng)的軟件授 權(quán)保護(hù)程序禁能,并對(duì)內(nèi)存運(yùn)行隨機(jī)數(shù)寫(xiě)入程序,以隨機(jī)數(shù)方式隨機(jī)寫(xiě)入內(nèi)存的不同地 址;以及步驟S460:當(dāng)?shù)谝粰z查碼與第二檢查碼一致時(shí),則比對(duì)第二檢查碼與該窗口操 作系統(tǒng)的認(rèn)證碼(ID)是否一致,當(dāng)認(rèn)證碼與第二檢查碼不一致時(shí),則執(zhí)行步驟450。本實(shí)施例中的步驟S410 S450與前一實(shí)施例相同,在此就不贅述。本實(shí)施例 除了需要判別第二檢查碼外,還需要對(duì)窗口操作系統(tǒng)212的認(rèn)證碼進(jìn)行判別。由于計(jì)算 機(jī)200運(yùn)行窗口操作系統(tǒng)212需要第二檢查碼與認(rèn)證碼一致,才能正常運(yùn)行。為更加的 確保窗口操作系統(tǒng)212是在合法的計(jì)算機(jī)200上運(yùn)行,因此除了比對(duì)第一檢查碼與第二檢 查碼外,本實(shí)施例更進(jìn)一步的對(duì)窗口操作系統(tǒng)212進(jìn)行驗(yàn)證(對(duì)應(yīng)步驟S460)。本發(fā)明所提供的利用窗口操作系統(tǒng)212的檢查碼驗(yàn)證計(jì)算機(jī)200的驗(yàn)證方法可以 避免有心人士修改第二檢查碼的方式,使得窗口操作系統(tǒng)212將非法計(jì)算機(jī)200誤認(rèn)為合 法計(jì)算機(jī)200,進(jìn)而在非法計(jì)算機(jī)200上運(yùn)行。當(dāng)然,本發(fā)明還可有其它多種實(shí)施例,在不背離本發(fā)明精神及其實(shí)質(zhì)的情況 下,熟悉本領(lǐng)域的技術(shù)人員當(dāng)可根據(jù)本發(fā)明作出各種相應(yīng)的改變和變形,但這些相應(yīng)的 改變和變形都應(yīng)屬于本發(fā)明所附的權(quán)利要求的保護(hù)范圍。
權(quán)利要求
1.一種對(duì)運(yùn)行窗口操作系統(tǒng)的計(jì)算機(jī)的驗(yàn)證方法,用以驗(yàn)證一窗口操作系統(tǒng)所運(yùn)行 的一計(jì)算機(jī)是否為原廠(chǎng)的該計(jì)算機(jī),其特征在于,該驗(yàn)證方法包括下列步驟于該窗口操作系統(tǒng)的啟動(dòng)期間,運(yùn)行一檢查程序;由該檢查程序從一基本輸入/輸出系統(tǒng)中取得一第一檢查碼;由該窗口操作系統(tǒng)從該基本輸入/輸出系統(tǒng)中取得一第二檢查碼;該檢查程序比對(duì)該第一檢查碼與該第二檢查碼是否一致;當(dāng)該第一檢查碼與該第二檢查碼不一致時(shí),則禁止運(yùn)行該窗口操作系統(tǒng)的一軟件授 權(quán)保護(hù)程序。
2.根據(jù)權(quán)利要求1所述的對(duì)運(yùn)行窗口操作系統(tǒng)的計(jì)算機(jī)的驗(yàn)證方法,其特征在于,該 第一檢查碼儲(chǔ)存于該基本輸入/輸出系統(tǒng)的一桌面管理界面區(qū)段中。
3.根據(jù)權(quán)利要求1所述的對(duì)運(yùn)行窗口操作系統(tǒng)的計(jì)算機(jī)的驗(yàn)證方法,其特征在于,該 第一檢查碼是根據(jù)該計(jì)算機(jī)的多個(gè)預(yù)設(shè)周邊裝置所產(chǎn)生。
4.根據(jù)權(quán)利要求1所述的對(duì)運(yùn)行窗口操作系統(tǒng)的計(jì)算機(jī)的驗(yàn)證方法,其特征在于,該 第二檢查碼儲(chǔ)存于該基本輸入/輸出系統(tǒng)的一軟件授權(quán)保護(hù)區(qū)段中。
5.根據(jù)權(quán)利要求1所述的對(duì)運(yùn)行窗口操作系統(tǒng)的計(jì)算機(jī)的驗(yàn)證方法,其特征在于,該 第二檢查碼是根據(jù)該計(jì)算機(jī)的多個(gè)當(dāng)前周邊裝置所產(chǎn)生。
6.根據(jù)權(quán)利要求1所述的對(duì)運(yùn)行窗口操作系統(tǒng)的計(jì)算機(jī)的驗(yàn)證方法,其特征在于,當(dāng) 該第一檢查碼與該第二檢查碼不一致時(shí),則另運(yùn)行一隨機(jī)數(shù)寫(xiě)入程序,其是以隨機(jī)數(shù)方 式從內(nèi)存區(qū)段中選取一內(nèi)存地址,并以隨機(jī)數(shù)寫(xiě)入該內(nèi)存地址。
7.根據(jù)權(quán)利要求1所述的對(duì)運(yùn)行窗口操作系統(tǒng)的計(jì)算機(jī)的驗(yàn)證方法,其特征在于,當(dāng) 該第一檢查碼與該第二檢查碼一致時(shí),則另執(zhí)行下述步驟將該第二檢查碼與該窗口操作系統(tǒng)的一認(rèn)證碼進(jìn)行比對(duì);當(dāng)該認(rèn)證碼與該第二檢查碼不一致時(shí),則將軟件授權(quán)保護(hù)程序禁能,并對(duì)內(nèi)存運(yùn)行 一隨機(jī)數(shù)寫(xiě)入程序,以隨機(jī)數(shù)方式隨機(jī)寫(xiě)入內(nèi)存的不同地址。
全文摘要
本發(fā)明公開(kāi)了一種對(duì)運(yùn)行窗口操作系統(tǒng)的計(jì)算機(jī)的驗(yàn)證方法,用以驗(yàn)證窗口操作系統(tǒng)所運(yùn)行的計(jì)算機(jī)是否為原廠(chǎng)的機(jī)型。驗(yàn)證方法包括于窗口操作系統(tǒng)的啟動(dòng)期間,運(yùn)行檢查程序;由檢查程序從基本輸入/輸出系統(tǒng)的桌面管理界面區(qū)段中取得第一檢查碼;由窗口操作系統(tǒng)從基本輸入/輸出系統(tǒng)中的軟件授權(quán)保護(hù)區(qū)段取得第二檢查碼;當(dāng)?shù)谝粰z查碼與第二檢查碼不一致時(shí),代表此一計(jì)算機(jī)為非法的計(jì)算機(jī),因此會(huì)將窗口操作系統(tǒng)的軟件授權(quán)保護(hù)程序禁能,并對(duì)內(nèi)存運(yùn)行隨機(jī)數(shù)寫(xiě)入程序,再以隨機(jī)數(shù)方式隨機(jī)寫(xiě)入內(nèi)存的不同地址。
文檔編號(hào)G06F21/22GK102024117SQ20091016911
公開(kāi)日2011年4月20日 申請(qǐng)日期2009年9月9日 優(yōu)先權(quán)日2009年9月9日
發(fā)明者羅圣心 申請(qǐng)人:英業(yè)達(dá)股份有限公司