專利名稱:一種系統(tǒng)啟動項程序的運行處理方法和裝置的制作方法
技術領域:
本發(fā)明涉及計算機技術領域,具體涉及一種系統(tǒng)啟動項程序的運行處理方法,以及一種系統(tǒng)啟動項程序的運行處理裝置。
背景技術:
在系統(tǒng)的啟動過程中,系統(tǒng)會自動運彳丁啟動項中的程序。在啟動項中的程序使用靜態(tài)鏈接的方式加載DLL (Dynamic Link Library,動態(tài)鏈接庫)時,如果所述DLL不存在, 所述啟動項的程序便有可能加載失敗,此時系統(tǒng)會彈出無法找到組件的錯誤提示框,提示用戶因為沒有找到XXX. dlI,無法啟動所述啟動項的程序等信息。例如=TestLoadDll. exe 程序靜態(tài)鏈接了 TestDll. dll文件,當開啟系統(tǒng)時運行TestLoadDll. exe程序,無法找到 TestDll. dll時,系統(tǒng)便會彈出如圖1所示的錯誤提示框。
然而,系統(tǒng)經(jīng)常彈出錯誤提示框,特別是一些不常用的啟動項的錯誤提示框,在一定程度上會給用戶造成干擾。
因此,本領域技術人員需要解決的技術問題是提供一種系統(tǒng)啟動項程序的運行處理機制,能夠避免在計算機開啟時由于啟動項缺少加載文件而彈出提示框給從而用戶造成困擾的問題。發(fā)明內(nèi)容
鑒于上述問題,提出了本發(fā)明以便提供一種克服上述問題或者至少部分地解決上述問題的一種系統(tǒng)啟動項程序的運行處理方法和相應的裝置。
依據(jù)本發(fā)明的一個方面,提供了一種系統(tǒng)啟動項程序的運行處理方法,包括
掃描系統(tǒng)啟動項程序,并獲取所述系統(tǒng)啟動項程序的導入信息;
獲取所述導入信息的靜態(tài)鏈接文件;
在獲取所述導入信息的靜態(tài)鏈接文件失敗時,禁止所述導入信息對應的系統(tǒng)啟動項程序啟動。
可選地,所述獲取導入信息的靜態(tài)鏈接文件的步驟包括
獲取所述導入信息的靜態(tài)鏈接文件的文件名;
在系統(tǒng)的預設位置中查找所述導入信息的靜態(tài)鏈接文件的文件名。
可選地,所述系統(tǒng)啟動項程序的導入信息包括可移植執(zhí)行體文件,所述獲取導入信息的靜態(tài)鏈接文件的文件名的步驟進一步包括
獲取可移植執(zhí)行體文件的DOS頭文件信息,所述DOS頭文件信息包括地址偏移量;
根據(jù)所述地址偏移量獲取所述可移植執(zhí)行體文件的頭文件信息,所述可移植執(zhí)行體文件的頭文件信息包括頭文件的相對虛擬地址;
采用所述頭文件的相對虛擬地址計算所述可移植執(zhí)行體文件的靜態(tài)鏈接文件的文件名的位置;
從所述可移植執(zhí)行體文件的靜態(tài)鏈接文件文件名的位置中獲取所述可移植執(zhí)行體文件的靜態(tài)鏈接文件的文件名。
可選地,所述在獲取導入信息的靜態(tài)鏈接文件失敗時,禁止所述導入信息對應的系統(tǒng)啟動項程序啟動的步驟包括
在查找不到所述導入信息的靜態(tài)鏈接文件的文件名時,禁止所述導入信息對應的系統(tǒng)啟動項程序啟動。
可選地,所述系統(tǒng)的預設位置包括所述靜態(tài)鏈接文件所在目錄,Windows目錄,系統(tǒng)目錄,環(huán)境變量路徑指定的目錄。
根據(jù)本發(fā)明的另一方面,提供了一種系統(tǒng)啟動項程序的運行處理裝置,包括
導入信息獲取模塊,適于掃描系統(tǒng)啟動項程序,并獲取所述系統(tǒng)啟動項程序的導入信息;
靜態(tài)鏈接文件獲取模塊,適于獲取所述導入信息的靜態(tài)鏈接文件;
啟動項禁止模塊,適于在獲取所述導入信息的靜態(tài)鏈接文件失敗時,禁止所述導入信息對應的系統(tǒng)啟動項程序啟動。
可選地,所述靜態(tài)鏈接文件獲取模塊包括
文件名獲取子模塊,適于獲取所述導入信息的靜態(tài)鏈接文件的文件名;
文件名查找子模塊,適于在系統(tǒng)的預設位置中查找所述導入信息的靜態(tài)鏈接文件的文件名。
可選地,所述系統(tǒng)啟動項程序的導入信息包括可移植執(zhí)行體文件,所述文件名獲取子模塊進一步包括
DOS頭文件獲取單元,適于獲取可移植執(zhí)行體文件的DOS頭文件信息,所述DOS頭文件信息包括地址偏移量;
可移植執(zhí)行體文件的頭文件獲取單元,適于根據(jù)所述地址偏移量獲取所述可移植執(zhí)行體文件的頭文件信息,所述可移植執(zhí)行體文件的頭文件信息包括頭文件的相對虛擬地址;
文件名位置獲取單元,適于采用所述頭文件的相對虛擬地址計算所述可移植執(zhí)行體文件的靜態(tài)鏈接文件的文件名的位置;
文件名獲取單元,適于從所述可移植執(zhí)行體文件的靜態(tài)鏈接文件文件名的位置中獲取所述可移植執(zhí)行體文件的靜態(tài)鏈接文件的文件名。
可選地,所述在啟動項禁止模塊包括
啟動項禁止子模塊,適于在查找不到所述導入信息的靜態(tài)鏈接文件的文件名時, 禁止所述導入信息對應的系統(tǒng)啟動項程序啟動。
可選地,所述系統(tǒng)的預設位置包括所述靜態(tài)鏈接文件所在目錄,Windows目錄,系統(tǒng)目錄,環(huán)境變量路徑指定的目錄。
根據(jù)本發(fā)明的一種系統(tǒng)啟動項程序的運行處理方法和裝置可以禁止缺少DLL的系統(tǒng)啟動項程序的開啟,由此解決了在計算機開啟過程中一些自啟動程序因為缺少所依賴的DLL而出現(xiàn)程序錯誤彈框給用戶造成干擾的問題取得了避免錯誤提示框彈出的有益效果O
上述說明僅是本發(fā)明技術方案的概述,為了能夠更清楚了解本發(fā)明的技術手段,5而可依照說明書的內(nèi)容予以實施,并且為了讓本發(fā)明的上述和其它目的、特征和優(yōu)點能夠更明顯易懂,以下特舉本發(fā)明的具體實施方式
。
通過閱讀下文優(yōu)選實施方式的詳細描述,各種其他的優(yōu)點和益處對于本領域普通技術人員將變得清楚明了。附圖僅用于示出優(yōu)選實施方式的目的,而并不認為是對本發(fā)明的限制。而且在整個附圖中,用相同的參考符號表示相同的部件。在附圖中
圖1示出了根據(jù)本發(fā)明一個實施例的一種系統(tǒng)啟動項程序的運行處理機制的錯誤提示框圖2示出了根據(jù)本發(fā)明一個實施例的一種系統(tǒng)啟動項程序的運行處理方法實施例的步驟流程圖3示出了根據(jù)本發(fā)明一個實施例的DLL缺失系統(tǒng)警告框圖4示出了根據(jù)本發(fā)明一個實施例的一種系統(tǒng)啟動項程序的運行處理裝置實施例的結構框圖。
具體實施方式
下面將參照附圖更詳細地描述本公開的示例性實施例。雖然附圖中顯示了本公開的示例性實施例,然而應當理解,可以以各種形式實現(xiàn)本公開而不應被這里闡述的實施例所限制。相反,提供這些實施例是為了能夠更透徹地理解本公開,并 且能夠將本公開的范圍完整的傳達給本領域的技術人員。
本發(fā)明實施例的核心構思之一在于,通過獲取系統(tǒng)啟動項程序的導入信息來查找導入信息的靜態(tài)鏈接文件是否缺失,如果靜態(tài)鏈接文件缺失,則禁止導入信息對應的系統(tǒng)啟動項程序啟動。
參照圖2,示出了根據(jù)本發(fā)明一個實施例的一種系統(tǒng)啟動項程序的運行處理方法實施例的步驟流程圖,具體可以包括以下步驟
步驟201 :掃描系統(tǒng)啟動項程序,并獲取所述系統(tǒng)啟動項程序的導入信息;
其中,所述系統(tǒng)啟動項程序可以包括一個或多個啟動項程序,具體而言,當計算機操作系統(tǒng)完成登錄過程后,進程表中出現(xiàn)了很多的進程,在操作系統(tǒng)啟動的時候會自動加載很多程序,這些計算機操作系統(tǒng)在前臺或者后臺運行的程序稱為啟動項程序,系統(tǒng)啟動項程序通??梢园ㄎ募A類啟動項程序、注冊表鍵值類啟動項程序、子鍵類啟動項程序、 加載服務類啟動項程序等,其中,
文件夾類啟動項程序可以包括“啟動”文件夾以及“All Users”中的自啟動程序文件夾兩種常見的自啟動程序文件夾,其分別位于“documents and Settings-->User-->〔開始〕菜單-->程序”目錄和“documents and Settings-->A11 User-->〔開始〕菜單一一 >程序”目錄下。
注冊表鍵值類啟動項程序可以包括“Load”鍵值、“Userinit”鍵值、“Explorer\ Run”鍵值。
子鍵類啟動項程序可以包括“RunServicesOnce”子鍵、“RunServices”子鍵、 “RunOnce\Setup” 子鍵、“RunOnce” 子鍵以及 “Run” 子鍵。
需要說明的是,“Run”子鍵同時位于 HKEY_CURRENT_USER\Software\Microsoft\ Windows\CurrentVersion\Run 和 HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\ CurrentVersion\Run 下,而 HKEY_CURRNT_USER 和 HKEY_LOCAL_MACHINE 的區(qū)別是前者對于 當前用戶有效,后者對于所有用戶都有效,位于〔HKEY_CURRENT_USER〕根鍵下的Run鍵值緊 接著〔HKEY_LOCAL_MACHINE〕主鍵下的Run鍵值啟動,但兩個鍵值都是在“啟動”文件夾之 前加載。
步驟202 :獲取所述導入信息的靜態(tài)鏈接文件;
在本發(fā)明的一種優(yōu)選實施例中,所述步驟202可以包括如下子步驟
子步驟Sll :獲取所述導入信息的靜態(tài)鏈接文件的文件名;
作為本實施例的一種優(yōu)選示例,所述系統(tǒng)啟動項程序的導入信息可以包括可移植 執(zhí)行體文件(PE文件),PE文件是Win32平臺可執(zhí)行文件的標準格式,常見的EXE、DLL、0CX、 SYS、COM格式的文件都是PE文件。
在具體實現(xiàn)中,程序編寫的過程幾乎都會導入函數(shù),導入函數(shù)就是被程序調(diào)用但 其執(zhí)行代碼又不在調(diào)用程序中的函數(shù),這些函數(shù)的代碼位于一個或多個DLL中,在調(diào)用者 程序中只保留一些函數(shù)信息,例如函數(shù)名及與此函數(shù)相關的DLL名等。另一方面,在操作系 統(tǒng)中,執(zhí)行的代碼在載入內(nèi)存之前,是以文件的方式存放在磁盤中。因此,對于存儲在磁盤 上的PE文件來說,是無法得知導入函數(shù)在內(nèi)存的具體位置,只有PE文件被載入內(nèi)存的時 候,windows loader才會將DLL裝入,并將執(zhí)行導入函數(shù)的指令和PE文件真正的地址聯(lián)系 起來。
PE文件載入內(nèi)存的方式可以從PE文件的結構說起,PE文件的結構參考下表I所 示
表1:PE文件基本結構
DOS MZ HEADER~DOS STUBPE HEADERSECTION TABLESECTION ISECTION 2SECTION...SECTION n
為了兼容早期的DOS操作系統(tǒng),所有的PE文件都是以一個64字節(jié)的DOS頭開始, DOS頭由兩個部分組成MZ文件頭(DOS MZ HEADER)和DOS插樁(DOS STUB)程序。其中, MZ文件頭占據(jù)了 PE文件頭64字節(jié),DOS插樁程序是一個在MS-DOS中可執(zhí)行的代碼,用以代替原來MS-DOS中MZ文件的主體。
PE文件頭(PE HEADER)是PE相關結構IMAGE NT HEADERS的簡稱,其包含了許多PE 裝載器用到的重要域,具體可以包括PE文件標志(Signature)、映像文件頭(FileHeader) 以及可選映像頭(OptionalHeader)。
緊跟PE文件頭的是節(jié)表(SECTION TABLE),節(jié)表的數(shù)量與節(jié)的數(shù)量是一致的,節(jié)緊跟在節(jié)表后,節(jié)中存在著文件真正的內(nèi)容,在PE文件中,代碼、資源,導入表等信息被按照不同的屬性(可讀,可讀寫,可執(zhí)行等)分類放到了不同的節(jié)(SECTION)中,每一個SECTION 的屬性和位置用IMAGE_SECTI0N_HEADER結構描述。多個IMAGE_SECTI0N_HEADER組成一個節(jié)表。由于數(shù)據(jù)是按照屬性在節(jié)中放置,不同用途的數(shù)據(jù)可能被放在同一個節(jié)中,因此可以用一個IMAGE_DATA_D I RECTORY來指明這些數(shù)據(jù)的位置。
作為本實施例的一種優(yōu)選示例,所述獲取導入信息的靜態(tài)鏈接文件的文件名,實際上,就是對PE文件中的導入表進行解析,獲取導入表的靜態(tài)鏈接的DLL名,導入表解析相當于靜態(tài)分析PE文件的結構,主要是讀取到PE文件導入的文件名,即每個文件靜態(tài)鏈接的文件名(如某個EXE靜態(tài)鏈接了某個DLL)。
因此,在本發(fā)明的一種優(yōu)選實施例中,所述子步驟Sll進一步可以包括如下子步驟
子步驟Slll :獲取可移植執(zhí)行體文件的DOS頭文件信息,所述DOS頭文件信息包括地址偏移量;
具體而言,在DOS頭文件中,MZ文件頭可以包括e_lfanew域,e_lfanew為PE頭的離文件頭部的偏移量,指向PE頭文件的位置,通過e_lfanew可以跳過DOS插樁程序而直接定位到PE文件頭。
子步驟S112 :根據(jù)所述地址偏移量獲取所述可移植執(zhí)行體文件的頭文件信息,所述可移植執(zhí)行體文件的頭文件信息包括頭文件的相對虛擬地址;
在具體實現(xiàn)中,PE文件頭中的PE文件標志是一個常量,即“ΡΕ00 ”,它標志著PE文件頭的開始,同時也是PE文件的一個主要標識,可以通過DOS頭中e_lfanew找出PE文件標志的位置,進而確定PE頭文件的位置。
PE文件的節(jié)表中定義了 RVA (Relative Virtual Address,相對虛擬地址),所述 RVA是一個相對于PE文件映射到內(nèi)存的基地址的偏移量,是PE文件中的數(shù)據(jù)、模塊等運行在內(nèi)存中的實際地址相對PE文件裝載到內(nèi)存的基地址之間的距離,例如,如果PE文件裝入虛擬地址(VA)空間的400000h處,且進程從虛址401000h處開始執(zhí)行,表示進程執(zhí)行起始地址的RVA是IOOOh。
子步驟S113 :采用所述頭文件的相對虛擬地址計算所述可移植執(zhí)行體文件的靜態(tài)鏈接文件的文件名的位置;
由于所述PE文件靜態(tài)鏈接文件的文件名在PE文件的導入表中,因此獲取導入表在PE文件中的位置就能獲取到導入表中的靜態(tài)鏈接的DLL名的位置。導入表存在于PE文件的idata節(jié)中,通過RVA可以計算出idata節(jié)的位置,例如RVA值為1000H,PE文件被加載到400000Η,那么idata節(jié)的起始地址為401000H,即導入表的起始地址為401000H。
子步驟S114 :從所述可移植執(zhí)行體文件的靜態(tài)鏈接文件的文件名的位置中獲取所述可移植執(zhí)行體文件的靜態(tài)鏈接文件的文件名。
實際上,導入表是通過一系列IMAGEJMP0RT_DESCRIPT0R結構組成的,IMAGE_ IMP0RT_DESCRIPT0R 由 IMAGE_DATA_D I RECTORY 獲取,每一個 IMAGEJMP0RT_DESCRIPT0R 結構描述一個DLL,IMAGE_IMP0RT_DESCRIPT0R結構中每一個元素保存著DLL的相關信息,其中Name元素表示DLL名稱的RVA,這個RVA指向一個ASCII以空字符結束的字符串,這個字符串就是本結構對應的DLL文件的名字,如KERNEL32. DLL。
子步驟S12 :在系統(tǒng)的預設位置中查找所述導入信息的靜態(tài)鏈接文件的文件名。
作為本實施例的一種優(yōu)選示例,所述系統(tǒng)的預設位置可以包括所述靜態(tài)鏈接文件所在目錄,Windows目錄,系統(tǒng)目錄,環(huán)境變量路徑(path)指定的目錄。
步驟203 :在獲取所述靜態(tài)鏈接文件失敗時,禁止所述靜態(tài)鏈接文件對應的啟動項啟動。
在本發(fā)明的一種優(yōu)選實施例中,所述步驟203可以包括如下子步驟
子步驟S21 :在查找不到所述導入信息的靜態(tài)鏈接文件的文件名時,禁止所述導入信息對應的系統(tǒng)啟動項程序啟動。
具體而言,分別在所述系統(tǒng)的預設位置中查找所述DLL的名稱,如果沒有找到, 則說明所述DLL缺失,系統(tǒng)就可以禁止所述導入消息對應的啟動項啟動。實際上,如果某個PE文件在執(zhí)行過程中在系統(tǒng)的預設位置中找不到其他靜態(tài)鏈接的DLL,系統(tǒng)就會報錯, 例如,運行depends, exe,然后把TestLoadDll. exe拖到depends, exe的窗口中,就可以查看TestLoadDll. exe的導入表中靜態(tài)依賴的DLL信息,參考圖3所示DLL缺失系統(tǒng)警告框圖,如果某個DLL文件(如testdll.dll文件)因改名或者被刪除而無法找到,運行 TestLoadDll. exe就會報錯,接收到系統(tǒng)的報錯警告后,可以禁止缺失的DLL的導入消息對應的啟動項啟動。
在具體實現(xiàn)中,對于注冊表鍵值類啟動項程序或子鍵類啟動項程序等注冊表類啟動項程序,可以通過刪除啟動項程序對應的注冊表值來禁止啟動項,例如,需要刪除 testrun. exe 程序的系統(tǒng)啟動項,可以在 HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\ Windows\CurrentVersio n\Run目錄下查找并刪除啟動項注冊表值的名稱為testrun,數(shù)據(jù)為c:\test\testrun. exe的記錄;對于文件夾類啟動項程序,可以通過預設的白名單機制排除系統(tǒng)中的同名導入文件,避免出現(xiàn)因為某個靜態(tài)鏈接文件丟失引起的多個啟動項被禁止的問題,刪除所述文件類啟動項程序對應的導入文件,從而禁止所述文件類啟動項程序的開啟。
需要說明的是,對于方法實施例,為了簡單描述,故將其都表述為一系列的動作組合,但是本領域技術人員應該知悉,本發(fā)明并不受所描述的動作順序的限制,因為依據(jù)本發(fā)明,某些步驟可以采用其他順序或者同時進行。其次,本領域技術人員也應該知悉,說明書中所描述的實施例均屬于優(yōu)選實施例,所涉及的動作和模塊并不一定是本發(fā)明所必須的。
參照圖4,示出了根據(jù)本發(fā)明一個實施例的一種系統(tǒng)啟動項程序的運行處理裝置實施例的結構框圖,具體可以包括以下模塊
導入信息獲取模塊301,適于掃描系統(tǒng)啟動項程序,并獲取所述系統(tǒng)啟動項程序的導入信息;
靜態(tài)鏈接文件獲取模塊302,適于獲取所述導入信息的靜態(tài)鏈接文件;
在本發(fā)明的一種優(yōu)選實施例中,所述靜態(tài)鏈接文件獲取模塊302可以包括以下子模塊
文件名獲取子模塊,適于獲取所述導入信息的靜態(tài)鏈接文件的文件名;
在本發(fā)明的一種優(yōu)選實施例中,所述系統(tǒng)啟動項程序的導入信息包括可移植執(zhí)行體文件,所述文件名獲取子模塊進一步包括
DOS頭文件獲取單元,適于獲取可移植執(zhí)行體文件的DOS頭文件信息,所述DOS頭文件信息包括地址偏移量;
可移植執(zhí)行體文件的頭文件獲取單元,適于根據(jù)所述地址偏移量獲取所述可移植執(zhí)行體文件的頭文件信息,所述可移植執(zhí)行體文件的頭文件信息包括頭文件的相對虛擬地址;
文件名位置獲取單元,適于采用所述頭文件的相對虛擬地址計算所述可移植執(zhí)行體文件的靜態(tài)鏈接文件的文件名的位置;
文件名獲取單元,適于從所述可移植執(zhí)行體文件的靜態(tài)鏈接文件文件名的位置中獲取所述可移植執(zhí)行體文件的靜態(tài)鏈接文件的文件名。
文件名查找子模塊,適于在系統(tǒng)的預設位置中查找所述導入信息的靜態(tài)鏈接文件的文件名。
作為本實施例的一種優(yōu)選示例,所述系統(tǒng)的預設位置包括所述靜態(tài)鏈接文件所在目錄,Windows目錄,系統(tǒng)目錄,環(huán)境變量路徑指定的目錄。
啟動項禁止模塊303,適于在獲取所述導入信息的靜態(tài)鏈接文件失敗時,禁止所述導入信息對應的系統(tǒng)啟動項程序啟動。
在本發(fā)明的一種優(yōu)選實施例中,所述啟動項禁止模塊303可以包括
啟動項禁止子模塊,適于在查找不到所述導入信息的靜態(tài)鏈接文件的文件名時, 禁止所述導入信息對應的系統(tǒng)啟動項程序啟動。
對于圖4的裝置實施例而言,由于其與圖2的方法實施例基本相似,所以描述的比較簡單,相關之處參見方法實施例的部分說明即可。
在此提供的算法和顯示不與任何特定計算機、虛擬系統(tǒng)或者其它設備固有相關。 各種通用系統(tǒng)也可以與基于在此的示教一起使用。根據(jù)上面的描述,構造這類系統(tǒng)所要求的結構是顯而易見的。此外,本發(fā)明也不針對任何特定編程語言。應當明白,可以利用各種編程語言實現(xiàn)在此描述的本發(fā)明的內(nèi)容,并且上面對特定語言所做的描述是為了披露本發(fā)明的最佳實施方式。
在此處所提供的說明書中,說明了大量具體細節(jié)。然而,能夠理解,本發(fā)明的實施例可以在沒有這些具體細節(jié)的情況下實踐。在一些實例中,并未詳細示出公知的方法、結構和技術,以便不模糊對本說明書的理解。
類似地,應當理解,為了精簡本公開并幫助理解各個發(fā)明方面中的一個或多個,在上面對本發(fā)明的示例性實施例的描述中,本發(fā)明的各個特征有時被一起分組到單個實施例、圖、或者對其的描述中。然而,并不應將該公開的方法解釋成反映如下意圖即所要求保護的本發(fā)明要求比在每個權利要求中所明確記載的特征更多的特征。更確切地說,如下面的權利要求書所反映的那樣,發(fā)明方面在于少于前面公開的單個實施例的所有特征。因此, 遵循具體實施方式
的權利要求書由此明確地并入該具體實施方式
,其中每個權利要求本身都作為本發(fā)明的單獨實施例。
本領域那些技術人員可以理解,可以對實施例中的設備中的模塊進行自適應性地改變并且把它們設置在與該實施例不同的一個或多個設備中??梢园褜嵤├械哪K或單元或組件組合成一個模塊或單元或組件,以及此外可以把它們分成多個子模塊或子單元或子組件。除了這樣的特征和/或過程或者單元中的至少一些是相互排斥之外,可以采用任何組合對本說明書(包括伴隨的權利要求、摘要和附圖)中公開的所有特征以及如此公開的任何方法或者設備的所有過程或單元進行組合。除非另外明確陳述,本說明書(包括伴隨的權利要求、摘要和附圖)中公開的每個特征可以由提供相同、等同或相似目的的替代特征來代替。
此外,本領域的技術人員能夠理解,盡管在此所述的一些實施例包括其它實施例中所包括的某些特征而不是其它特征,但是不同實施例的特征的組合意味著處于本發(fā)明的范圍之內(nèi)并且形成不同的實施例。例如,在下面的權利要求書中,所要求保護的實施例的任意之一都可以以任意的組合方式來使用。
本發(fā)明的各個部件實施例可以以硬件實現(xiàn),或者以在一個或者多個處理器上運行的軟件模塊實現(xiàn),或者以它們的組合實現(xiàn)。本領域的技術人員應當理解,可以在實踐中使用微處理器或者數(shù)字信號處理器(DSP)來實現(xiàn)根據(jù)本發(fā)明實施例的系統(tǒng)啟動項程序的運行處理設備中的一些或者全部部件的一些或者全部功能。本發(fā)明還可以實現(xiàn)為用于執(zhí)行這里所描述的方法的一部分或者全部的設備或者裝置程序(例如,計算機程序和計算機程序產(chǎn)品)。這樣的實現(xiàn)本發(fā)明的程序可以存儲在計算機可讀介質上,或者可以具有一個或者多個信號的形式。這樣的信號可以從因特網(wǎng)網(wǎng)站上下載得到,或者在載體信號上提供,或者以任何其他形式提供。
應該注意的是上述實施例對本發(fā)明進行說明而不是對本發(fā)明進行限制,并且本領域技術人員在不脫離所附權利要求的范圍的情況下可設計出替換實施例。在權利要求中, 不應將位于括號之間的任何參考符號構造成對權利要求的限制。單詞“包含”不排除存在未列在權利要求中的元件或步驟。位于元件之前的單詞“一”或“一個”不排除存在多個這樣的元件。本發(fā)明可以借助于包括有若干不同元件的硬件以及借助于適當編程的計算機來實現(xiàn)。在列舉了若干裝置的單元權利要求中,這些裝置中的若干個可以是通過同一個硬件項來具體體現(xiàn)。單詞第一、第二、以及第三等的使用不表示任何順序??蓪⑦@些單詞解釋為名稱。
權利要求
1.一種系統(tǒng)啟動項程序的運行處理方法,包括 掃描系統(tǒng)啟動項程序,并獲取所述系統(tǒng)啟動項程序的導入信息; 獲取所述導入信息的靜態(tài)鏈接文件; 在獲取所述導入信息的靜態(tài)鏈接文件失敗時,禁止所述導入信息對應的系統(tǒng)啟動項程序啟動。
2.如權利要求I所述的方法,所述獲取導入信息的靜態(tài)鏈接文件的步驟包括 獲取所述導入信息的靜態(tài)鏈接文件的文件名; 在系統(tǒng)的預設位置中查找所述導入信息的靜態(tài)鏈接文件的文件名。
3.如權利要求2所述的方法,所述系統(tǒng)啟動項程序的導入信息包括可移植執(zhí)行體文件,所述獲取導入信息的靜態(tài)鏈接文件的文件名的步驟進一歩包括 獲取可移植執(zhí)行體文件的DOS頭文件信息,所述DOS頭文件信息包括地址偏移量; 根據(jù)所述地址偏移量獲取所述可移植執(zhí)行體文件的頭文件信息,所述可移植執(zhí)行體文件的頭文件信息包括頭文件的相對虛擬地址; 采用所述頭文件的相對虛擬地址計算所述可移植執(zhí)行體文件的靜態(tài)鏈接文件的文件名的位置; 從所述可移植執(zhí)行體文件的靜態(tài)鏈接文件文件名的位置中獲取所述可移植執(zhí)行體文件的靜態(tài)鏈接文件的文件名。
4.如權利要求2或3所述的方法,所述在獲取導入信息的靜態(tài)鏈接文件失敗時,禁止所述導入信息對應的系統(tǒng)啟動項程序啟動的步驟包括 在查找不到所述導入信息的靜態(tài)鏈接文件的文件名時,禁止所述導入信息對應的系統(tǒng)啟動項程序啟動。
5.如權利要求2所述的方法,所述系統(tǒng)的預設位置包括所述靜態(tài)鏈接文件所在目錄,Windows目錄,系統(tǒng)目錄,環(huán)境變量路徑指定的目錄。
6.一種系統(tǒng)啟動項程序的運行處理裝置,包括 導入信息獲取模塊,適于掃描系統(tǒng)啟動項程序,并獲取所述系統(tǒng)啟動項程序的導入信息; 靜態(tài)鏈接文件獲取模塊,適于獲取所述導入信息的靜態(tài)鏈接文件; 啟動項禁止模塊,適于在獲取所述導入信息的靜態(tài)鏈接文件失敗時,禁止所述導入信息對應的系統(tǒng)啟動項程序啟動。
7.如權利要求6所述的裝置,所述靜態(tài)鏈接文件獲取模塊包括 文件名獲取子模塊,適于獲取所述導入信息的靜態(tài)鏈接文件的文件名; 文件名查找子模塊,適于在系統(tǒng)的預設位置中查找所述導入信息的靜態(tài)鏈接文件的文件名。
8.如權利要求7所述的裝置,所述系統(tǒng)啟動項程序的導入信息包括可移植執(zhí)行體文件,所述文件名獲取子模塊進一歩包括 DOS頭文件獲取單元,適于獲取可移植執(zhí)行體文件的DOS頭文件信息,所述DOS頭文件信息包括地址偏移量; 可移植執(zhí)行體文件的頭文件獲取單元,適于根據(jù)所述地址偏移量獲取所述可移植執(zhí)行體文件的頭文件信息,所述可移植執(zhí)行體文件的頭文件信息包括頭文件的相對虛擬地址;文件名位置獲取單元,適于采用所述頭文件的相對虛擬地址計算所述可移植執(zhí)行體文件的靜態(tài)鏈接文件的文件名的位置; 文件名獲取單元,適于從所述可移植執(zhí)行體文件的靜態(tài)鏈接文件文件名的位置中獲取所述可移植執(zhí)行體文件的靜態(tài)鏈接文件的文件名。
9.如權利要求7或8所述的裝置,所述在啟動項禁止模塊包括 啟動項禁止子模塊,適于在查找不到所述導入信息的靜態(tài)鏈接文件的文件名吋,禁止所述導入信息對應的系統(tǒng)啟動項程序啟動。
10.如權利要求7所述的裝置,所述系統(tǒng)的預設位置包括所述靜態(tài)鏈接文件所在目錄,Windows目錄,系統(tǒng)目錄,環(huán)境變量路徑指定的目錄。
全文摘要
本發(fā)明公開了一種系統(tǒng)啟動項程序的運行處理方法和裝置,其中所述方法包括掃描系統(tǒng)啟動項程序,并獲取所述系統(tǒng)啟動項程序的導入信息;獲取所述導入信息的靜態(tài)鏈接文件;在獲取所述導入信息的靜態(tài)鏈接文件失敗時,禁止所述導入信息對應的系統(tǒng)啟動項程序啟動。本發(fā)明能夠避免在計算機開啟時由于啟動項缺少加載文件而彈出提示框給從而用戶造成困擾的問題。
文檔編號G06F11/00GK102981869SQ20121043655
公開日2013年3月20日 申請日期2012年11月5日 優(yōu)先權日2012年11月5日
發(fā)明者劉智鋒, 張波 申請人:北京奇虎科技有限公司, 奇智軟件(北京)有限公司