專利名稱:二進(jìn)制碼驗證服務(wù)的制作方法
二進(jìn)制碼驗證服務(wù)
背景
軟件質(zhì)量在安全性和可靠性的上下文中是尤其至關(guān)重要的。存在可以作為 開發(fā)過程的一部分在源代碼上運行的工具,這些工具檢査各種常見隱錯或漏洞 以及使用特定規(guī)則來驗證源代碼的遵從性。還可以測試源代碼來確保源代碼不 具有諸如緩沖區(qū)溢出等嚴(yán)重安全問題。然而,在任何軟件系統(tǒng)或產(chǎn)品中,實際 發(fā)送給顧客的內(nèi)容是組成該產(chǎn)品的不同可執(zhí)行文件的原始比特(被稱為二進(jìn)制 碼)。當(dāng)今用于提供二進(jìn)制碼驗證的系統(tǒng)是不充分的。
概述
下面提供本發(fā)明的簡要概述以便向讀者提供基本的理解。本概述不是本發(fā) 明的詳盡概觀,并且既不標(biāo)識本發(fā)明的關(guān)鍵/決定性要素也不描繪本發(fā)明的范
圍。其唯一H的是以簡化形式提供在此公開一些概念作為稍后提供的更詳細(xì)描 述的序言。
本發(fā)明的各實施例涉及一種二進(jìn)制碼驗證服務(wù)。該二進(jìn)制碼驗證服務(wù)可以 確定二進(jìn)制碼是否遵循一個或多個使用規(guī)則集并依此對該二進(jìn)制碼評分。在一 個示例場景中,該二進(jìn)制碼驗證服務(wù)可以在安裝在系統(tǒng)上之前檢査二進(jìn)制碼的 質(zhì)量。在另一示例場景中,程序員可以將該二進(jìn)制碼驗證服務(wù)用作產(chǎn)品的軟件 開發(fā)的一部分。
許多附帶特征將隨著參考下面的詳細(xì)描述并結(jié)合附圖進(jìn)行理解而得到更 好的認(rèn)識。
附圖簡述
附圖中使用相同的附圖標(biāo)記來指代相同的部分。
圖1是根據(jù)本發(fā)明一實施例的二進(jìn)制碼驗證系統(tǒng)的框圖。
圖2是根據(jù)本發(fā)明一實施例的二進(jìn)制碼驗證服務(wù)的框圖。圖3是示出根據(jù)本發(fā)明一實施例的二進(jìn)制碼驗證服務(wù)的邏輯和操作的流 程圖。
圖4是示出根據(jù)本發(fā)明一實施例的在軟件開發(fā)期間使用二進(jìn)制碼驗證服 務(wù)的邏輯和操作的流程圖。
圖5是示出根據(jù)本發(fā)明一實施例的更新二進(jìn)制碼驗證服務(wù)的使用規(guī)則的 邏輯和操作的流程圖。
圖6是用于實現(xiàn)本發(fā)明的各實施例的示例計算設(shè)備的框圖。 詳細(xì)描述
下面結(jié)合附圖提供的詳細(xì)描述旨在作為對本發(fā)明各示例的描述,而非表示 用于解釋或利用本發(fā)明各示例的唯一形式。本說明書闡述各示例的功能以及用 于構(gòu)造和操作各示例的步驟序列。然而,相同或等價的功能與序列可由不同的 示例來實現(xiàn)。
圖1示出了根據(jù)本發(fā)明的一實施例的二進(jìn)制碼驗證系統(tǒng)100。系統(tǒng)100包 括可以與服務(wù)器106通信的客戶機(jī)102。客戶機(jī)102可以使用諸如內(nèi)聯(lián)網(wǎng)、因 特網(wǎng)、或其任何組合等網(wǎng)絡(luò)(未示出)來連接到服務(wù)器106。為了簡明起見示 出一個客戶機(jī)102,但應(yīng)該理解多個客戶機(jī)102可以連接到服務(wù)器106來尋求 二進(jìn)制碼驗證服務(wù)??蛻魴C(jī)102和/或服務(wù)器106可被實現(xiàn)為如以下結(jié)合圖6 所述的計算設(shè)備。
客戶機(jī)102包括用于與服務(wù)器106上的二進(jìn)制碼驗證服務(wù)108通信的二進(jìn) 制碼驗證客戶機(jī)代理104。客戶機(jī)代理104可用亍為客戶機(jī)102處的用戶驗證 二進(jìn)制碼。例如,用戶下載設(shè)備驅(qū)動程序來安裝在客戶機(jī)102上。然而,在將 該設(shè)各驅(qū)動程序安裝在客戶機(jī)102上之前,用戶可以使用客戶機(jī)代理104來驗 證該設(shè)備驅(qū)動程序二進(jìn)制碼。以這種方式,用戶可以在安裝該設(shè)備驅(qū)動程序并 可能因編寫得糟糕的驅(qū)動程序而損壞客戶機(jī)102之前測試該設(shè)備驅(qū)動程序是否 遵從針對客戶機(jī)操作系統(tǒng)的使用規(guī)則。
如此處所使用的,"二進(jìn)制碼"表示可執(zhí)行機(jī)器代碼。如此處所使用的, "二進(jìn)制碼驗證"表示分析二進(jìn)制碼來確定二進(jìn)制碼是否遵從一使用規(guī)則集。 這些使用規(guī)則定義應(yīng)該遵循以便最小化二進(jìn)制碼可能對該二進(jìn)制碼在其中執(zhí)
7行的環(huán)境所造成的破壞的編程技術(shù)。換言之,這些使用規(guī)則定義二進(jìn)制碼與諸 如操作系統(tǒng)等該二進(jìn)制碼的操作環(huán)境之間的正確交互。例如,可以檢查設(shè)備驅(qū) 動程序二進(jìn)制碼以確保該設(shè)備驅(qū)動程序二進(jìn)制碼符合設(shè)備驅(qū)動程序接口規(guī)則
(例如,微軟Windows 驅(qū)動程序開發(fā)工具包(DDK)等)。二進(jìn)制碼驗證 可以確認(rèn)設(shè)備驅(qū)動程序二進(jìn)制碼的行為并尋找內(nèi)核API的二進(jìn)制碼使用中的 缺陷。在另一示例中,可以對照應(yīng)用程序編程接口 (API)規(guī)則(例如,微軟 Win32 API)對用戶模式二進(jìn)制碼進(jìn)行驗證。API使用規(guī)則可以應(yīng)用于包括鎖 定特性、中斷請求調(diào)用、即插即用、電源管理等各種領(lǐng)域。示例使用規(guī)則驗證 針對API調(diào)用的參數(shù)的范圍,驗證以特定次序?qū)PI的調(diào)用等等。
在系統(tǒng)100中,服務(wù)器106包括二進(jìn)制碼驗證服務(wù)108。盡管僅示出了一 個服務(wù)器106,但是應(yīng)該理解,二進(jìn)制碼驗證服務(wù)108可由兩個或更多服務(wù)器 來支持。二進(jìn)制碼驗證服務(wù)108可以從客戶機(jī)代理104接收執(zhí)行對二進(jìn)制碼的 二進(jìn)制碼驗證的二進(jìn)制碼驗證請求110。 二進(jìn)制碼驗證服務(wù)108將所請求的二 進(jìn)制碼的二進(jìn)制碼驗證結(jié)果112返回給客戶機(jī)代理104。二進(jìn)制碼驗證結(jié)果112 可以包括指示該二進(jìn)制碼有多遵從一使用規(guī)則集的對二進(jìn)制碼的驗證評分(例 如,A到F的等級、1到10的尺度評分等等)。在一個實施例中,該二進(jìn)制碼 驗證無須是可靠或完整的(即,驗證可能找到某些假肯定或可能遺漏某些使用 規(guī)則違反)。
客戶機(jī)代理104隨后可以向客戶機(jī)102處的用戶呈現(xiàn)該驗證結(jié)果。用戶可 以使用該驗證結(jié)果來確定是否要安裝和/或執(zhí)行該二進(jìn)制碼。在另一實例中,用 戶可以包括將驗證結(jié)果112用于開發(fā)軟件程序的程序員。
轉(zhuǎn)向圖2,示出了二進(jìn)制碼驗證服務(wù)108的一實施例。服務(wù)108可以包括 二進(jìn)制碼標(biāo)識(ID)工具202、 二進(jìn)制碼驗證引擎204、以及二進(jìn)制碼驗證服 務(wù)數(shù)據(jù)庫206。在一個實施例中,服務(wù)108可被實現(xiàn)為可由一個或多個服務(wù)器 106執(zhí)行的計算機(jī)可讀指令。
在服務(wù)108處接收二進(jìn)制碼驗證請求210。請求210可以包括二進(jìn)制碼標(biāo) 識信息來唯一地標(biāo)識二進(jìn)制碼。例如,驅(qū)動程序二進(jìn)制碼可被數(shù)字簽名并具有 用于該驅(qū)動程序和該驅(qū)動程序的版本的唯一標(biāo)識。
在二進(jìn)制碼ID信息在服務(wù)108處被接收到時,二進(jìn)制碼ID工具202可以搜索數(shù)據(jù)庫206來確定該二進(jìn)制碼是否已經(jīng)被驗證。如果該二進(jìn)制碼先前已經(jīng) 被驗證,則將該二進(jìn)制碼的二進(jìn)制碼驗證結(jié)果212發(fā)送到請求的客戶機(jī)代理。 如果該二進(jìn)制碼先前未被驗證,則服務(wù)108可以向客戶機(jī)代理請求該二進(jìn)制碼 的副本?;蛘?,原始二進(jìn)制碼驗證請求可以包括二進(jìn)制碼ID信息以及該二進(jìn) 制碼本身。
二進(jìn)制驗證引擎204對照一使用規(guī)則集205來檢查二進(jìn)制碼。服務(wù)108 可以執(zhí)行靜態(tài)驗證(在不執(zhí)行二進(jìn)制碼的情況下驗證該二進(jìn)制碼)和/或動態(tài)驗 證(對該二進(jìn)制碼進(jìn)行插裝(instrument)并隨后在執(zhí)行該二進(jìn)制碼的同時檢査 該二進(jìn)制碼)。二進(jìn)制碼驗證引擎204可以包括兩個或多個使用規(guī)則集205。 可以在適合某二進(jìn)制碼時將合適的使用規(guī)則集205應(yīng)用于該二進(jìn)制碼。例如, 可以使用與用于諸如微軟Internet Explorer等瀏覽器的應(yīng)用程序插件的使用規(guī) 則集不同的適用規(guī)則集來測試用于微軟Windows VistaTM的設(shè)備驅(qū)動程序二進(jìn) 制碼。二進(jìn)制碼驗證引擎204可以包括諸如微軟的經(jīng)由可伸縮程序分析的錯誤 檢測(ESP)以及微軟的靜態(tài)驅(qū)動程序驗證器(SDV)(其使用SLAM分析引 擎)等二進(jìn)制碼驗證引擎。
在由二進(jìn)制碼驗證引擎204驗證之后,可以將驗證結(jié)果保存在服務(wù)數(shù)據(jù)庫 206中。以此方式,如果該二進(jìn)制碼的驗證被再次請求,則服務(wù)108可以提供 來自服務(wù)數(shù)據(jù)庫206的驗證結(jié)果而不是必須重新驗證該同樣的二進(jìn)制碼。該二 進(jìn)制碼本身也可以與該二進(jìn)制碼的驗證結(jié)果一起保存在服務(wù)數(shù)據(jù)庫206中。
服務(wù)108將二進(jìn)制碼驗證結(jié)果212發(fā)送到請求的客戶機(jī)代理。在_ -個實施 例中,驗證結(jié)果可以包括指示二進(jìn)制碼有多嚴(yán)格地遵循使用規(guī)則的評級尺度。 例如,二進(jìn)制碼可被評為等級"A"(遵循幾乎所有規(guī)則)到"F"(幾乎不遵 循規(guī)則),或尺度IO (遵循幾乎所有規(guī)則)到l (幾乎不遵循規(guī)則)等等。在 另--實施例中,驗證結(jié)果可以指示針對一個或多個使用規(guī)則的結(jié)果;這些單獨 結(jié)果可以包括針對每--使用規(guī)則通過、失敗、或不確定。在又一實施例中,驗 證結(jié)果可以指示使用了哪些使用規(guī)則集來測試二進(jìn)制碼。
服務(wù)108還可以接收使用規(guī)則更新214。使用規(guī)則更新214可以包括對現(xiàn) 存使用規(guī)則的修訂或新使用規(guī)則。在一個實施例中,可以響應(yīng)于在服務(wù)108處 接收到的使用規(guī)則更新來重新驗證存儲在服務(wù)數(shù)據(jù)庫206中的一個或多個二進(jìn)
9制碼(以下進(jìn)一步討論)。
轉(zhuǎn)向圖3,流程圖300示出根據(jù)本發(fā)明一實施例的二進(jìn)制碼驗證的邏輯和 操作。在一個實施例中,流程圖300的邏輯的至少一部分可以由可由一個或多 個計算設(shè)備執(zhí)行的計算機(jī)可讀指令來實現(xiàn)。
從框302開始,客戶機(jī)代理檢査要驗證的一個或多個二進(jìn)制碼。該客戶機(jī) 代理可以收集唯一地標(biāo)識二進(jìn)制碼的關(guān)于該二進(jìn)制碼的二進(jìn)制碼標(biāo)識信息。二 進(jìn)制碼還可以具有指示該二進(jìn)制碼已經(jīng)被驗證和/或驗證結(jié)果的電子簽名。在一 個實施例中,客戶機(jī)代理響應(yīng)于用戶輸入來檢査二進(jìn)制碼。例如,用戶為客戶 機(jī)102下載新設(shè)備驅(qū)動程序??梢杂煽蛻魴C(jī)代理104向用戶呈現(xiàn)命令框,以提 議在新設(shè)備驅(qū)動程序的安裝之前驗證該新設(shè)備驅(qū)動程序。在另一實施例中,用 戶可以請求客戶機(jī)代理104自動驗證新二進(jìn)制碼和/或周期性地檢查對先前已 驗證的二進(jìn)制碼的驗證更新。
接著,在判定框304中,該邏輯確定驗證信息是否被包括在二進(jìn)制碼中, 諸如在電子簽名中。如果對判定框304的回答是"是",則該邏輯繼續(xù)至框314 來向用戶呈現(xiàn)包括在二進(jìn)制碼本身內(nèi)的驗證結(jié)果。還可以向用戶呈現(xiàn)使用服務(wù) 108重新驗證該二進(jìn)制碼的選項。以此方式,用戶可以對已經(jīng)使用最新的使用 規(guī)則驗證了該二進(jìn)制碼感到自信。
如果對判定框304的回答是"否",則該邏輯繼續(xù)至框306。在框306中, 客戶機(jī)代理向二進(jìn)制碼驗證服務(wù)發(fā)送先前收集的二進(jìn)制碼標(biāo)識信息。
繼續(xù)到框308, 二進(jìn)制碼驗證服務(wù)使用二進(jìn)制碼標(biāo)識信息來在服務(wù)數(shù)據(jù)庫 中查找該二進(jìn)制碼。應(yīng)該理解,服務(wù)數(shù)據(jù)庫可以包括在一個物理位置處的若干 數(shù)據(jù)庫和/或在不同物理位置但諸如通過網(wǎng)絡(luò)互連的若干數(shù)據(jù)庫。
接著,在判定框310,該邏輯確定該二進(jìn)制碼的二進(jìn)制碼驗證結(jié)果是否被 存儲在服務(wù)數(shù)據(jù)庫中。如果對判定框310的回答是"是",則該邏輯繼續(xù)至框 312。
在框312, 二進(jìn)制碼驗證服務(wù)將該二進(jìn)制碼的驗證結(jié)果返回給客戶機(jī)代 理。接著,在框314,客戶機(jī)代理向用戶呈現(xiàn)該驗證結(jié)果。在一個實施例中, 用戶可以使用該驗證結(jié)果來確定是否在他們的系統(tǒng)上安裝新設(shè)備驅(qū)動程序。
如果對判定框310的回答是"否",則該邏輯繼續(xù)至框316。在框316,
10服務(wù)向客戶機(jī)代理請求二進(jìn)制碼的副本。繼續(xù)到框318,客戶機(jī)將待驗證的二 進(jìn)制碼發(fā)送到服務(wù)。接著,在框320,服務(wù)驗證該二進(jìn)制碼。
繼續(xù)到框322,服務(wù)將驗證結(jié)果存儲在服務(wù)數(shù)據(jù)庫中。以此方式,在服務(wù) 被請求來再次驗證相同的二進(jìn)制碼時(來自當(dāng)前客戶機(jī)代理或另一客戶機(jī)代 理),則該服務(wù)可以參考所保存的驗證結(jié)果而不是必須重新驗證相同的二進(jìn)制 碼。在一個實施例中,二進(jìn)制碼本身的副本也可被存儲在服務(wù)數(shù)據(jù)庫中。如以 下進(jìn)一步討論的,可以在服務(wù)處的二進(jìn)制碼驗證使用規(guī)則被更新之后重新驗證 存儲在該服務(wù)處的二進(jìn)制碼。
繼續(xù)到框324,服務(wù)將驗證結(jié)果返回給客戶機(jī)代理。接著,在框326,該 驗證結(jié)果由客戶機(jī)代理呈現(xiàn)給用戶。
轉(zhuǎn)向圖4,流程圖400示出根據(jù)本發(fā)明一實施例的在軟件開發(fā)期間使用二 進(jìn)制碼驗證服務(wù)的二進(jìn)制驗證的邏輯和操作。在一個實施例中,流程圖400的 邏輯的至少一部分可以由可由一個或多個計算設(shè)備執(zhí)行的計算機(jī)可讀指令來 實現(xiàn)。
從框402開始,用戶開發(fā)源代碼。用戶可以包括程序員、軟件開發(fā)者、廠 商等等。接著,在框404,用戶編譯該源代碼并使用二進(jìn)制驗證客戶機(jī)代斑將 所得的二進(jìn)制碼發(fā)送到二進(jìn)制碼驗證服務(wù)。繼續(xù)到框406,該服務(wù)對該二進(jìn)制 碼執(zhí)行二進(jìn)制碼驗證。如框408中所示,該服務(wù)隨后將二進(jìn)制碼驗證結(jié)果發(fā)送 回給用戶。
該邏輯繼續(xù)到判定框410,在那里至少部分地基于所接收到的驗證結(jié)果來 作出該二進(jìn)制碼是否準(zhǔn)備好發(fā)行的判定。如果對判定框410的回答是"否", 則該邏輯繼續(xù)到框412,在那里用戶對源代碼作出更新以嘗試使該代碼與更多 使用規(guī)則兼容并從而改善驗證結(jié)果。在框412之后,該邏輯返回到框404,在 那里用戶向服務(wù)發(fā)送對應(yīng)于經(jīng)更新的源代碼的二進(jìn)制碼。
如果對判定框410的回答是"是",則該邏輯繼續(xù)至框414。在框414, 可以使用所接收到的二進(jìn)制碼驗證結(jié)果來證實該二進(jìn)制碼。該二進(jìn)制碼可以被 電子簽署,以指示該二進(jìn)制碼已經(jīng)被服務(wù)驗證。還可以將驗證結(jié)果的至少一部 分包括在該二進(jìn)制碼中,使得該驗證結(jié)果可以在安裝或/執(zhí)行該二進(jìn)制碼之前由 用戶審閱。轉(zhuǎn)向圖5,流程圖500示出根據(jù)本發(fā)明一實施例的更新二進(jìn)制碼驗證服務(wù) 的使用規(guī)則的邏輯和操作。在一個實施例中,流程圖500的邏輯的至少一部分 可以由可由 一個或多個計算設(shè)備執(zhí)行的計算機(jī)可讀指令來實現(xiàn)。
在框502開始,在二進(jìn)制碼驗證服務(wù)處接收新使用規(guī)則。新規(guī)則可以包括 對服務(wù)處的現(xiàn)存使用規(guī)則的修訂。繼續(xù)到框504,確認(rèn)該新使用規(guī)則。該新使 用規(guī)則可以由平臺提供者確認(rèn)(例如,在微軟Windows 的情況下由微軟公司 確認(rèn))。該新使用規(guī)則還可以由計算社區(qū)討論論壇(諸如web討論委員會)、 標(biāo)準(zhǔn)委員會、或其他組來確認(rèn)。
接著,在框506,如果確認(rèn)了新使用規(guī)則,則使用該新使用規(guī)則來更新二 進(jìn)制碼驗證服務(wù)。在一個實例中,在適當(dāng)時將該新使用規(guī)則添加到一個或多個 使用規(guī)則集。例如,將與設(shè)備驅(qū)動有關(guān)的新使用規(guī)則添加到用于驗證設(shè)備驅(qū)動 的一個或多個使用規(guī)則集。
繼續(xù)到框508,使用該新使用規(guī)則對服務(wù)數(shù)據(jù)庫中存儲的二進(jìn)制碼的至少 一部分執(zhí)行二進(jìn)制碼驗證。繼續(xù)到框510,作為新使用規(guī)則的結(jié)果,更新存儲 在服務(wù)處的二進(jìn)制碼的驗證結(jié)果。
繼續(xù)到框512,由服務(wù)通知一個或多個用戶對他們的二進(jìn)制碼的新驗證結(jié) 果。在軟件開發(fā)者的情況下,已更新的驗證結(jié)果可用于為產(chǎn)品(例如,設(shè)備驅(qū) 動程序)重寫代碼、重新驗證產(chǎn)品、以及重新證實該產(chǎn)品。該軟件開發(fā)者隨后 可以使顧客意識到已更新的產(chǎn)品。在另一示例中,可以諸如通過微軟Windows 更新將已更新的驗證結(jié)果推送給用戶,來自動地向用戶發(fā)送關(guān)于新驗證結(jié)果的 警告。這可以改善客戶機(jī)系統(tǒng)的可靠性和穩(wěn)定性并從而改善用戶體驗。
本發(fā)明的各實施例提供二進(jìn)制碼驗證服務(wù)。由于二進(jìn)制碼驗證的復(fù)雜性和 計算強(qiáng)度,在客戶機(jī)機(jī)器上執(zhí)行二進(jìn)制碼驗證是不切實際的。同樣,在客戶機(jī) 二進(jìn)制碼驗證中,最終用戶被施加了將已更新的使用規(guī)則下載到該客戶機(jī)上的 負(fù)擔(dān)。二進(jìn)制碼驗證服務(wù)為最終用戶以及軟件開發(fā)者提供集中式位置以對照最 新的使用規(guī)則對二進(jìn)制碼進(jìn)行驗證。二進(jìn)制碼驗證服務(wù)還允許平臺廠商在由獨 立廠商開發(fā)的各種應(yīng)用程序運行于它的平臺上的情況下確保平臺的質(zhì)量和穩(wěn) 健性。
圖6及以下時論旨在提供對實現(xiàn)本發(fā)明的各實施例的合適的計算環(huán)境的
12簡要概括描述。圖6的操作環(huán)境只是合適的操作環(huán)境的一個示例,并不旨在對 該操作環(huán)境的使用范圍或功能提出任何局限??蛇m用于與在此所述的各實施例 一起使用的其它公知計算設(shè)備、環(huán)境、和/或配置包括但不限于個人計算機(jī)、服 務(wù)器計算機(jī)、手持或膝上型設(shè)備、移動設(shè)備(諸如移動電話、個人數(shù)字助理 (PDA)、媒體播放器等等)、多處理器系統(tǒng)、消費電子產(chǎn)品、小型計算機(jī)、 大型計算機(jī)、包括任何以上系統(tǒng)或設(shè)備的分布式計算環(huán)境等等。
盡管并非必需,但本發(fā)明的各實施例在由一個或多個計算設(shè)備執(zhí)行的"計 算機(jī)可讀指令"的一般上下文中描述。計算機(jī)可讀指令可通過計算機(jī)可讀介質(zhì) 來分發(fā)(在以下討論)。計算機(jī)可讀指令可被實現(xiàn)為執(zhí)行特定任務(wù)或?qū)崿F(xiàn)特定 抽象數(shù)據(jù)類型的程序模塊,如函數(shù)、對象、應(yīng)用程序編程接口 (API)、數(shù)據(jù) 結(jié)構(gòu)等等。通常,計算機(jī)可讀指令的功能可按需在各個環(huán)境中組合或分布。
圖6示出了用于實現(xiàn)本發(fā)明的一個或多個實施例的計算設(shè)備600的示例。 在一種配置中,計算設(shè)備600包括至少一個處理單元602和存儲器604。取決 于計算設(shè)備的確切配置和類型,存儲器604可以是易失性的(如RAM)、非 易失性的(如ROM、閃存等)或是兩者的某種組合。該配置在圖6中山虛線 606來例示。
在其它實施例中,設(shè)備600可以包括附加特征和/或功能。例如,設(shè)備600 還可以包括附加存儲(例如,可移動和/或不可移動),其中包括爐.不限于磁存 儲、光存儲等等。這樣的附加存儲在圖6中由存儲608示出。在一個實施例中, 用于實現(xiàn)本發(fā)明各實施例的計算機(jī)可讀指令可以在存儲608中。存儲608還可 以儲存實現(xiàn)操作系統(tǒng)、應(yīng)用程序等的其它計算機(jī)可讀指令。
此處所使用的術(shù)語"計算機(jī)可讀介質(zhì)"包括計算機(jī)存儲介質(zhì)。計算機(jī)存儲 介質(zhì)包括以用于存儲諸如計算機(jī)可讀指令或其它數(shù)據(jù)這樣的信息的任何方法 或技術(shù)來實現(xiàn)的易失性和非易失性、可移動和不可移動介質(zhì)。存儲器604和存 儲608都是計算機(jī)存儲介質(zhì)的示例。計算機(jī)存儲介質(zhì)包括但不限于,RAM、 ROM、 EEPROM、閃存或其它存儲器技術(shù)、CD-ROM、數(shù)字多功能盤(DVD) 或其它光存儲、磁帶盒、磁帶、磁盤存儲或其它磁存儲設(shè)備、或者可用于存儲 所需信息并且可由設(shè)備600訪問的任何其它介質(zhì)。任何這樣的計算機(jī)存儲介質(zhì) 都可以是設(shè)備600的--部分。
13設(shè)備600還可包括允許該設(shè)備600與其它設(shè)備進(jìn)行通信的通信連接612。 通信連接612可包括但不限于,調(diào)制解調(diào)器、網(wǎng)絡(luò)接口卡(NIC)、集成網(wǎng)絡(luò) 接口、射頻發(fā)射機(jī)/接收機(jī)、紅外線端口、 USB連接、或用于將計算設(shè)備600 連接到其它計算設(shè)備的其他接口 。通信連接612可以包括有線連接或無線連接。 通信連接612可以發(fā)送和/或接收通信媒體。
術(shù)語"計算機(jī)可讀介質(zhì)"可以包括通信介質(zhì)。通信介質(zhì)通常以諸如載波或 其它傳輸機(jī)制等"已調(diào)制數(shù)據(jù)信號"來體現(xiàn)計算機(jī)可讀指令或其它數(shù)據(jù),并包 括任何信息傳送介質(zhì)。術(shù)語"已調(diào)制數(shù)據(jù)信號"指的是其一個或多個特征以在 信號中編碼信息的方式被設(shè)定或更改的信號。作為示例而非限制,通信介質(zhì)包 括有線介質(zhì),如有線網(wǎng)絡(luò)或直接線連接,以及無線介質(zhì),如聲學(xué)、射頻、紅外、 近場通信(NFC)和其它無線介質(zhì)。
設(shè)備600可包括輸入設(shè)備614,諸如鍵盤、鼠標(biāo)、筆、語音輸入設(shè)備、觸 摸輸入設(shè)備、紅外照相機(jī)、視頻輸入設(shè)備和/或任何其它輸入設(shè)備。設(shè)備600 中還可包括輸出設(shè)備616,諸如一個或多個顯示器、揚聲器、打印機(jī)和/或任何 其它輸出設(shè)備。輸入設(shè)備614和輸出設(shè)各616可以通過有線連接、無線連接或 其任何組合來連接到設(shè)備600。在一個實施例中,來白另一計算設(shè)備的輸入設(shè) 備或輸出設(shè)各可用作計算設(shè)備600的輸入設(shè)備614或輸出設(shè)備616。
計算設(shè)備600的組件可以通過諸如總線等各種互連來連接。這些互連可包 括諸如PCI Express等外圍部件互連(PCI)、通用串行總線(USB)、火線(IEEE 1394)、光學(xué)總線結(jié)構(gòu)等。在另一實施例中,計算設(shè)備600的組件可以通過網(wǎng) 絡(luò)互連。例如,存儲器604可由位于通過網(wǎng)絡(luò)互連的不同物理位置的多個物理 存儲器單元組成-
在描述和權(quán)利要求書中,可使用術(shù)語"耦合的"及其派生詞。"耦合的" 可意味著兩個或多個元件正在接觸(物理地、電子地、磁性地、光學(xué)地等)。 "耦合的"還可意味著兩個或多個元件未彼此接觸,但仍彼此合作或交互(例 如,通信地耦合的)。
本領(lǐng)域技術(shù)人員會認(rèn)識到,用于存儲計算機(jī)可讀指令的存儲設(shè)備可分布在 網(wǎng)絡(luò)上。例如,可以通過網(wǎng)絡(luò)620訪問的計算設(shè)備630可以儲存實現(xiàn)本發(fā)明的 一個或多個實施例的計算機(jī)可讀指令。計算設(shè)備600可以訪問計算設(shè)備630并下載部分或全部計算機(jī)可讀指令來執(zhí)行?;蛘?,計算設(shè)備600可以按需下載計 算機(jī)可讀指令的片斷,或者某些指令可以在計算設(shè)備600處執(zhí)行而某些則在計 算設(shè)備630處執(zhí)行。本領(lǐng)域的技術(shù)人員還可認(rèn)識到,所有或部分計算機(jī)可讀指 令可以由諸如數(shù)字信號處理器(DSP)、可編程邏輯陣列等專用電路來實現(xiàn)。
此處描述了本發(fā)明各實施例的各種操作。在一個實施例中,所描述的操作 中的一個或多個可以組成儲存在一個或多個計算機(jī)可讀介質(zhì)上的計算機(jī)可讀 指令,這些指令如果被計算設(shè)備執(zhí)行則使得計算設(shè)備執(zhí)行所描述的操作。描述 一些或全部操作的順序不應(yīng)被解釋為暗示了這些操作必須要依賴于順序。從本 說明書獲益的本領(lǐng)域技術(shù)人員應(yīng)理解替換的排序。此外,應(yīng)該理解并非所有的 操作都必須存在于本發(fā)明的每一實施例中。
本發(fā)明各實施例的以上描述,包括在摘要中所描述的內(nèi)容,不旨在是窮舉 或?qū)⒏鲗嵤├抻谒_的精確形式。盡管本發(fā)明的具體實施例和示例此處是 為了說明的目的而描述的,但如相關(guān)領(lǐng)域的技術(shù)人員鑒于以上詳細(xì)描述所能認(rèn) 識到的,各種等效技術(shù)方案和修改都是可能的。在所附權(quán)利要求書中所使用的
利要求書應(yīng)該根據(jù)所確立的權(quán)利要求解釋原則來解釋。
權(quán)利要求
1.一種方法,包括在二進(jìn)制碼驗證服務(wù)處從二進(jìn)制碼驗證客戶機(jī)代理接收二進(jìn)制碼(306);由所述二進(jìn)制碼驗證服務(wù)執(zhí)行所述二進(jìn)制碼的二進(jìn)制碼驗證,其中二進(jìn)制碼驗證包括確定所述二進(jìn)制碼是否遵從一使用規(guī)則集(320);以及由二進(jìn)制碼驗證服務(wù)將二進(jìn)制碼驗證結(jié)果發(fā)送到所述二進(jìn)制碼驗證客戶機(jī)代理(312、314)。
2. 如權(quán)利要求1所述的方法,其特征在于,還包括 由所述二進(jìn)制碼驗證服務(wù)將所述二進(jìn)制碼驗證結(jié)果存儲在二進(jìn)制碼驗證服務(wù)數(shù)據(jù)庫中。
3. 如權(quán)利要求1所述的方法,其特征在于,還包括 在所述二進(jìn)制碼驗證服務(wù)處接收與第二二進(jìn)制碼相關(guān)聯(lián)的二進(jìn)制碼標(biāo)識信息;由所述二進(jìn)制碼驗證服務(wù)使用所述二進(jìn)制碼標(biāo)識信息在二進(jìn)制碼驗證 服務(wù)數(shù)據(jù)庫中査找二進(jìn)制碼驗證結(jié)果;以及由所述二進(jìn)制碼驗證服務(wù)將對應(yīng)于在所述二進(jìn)制碼驗證服務(wù)數(shù)據(jù)庫中所 找到的所述第二二進(jìn)制碼的二進(jìn)制碼驗證結(jié)果發(fā)送到所述二進(jìn)制碼驗證客戶 機(jī)代理。
4. 如權(quán)利要求l所述的方法,其特征在于,還包括 在所述二進(jìn)制碼驗證服務(wù)處接收新使用規(guī)則;以及由所述二進(jìn)制碼驗證服務(wù)使用所述新使用規(guī)則來更新所述使用規(guī)則集。
5. 如權(quán)利要求4所述的方法,其特征在于,還包括 由所述二進(jìn)制碼驗證服務(wù)用已更新的使用規(guī)則集來執(zhí)行存儲在二進(jìn)制碼驗證服務(wù)數(shù)據(jù)庫中的二進(jìn)制碼的二進(jìn)制碼驗證;以及由所述二進(jìn)制碼驗證服務(wù)更新對應(yīng)于存儲在所述二進(jìn)制碼驗證服務(wù)數(shù) 據(jù)庫中的二進(jìn)制碼的二進(jìn)制碼驗證結(jié)果。
6. 如權(quán)利要求5所述的方法,其特征在于,還包括 由所述二進(jìn)制碼驗證服務(wù)向一個或多個用戶通知一個或多個已更新的驗證結(jié)果。
7. 如權(quán)利要求1所述的方法,其特征在于,所述二進(jìn)制碼驗證結(jié)果包括所述二進(jìn)制碼的等級。
8. —種或多種其上包含在被執(zhí)行時實現(xiàn)如權(quán)利要求1所述的方法的計 算機(jī)可讀指令的計算機(jī)可讀介質(zhì)。
9. 一種方法,包括由二進(jìn)制碼驗證客戶機(jī)代理將二進(jìn)制碼發(fā)送到二進(jìn)制碼驗證服務(wù)(306);在所述二進(jìn)制碼驗證客戶機(jī)代理處從所述二進(jìn)制碼驗證服務(wù)接收所述二進(jìn)制碼的二進(jìn)制碼驗證結(jié)果(312、 324)。
10. 如權(quán)利要求9所述的方法,其特征在于,還包括 在所述二進(jìn)制碼驗證客戶機(jī)代理處至少部分地基于所述二進(jìn)制碼驗證客戶機(jī)代理處的用戶輸入選擇要驗證的二進(jìn)制碼。
11. 如權(quán)利要求9所述的方法,其特征在于,還包括由所述二進(jìn)制碼驗證客戶機(jī)代理將與所述二進(jìn)制碼相關(guān)聯(lián)的二進(jìn)制碼標(biāo)識信息發(fā)送到所述二進(jìn)制碼驗證服務(wù);以及從所述二進(jìn)制碼驗證服務(wù)接收對所述二進(jìn)制碼的請求,其中所述二進(jìn)制 碼驗證服務(wù)不具有為所述二進(jìn)制碼存儲的二進(jìn)制碼驗證結(jié)果。
12. 如權(quán)利要求9所述的方法,其特征在于,還包括由所述二進(jìn)制碼驗證客戶機(jī)代理向用戶呈現(xiàn)所述二進(jìn)制碼驗證結(jié)果。
13. 如權(quán)利要求9所述的方法,其特征在于,還包括 由所述二進(jìn)制碼驗證客戶機(jī)代理將新規(guī)則發(fā)送到所述二進(jìn)制碼驗證服務(wù)以更新所述使用規(guī)則集。
14. 一種或多種其上包含在被執(zhí)行時實現(xiàn)如權(quán)利要求9所述的方法的計算機(jī)可讀指令的計算機(jī)可讀介質(zhì)。
15. —種系統(tǒng),包括 二進(jìn)制碼(210);二進(jìn)制碼驗證客戶機(jī)代理(104);以及迮接到所述二進(jìn)制碼驗證客戶機(jī)代理的二進(jìn)制碼驗證服務(wù)(108),所述二進(jìn)制碼驗證服務(wù)響應(yīng)于來自所述二進(jìn)制碼驗證客戶機(jī)代理的二進(jìn)制碼驗 證請求向所述二進(jìn)制碼驗證客戶機(jī)代理提供所述二進(jìn)制碼的二進(jìn)制碼驗證結(jié) 果。
16. 如權(quán)利要求15所述的系統(tǒng),其特征在于,所述二進(jìn)制碼驗證請求 包括與所述二進(jìn)制碼相關(guān)聯(lián)的二進(jìn)制碼標(biāo)識信息,所述二進(jìn)制碼驗證服務(wù)提供 來自存儲了所述二進(jìn)制碼驗證結(jié)果的二進(jìn)制碼驗證服務(wù)數(shù)據(jù)庫的二進(jìn)制碼驗 證結(jié)果。
17. 如權(quán)利要求15所述的系統(tǒng),其特征在于,所述二進(jìn)制碼驗證請求 包括所述二進(jìn)制碼,所述二進(jìn)制碼驗證服務(wù)執(zhí)行所述二進(jìn)制碼的二進(jìn)制碼驗 證。
18. 如權(quán)利要求17所述的系統(tǒng),其特征在于,所述二進(jìn)制碼驗證服務(wù) 將所述二進(jìn)制碼驗證結(jié)果存儲在二進(jìn)制碼驗證服務(wù)數(shù)據(jù)庫中。
19.如權(quán)利要求15所述的系統(tǒng),其特征在于,所述二進(jìn)制碼驗證服務(wù) 從所述客戶機(jī)代理接收新使用規(guī)則并使用所述新使用規(guī)則來更新所述二進(jìn)制 碼驗證服務(wù)處的使用規(guī)則集。
20.如權(quán)利要求19所述的系統(tǒng),其特征在于,所述二進(jìn)制碼驗證服務(wù) 使用已更新的使用規(guī)則集來執(zhí)行存儲在二進(jìn)制碼驗證服務(wù)數(shù)據(jù)庫中的二進(jìn)制 碼的二進(jìn)制碼驗證、更新對應(yīng)于存儲在所述二進(jìn)制碼驗證服務(wù)數(shù)據(jù)庫中的二進(jìn) 制碼的二進(jìn)制碼驗證結(jié)果、以及向所述二進(jìn)制碼驗證客戶機(jī)代理通知所述二進(jìn) 制碼的已更新的二進(jìn)制碼驗證結(jié)果。
全文摘要
在二進(jìn)制碼驗證服務(wù)處從二進(jìn)制碼驗證客戶機(jī)代理接收二進(jìn)制碼。該二進(jìn)制碼驗證服務(wù)執(zhí)行二進(jìn)制碼的二進(jìn)制碼驗證,其中二進(jìn)制碼驗證包括確定該二進(jìn)制碼是否遵從使用規(guī)則集。二進(jìn)制碼驗證服務(wù)將二進(jìn)制碼驗證結(jié)果發(fā)送給二進(jìn)制碼驗證客戶機(jī)代理。
文檔編號G06F17/50GK101663666SQ200880012516
公開日2010年3月3日 申請日期2008年3月11日 優(yōu)先權(quán)日2007年4月18日
發(fā)明者N·加納帕錫, P·本達(dá)普蒂, S·M·C·沙斯特里, V·A·列文 申請人:微軟公司