專利名稱:模塊化軟件移除方法
技術領域:
本文描述的主題的實施例總體涉及軟件模塊管理。更具體
地,本主題的實施例涉及執(zhí)行后軟件移除。
背景技術:
某些軟件指令可能包含算法,所述算法自身為專有、秘密 或機密的,即便該算法的輸出并不是專有、秘、密或機密的。這在包含 軟件指令的存儲器模塊作為包含輸出信息的系統(tǒng)傳輸?shù)囊徊糠直惶?供給不受信任方的情況下尤其是個問題。例如,產(chǎn)生檢查和的專有方 法可在軟件中實施。產(chǎn)生的檢查和可用于檢查系統(tǒng)或包含該系統(tǒng)的物 體的某些特征。然而優(yōu)選地,檢查和的公式4匕方法應保持未公開以防 止對檢查和的偽造或篡改。生成檢查和而不向存儲檢查和的計算機系 統(tǒng)提供生成方法是困難的。類似地,加密指令有時可用于計算機系統(tǒng)以產(chǎn)生用于安全 數(shù)據(jù)通信的密鑰對。由于各種原因,有時候生成密鑰對而不公開生成 密鑰對的算法或指令集是有利的。因此,提供一種產(chǎn)生軟件指令的結 果而不泄露軟件指令的計算機系統(tǒng)是有利的。
發(fā)明內容
提供了一種管理代碼模塊的方法,所述代碼模塊為計算機 系統(tǒng)生成輸出信息。所述方法包括在計算機系統(tǒng)中搜索輸出信息;如 果輸出信息沒有被搜索步驟檢測到,執(zhí)行代碼模塊;響應于執(zhí)行代碼 模塊生成輸出信息;以及響應于生成輸出信息從計算機系統(tǒng)移除代碼模塊。還提供了一種管理代碼模塊的方法,所述代碼模塊適于生 成用于基于車輛的計算機系統(tǒng)的輸出信息。所述方法包括在計算機系 統(tǒng)中搜索代碼模塊;如果搜索步驟檢測到代碼模塊,執(zhí)行代碼模塊; 響應于執(zhí)行代碼模塊生成輸出信息;以及隨后從計算機系統(tǒng)移除代碼模塊。
還提供了一種運行車輛的車載計算機系統(tǒng)的方法,所述方 法包括執(zhí)行計算機系統(tǒng)的代碼模塊以產(chǎn)生車輛特有的輸出信息;確認 在計算機系統(tǒng)中輸出信息的存在;以及在確i人輸出信息存在之后從計算機系統(tǒng)移除代碼模塊。
提供此概要以簡單形式介紹了概念的選擇,其將在下面的 詳細描述中進一 步詳述。此概要不試圖確定要求保護主題的關鍵特征 或本質特征,也不試圖用于輔助確定要求保護主題的范圍。
結合附圖考慮時,通過參考詳細描述和權利要求使本主題 可被更完全地理解,其中在所有附圖中相同附圖標記代表相同元件。
圖1是計算機系統(tǒng)的示意性圖示;以及
圖2是移除執(zhí)行后的代碼模塊的方法的實施例圖。
具體實施方式
下列詳細描述在本質上僅為說明性的,并不試圖限制本主 題的實施例或此類實施例的應用和使用。如本文所使用的,術語"示 例性"意味著"作為例子,實例或舉例說明。"本文描述的任何實施 不是必須解釋為優(yōu)選于或優(yōu)于其他實施。此外,并不試圖通過前面的 技術領域,背景技術,發(fā)明內容或下面的具體實施方式
中存在的明示 或暗示的理論對本發(fā)明進行約束。
本文通過功能和/或邏輯塊部件,并參考可由各種計算部 件或裝置執(zhí)行的操作、處理任務以及功能的符號表示描述了技術和工 藝。此類操作,任務,以及功能有時指的是被計算機執(zhí)行,計算機化, 軟件執(zhí)行,或計算機執(zhí)行。而且,圖中所示的各種塊部件可由配置成 執(zhí)行特定功能的任意數(shù)量的硬件,軟件,和/或固件部件實現(xiàn)。例如, 系統(tǒng)或部件的一個實施例可采用各種集成電路部件,例如,存儲器元 件,數(shù)字信號處理元件,邏輯元件,查詢表,等等,所述部件可在一 個或多個微處理器或其他控制裝置的控制下執(zhí)行多種功能。
圖1示出了計算機系統(tǒng)1的一個實施例,所述計算機系統(tǒng) 1包括第一存儲器模塊10,第二存儲器模塊20,處理器30,以及聯(lián) 接部件的總線40。計算機系統(tǒng)1的實際實施還可具有支持傳統(tǒng)功能和5操作的附加的硬件,固件,和/或軟件元件。為了簡潔,計算機體系結 構,加密,計算機程序設計的傳統(tǒng)方面,以及計算機系統(tǒng)l的其他功 能方面(以及計算機系統(tǒng)1的獨立操作部件)在本文中將不詳述。
第一存儲器模塊IO可以在代碼模塊存儲位置12包含代碼 模塊。類似地,第二存儲器模塊20如下所述可包含輸出信息存儲位 置22??偩€40可允許處理器30和存儲器模塊10, 20交換信息。優(yōu) 選地,執(zhí)行存儲在代碼模塊存儲位置12的代碼模塊,產(chǎn)生存儲在輸 出信息存儲位置22的輸出信息。在執(zhí)行代碼模塊之后,將所述代碼 模塊從代碼模塊存儲位置12擦除(即,刪除和移除),如下更詳細地 描述。代碼模塊的移除可緊隨在執(zhí)行之后,或可在搜索并成功探測到 所需輸出信息之后發(fā)生。在一些實施例中,在代碼模塊的移除之前, 可為了完整性和/或可靠性評估輸出信息。如果需要的話,代碼模塊在 移除之前可多次運行。
存儲在代碼模塊存儲位置12的代碼模塊優(yōu)選地為能夠由 處理器30執(zhí)行的模塊化軟件段。如果適合于實施的系統(tǒng),代碼模塊 可利用所示處理器30(或多處理器)實施為用于系統(tǒng)1的任何適當語 言或指令集。因為代碼模塊的模塊化,存儲在系統(tǒng)1中的所述存儲器 模塊或其他位置中的其他代碼模塊(未示出)可引用或調用該代碼模 塊,或者如果代碼模塊已經(jīng)被移除,其他代碼才莫塊的執(zhí)行可繼續(xù)而不 中斷系統(tǒng)。
存儲在輸出信息存儲位置22的輸出信息可為由代碼模塊 生成并可用于系統(tǒng)1的任何類型的信息。如一個例子,對于包括加密 算法的代碼模塊,相應的輸出信息可為用于安全地與其他計算機系統(tǒng) 通信的密鑰對。
經(jīng)常地,計算機系統(tǒng)1在更大的系統(tǒng)中實施或嵌入更大的 系統(tǒng)中,用于控制或操作更大的系統(tǒng)的部件或處理。計算機系統(tǒng)l的 一個此類應用可為車輛。在計算機系統(tǒng)1置于車輛中的情況下,車輛 信息的某些方面(例如包含子部件序列號信息,或其他車輛識別信息 的清單)可實施為輸出信息。如另一個例子,獨特或識別可靠性信息 可包括輸出信息。同樣地,在實施例中,如果需要的話,車輛的初始 里程表讀數(shù)可包括輸出信息和其他信息。如另一個例子,代碼模塊可 為車輛的各部件生成標定信息,標定信息可由計算機系統(tǒng)存儲。此后,可執(zhí)行代碼模塊的移除以使標定值不能改變。固定標定信息可用于減 小用戶介入可能將車輛改變?yōu)椴幌M蚯芳训臓顟B(tài)的可能性。還可以 考慮這些例子的結合。
盡管第一和第二存儲器模塊10, 20示出并描述為分立元 件,但是如果需要的話,單一存儲器模塊可包含代碼模塊存儲位置12 和輸出信息存儲位置22二者。進一步地,第一和第二存儲器模塊10, 20在某些實施例中可為大存儲器裝置或模塊的子部件。因此,盡管為 了舉例說明目的分開繪制,但是存儲器模塊之間的人為分隔不必如此 實施。類似地,盡管總線40僅示出為連接某些部件,但是如果需要 的話,其他部件也可為計算機系統(tǒng)1的一部分。
盡管參考了存儲在某些存儲位置12的代碼模塊,包括代 碼模塊的算法,指令或其他信息不特別限于代碼,例如目標代碼或機 器代碼,而是可為適合于計算機系統(tǒng)1的任何種類的指令。因此,指 令可為適合于實施例的任何適于處理器或適于系統(tǒng)的語言,格式,類 型,和/或大小。類似地,置于輸出信息存儲位置22的輸出信息可為 任何可用或所需的信息組。因此,盡管公開了包括加密信息,對稱和 非對稱密鑰對,標定信息,可靠性信息,以及里程表信息的某些類型, 其他類型也在預期中,例如列舉車輛的部件或實施計算機系統(tǒng)的其他 目標的清單信息。
結合圖2中示出的方法或處理101的使用描述系統(tǒng)1的操 作。有關方法101執(zhí)行的各種任務可由軟件,硬件,固件或其任意組 合執(zhí)行。為了舉例說明目的,方法101的下列描述可涉及有關圖1的 上述元件。實踐中,處理101的部分可由所述系統(tǒng)的不同元件拍J亍, 例如存儲器模塊10, 20,處理器30或總線40。應認識到的是方法101 可包括任意數(shù)量的附加或可替換任務,圖2所示的任務不需要以所示 順序執(zhí)行,方法101可結合到更綜合的程序或方法中,所述程序或方 法具有在本文并不詳述的附加功能。
計算機系統(tǒng)l響應于指令可在其文件系統(tǒng)或其他存儲器儲 存機構檢測或搜索(任務110)存儲在輸出信息存儲位置22的某些輸 出信息的存在。取決于實施例,這種檢查可在系統(tǒng)l每次激活時進行、 基于時間或激活間隔周期地進行或者通過用戶界面激發(fā)。輸出信息的 檢測可為這樣的指示符,所述指示符指示代碼模塊已經(jīng)成功執(zhí)行,并且如果該代碼模塊尚未被移除則應從系統(tǒng)移除該代碼模塊。另外,在 一些實施例中,輸出信息可被檢測以確定其在代碼模塊從系統(tǒng)移除之 前是完整的。在搜索或檢測之后,方法101可確定在計算機系統(tǒng)中是否 存在所需輸出信息(任務112)。在輸出信息在檢測過程中沒有被檢測 到的情況下,計算機系統(tǒng)1通過處理器30可執(zhí)行(任務116)代碼模 塊,由此生成所需輸出信息。代碼模塊的執(zhí)行產(chǎn)生輸出信息,所述輸 出信息優(yōu)選地存儲在輸出信息存儲位置22。在代碼模塊的執(zhí)行(任務116)之后,輸出信息存儲位置 22優(yōu)選地被檢測(任務118)以確定特定輸出信息是否完整。輸出信 息的完整性可為這樣的指示符,所述指示符指示代碼模塊由處理器30 成功執(zhí)行。完整的輸出信息可由檢查和,或信息自檢確認。例如,在 期望64個32比特單元的序列的信息的情況下,完整性可通過檢查指 示完整和成功執(zhí)行的標志,指示完整單元數(shù)量的計數(shù)器,和/或以零位 (null)結束的序列的存在而確認。另外,每個單元可被檢查以驗證每個 單元實際上是32位大小。在各種原因中,不完整的輸出信息可由計 算機系統(tǒng)1的提前停用導致。如果輸出信息被確定(任務120)為不完整,代碼模塊可 被重新執(zhí)行(任務116),輸出信息隨后重新檢測(任務118)。由任 務116, 118和120限定的循環(huán)可重復直到輸出信息被驗證為完整, 或直到方法101超時。確認(任務120)輸出信息完整之后,代碼模 塊被移除(任務122)。代碼模塊從代碼模塊存儲位置12的移除可如系統(tǒng)所需或 適合于系統(tǒng)而完成。代碼模塊的移除對應于代碼模塊的擦除,其通過 刪除代碼模塊,卸載代碼模塊,重新格式化或改寫代碼模塊的存儲位 置,磁性擦除,或足以從計算機系統(tǒng)清除代碼模塊的任何其他程序。 優(yōu)選地,代碼模塊的移除是不可恢復的;然而,某些實施例可以可恢 復的方式擦除,刪除,和/或移除代碼模塊。因此,在某些實施例中,"移除代碼模塊"可實施為刪除 包含代碼模塊和/或代碼模塊指令的計算機系統(tǒng)文件。在某些實施例
中,尤其是存儲器模塊10實施為閃存的實施例中,存儲器可從另一 個源刷新以改寫代碼模塊。這種改寫可導致之前指定的默認存儲器模式在代碼模塊存儲位置12改寫代碼模塊。改寫代碼模塊的存儲位置
可被完成以防止代碼模塊的刪除后恢復。如所述,在某些實施例中,移除代碼模塊可包括改寫代碼 模塊存儲位置12。這種改寫可通過將一定模式或隨機序列的信息在對 應于代碼模塊存儲位置12的地址或位置寫入存儲器模塊10。此外, 改寫代碼模塊存儲位置12可由用戶指定或通過其他指定,不受限制 地一次或多次以計算機系統(tǒng)1所特有的方式^L行。而且,多種移除方 法有時可以在相同移除程序中實施,例如刪除包含代碼^^莫塊的文件, 刷新存儲器模塊10,并隨后以隨機比特信息多次改寫代碼模塊存儲位 置12。在一些實施例中,計算機系統(tǒng)1可在移除代碼模塊存儲位 置12之前執(zhí)行附加指令。這種執(zhí)行可導致代碼模塊存儲位置12的預 先檢測。在某些移除模式存在的情況下,如果需要的話,系統(tǒng)l可忽 略移除的步驟。然而,在一些實施例中,每次為輸出信息執(zhí)行計算機 系統(tǒng)的檢測時,不執(zhí)行這種檢查,并且代碼沖莫塊存儲位置12可被重 復地刪除或改寫或以其他方式擦除。在某些實施例中,在完整輸出信息的檢測(任務120)之 后,系統(tǒng)1可連同代碼模塊的移除(任務122),或單獨地從中進一步 消除導致搜索輸出信息的指令,由此減少在啟動或正常操作過程中執(zhí) 行的步驟數(shù)量。完整輸出信息的檢測之后的代碼模塊的移除可為方法 101的最終步驟124。在輸出信息存儲位置12檢測到(任務112)所需輸出信息 的情況下,優(yōu)選地檢測以確定(任務114)完整性,如上所述。如果 任務114確定了輸出信息不完整,那么方法101可進行到任務116, 并以上述方式繼續(xù)。然而在輸出信息被確認為完整的情況下,代碼模 塊的移除(任務122)可通過前述任何技術和方法(包括其組合)在 后面進行。 —些實施例可采取方法101的可替換方法。在這種可替換 實施例中,計算機系統(tǒng)1可為代碼模塊自身的存在檢測(任務130) 文件系統(tǒng),所述代碼模塊可存儲在代碼模塊存儲位置12。代碼模塊在 代碼模塊存儲位置12存在的檢測可指示代碼模塊沒有被成功執(zhí)行, 因為否則該代碼模塊已經(jīng)從計算機系統(tǒng)1移除(如上所述)。
9
因此,代替搜索輸出信息,計算機系統(tǒng)1可被檢測(任務 130)以確定(任務132)代碼模塊自身是否存在。如果代碼模塊不存 在,方法101可終止(任務134)。在發(fā)現(xiàn)代碼模塊的情況下,可如上 所述為輸出信息的完整性檢測輸出信息存儲位置22,并具有如上所述 隨后的步驟。缺少輸出信息在其完成確定(任務120)過程中可被認 為是不完整輸出信息。盡管在前面的詳細描述中展示了至少 一個示例性實施例, 應認識到的是本文所述的大量示例性實施例不以任何方式限制要求 保護的主題的范圍,應用性或配置。而是,前面的詳細描述將為本領 域技術人員提供方便的路徑圖以應用所述實施例。應理解的是,可作 出元件的功能和安置的各種改變,只要不脫離權利要求限定的范圍, 所述范圍包括在提交此專利申請時已知的等價物和可預見的等價物。
10
權利要求
1.一種管理代碼模塊的方法,所述代碼模塊為計算機系統(tǒng)生成輸出信息,所述方法包括在所述計算機系統(tǒng)中搜索所述輸出信息;如果所述輸出信息沒有被所述搜索步驟檢測到,則執(zhí)行所述代碼模塊;響應于執(zhí)行所述代碼模塊生成所述輸出信息;以及響應于生成所述輸出信息從所述計算機系統(tǒng)移除所述代碼模塊。
2. 根據(jù)權利要求1所述的方法,其特征在于,所述輸出信息包括 加密密鑰信息,所述代碼模塊產(chǎn)生加密信息。
3. 根據(jù)權利要求2所述的方法,其特征在于,所述加密信息包括 密鑰對信息。
4. 根據(jù)權利要求1所述的方法,其特征在于,所述計算機系統(tǒng)置 于車輛中。
5. 根據(jù)權利要求4所述的方法,其特征在于,所述輸出信息包括 用于操作所述車輛的標定信息。
6. 根據(jù)權利要求4所述的方法,其特征在于,所述輸出信息包括 用于識別所述車輛部件的可靠性信息。
7. 根據(jù)權利要求4所述的方法,其特征在于,所述輸出信息包括 用于所述車輛的里程表信息。
8. 根據(jù)權利要求1所述的方法,其特征在于,移除所述代碼模塊 包括刪除對應于所述代碼模塊的文件。
9. 根據(jù)權利要求1所述的方法,其特征在于,移除所述代碼模塊 包括刷新對應于所述代碼模塊的存儲位置的存儲器地址。
10. —種管理代碼模塊的方法,所述代碼模塊適于生成用于基于 車輛的計算機系統(tǒng)的輸出信息,所述方法包括在所述計算機系統(tǒng)中搜索所述代碼模塊; 如果所述搜索步驟檢測到代碼模塊,則執(zhí)行所述代碼模塊; 響應于執(zhí)行所述代碼模塊生成輸出信息;以及 隨后從所述計算機系統(tǒng)移除所述代碼模塊。
11. 根據(jù)權利要求IO所述的方法,進一步包括在移除所述代碼模 塊之前為了完整性檢測所述輸出信息。
12. 根據(jù)權利要求11所述的方法,進一步包括如果所述檢測步驟 檢測到不完整的輸出信息則重新執(zhí)行所述代碼模塊。
13. 根據(jù)權利要求12所述的方法,進一步包括在重新執(zhí)行所述代 碼模塊之后為了完整性重新檢測所述輸出信息。
14. 根據(jù)權利要求IO所述的方法,進一步包括在執(zhí)行所述代碼模 塊之后搜索所述輸出信息。
15. 根據(jù)權利要求10所述的方法,其特征在于,從所述計算機系 統(tǒng)移除所述代碼模塊包括在文件系統(tǒng)中檢測所述代碼模塊的位置。
16. 根據(jù)權利要求15所述的方法,其特征在于,從所述計算機系 統(tǒng)移除所述代碼模塊進一步包括在所述代碼才莫塊的位置改寫所述文 件系統(tǒng)。
17. 根據(jù)權利要求16所述的方法,其特征在于,在所述代碼模塊 的位置改寫所述文件系統(tǒng)包括以比特模式改寫所述位置多于一次,由 此防止所述代碼模塊的恢復。
18. —種操作車輛的車載計算機系統(tǒng)的方法,所述方法包括 執(zhí)行所述計算機系統(tǒng)的代碼模塊以產(chǎn)生所述車輛特有的輸出信自.確認在所述計算機系統(tǒng)中所述輸出信息的存在;以及 在確認所述輸出信息存在之后從所述計算機系統(tǒng)移除所述代碼 模塊。
19. 根據(jù)權利要求18所述的方法,進一步包括在移除所述代碼模 塊之前為完整性檢測所述輸出信息。
20. 根據(jù)權利要求19所述的方法,其特征在于,檢測所述輸出信息導致不完整的輸出信息的確定;以及 所述方法進一步包括響應于所述不完整的輸出信息的確定重新 執(zhí)行所述代碼模塊。
全文摘要
本發(fā)明涉及模塊化軟件移除方法,具體而言提供了一種管理代碼模塊的方法,所述代碼模塊為計算機系統(tǒng)生成輸出信息,所述方法包括在計算機系統(tǒng)中搜索輸出信息;如果輸出信息沒有被搜索步驟檢測到,則執(zhí)行代碼模塊;響應于執(zhí)行代碼模塊生成輸出信息;以及響應于生成輸出信息從計算機系統(tǒng)移除代碼模塊。
文檔編號G06F9/445GK101661399SQ20091016748
公開日2010年3月3日 申請日期2009年8月25日 優(yōu)先權日2008年8月25日
發(fā)明者A·I·阿爾拉巴迪, T·M·P·卡茨伯格 申請人:通用汽車環(huán)球科技運作公司