1.一種軟件異常檢測方法,其特征在于,所述方法包括:
在軟件運行正常時,若檢測到終端當前處于資源空閑狀態,則基于至少兩個檢測算法,對所述軟件包含的全部文件進行異常檢測;
在所述軟件發生異常時,確定所述軟件發生異常時的崩潰進程,獲取所述崩潰進程的調用棧,所述調用棧記錄了所述崩潰進程調用的文件,若所述調用的文件中存在屬性信息錯誤的文件,則確定所述崩潰進程調用的文件中存在異常文件,基于所述至少兩個檢測算法,對所述軟件包含的全部文件進行異常檢測。
2.根據權利要求1所述的方法,其特征在于,所述基于至少兩個檢測算法,對所述軟件包含的全部文件進行異常檢測,包括:
采用第一檢測算法,在所述全部文件中確定不存在異常的第一文件;
采用檢測準確度大于所述第一檢測算法的第二檢測算法,在第二文件中確定存在異常的文件,所述第二文件為所述全部文件中除所述第一文件之外的其他文件;
將所述存在異常的文件確定為所述異常文件。
3.根據權利要求要求1所述的方法,其特征在于,所述方法還包括:
確定所述軟件發生異常時的崩潰進程之后,若未檢測到所述軟件的崩潰進程調用的文件中存在異常文件,則上報異常信息。
4.根據權利要求1至3中任一權利要求所述的方法,其特征在于,所述方法還包括:
若在所述軟件運行正常時檢測到所述全部文件中存在異常文件,且所述異常文件未導致所述軟件發生異常,則在對所述軟件中每一個文件進行異常檢測結束時,采用第一系統優先級,對所述異常文件進行修復;
若在所述軟件發生異常時檢測到所述全部文件中存在異常文件,則在對所述軟件中每一個文件進行異常檢測結束時,采用第二系統優先級,對所述異常文件進行修復;
其中,所述第一系統優先級的級別低于所述第二系統優先級。
5.根據權利要求1至3中任一權利要求所述的方法,其特征在于,所述方法還包括:
在確定所述全部文件中的異常文件后,獲取所述異常文件的屬性信息;
根據所述屬性信息,確定所述異常文件的異常原因;
對所述終端的內存以及硬盤進行故障檢測,得到檢測結果;
將所述異常原因和所述檢測結果保存在本地。
6.根據權利要求4所述的方法,其特征在于,所述對所述異常文件進行修復,包括:
判斷所述異常文件的屬性信息中的當前版本信息與所述軟件的當前軟件版本信息是否一致;
若所述異常文件的當前版本信息與所述軟件的當前軟件版本信息一致,則在本地備份的所述軟件的安裝包文件中,獲取與所述異常文件同名的第一替換文件,以所述第一替換文件替換所述異常文件;
若所述異常文件的當前版本信息與所述軟件的當前軟件版本信息不一致,則從服務器獲取與所述異常文件同名且版本最新的第二替換文件,以所述第二替換文件替換所述異常文件。
7.根據權利要求4所述的方法,其特征在于,所述對所述異常文件進行修復,包括:
若對所述異常文件進行修復失敗,則在檢測到所述終端執行重啟操作后,在重啟過程中再次執行對所述異常文件進行修復的過程。
8.根據權利要求4所述的方法,其特征在于,所述方法還包括:
檢測所述軟件或所述軟件中包含的任一文件是否存在可更新版本;
若所述軟件存在可更新版本,則從服務器獲取所述可更新版本的軟件安裝包,并根據所述軟件安裝包對所述軟件進行升級;
若所述任一文件存在可更新版本,則從服務器獲取所述可更新版本的文件安裝包,并根據所述文件安裝包對所述任一文件進行升級。
9.根據權利要求1至3中任一權利要求所述的方法,其特征在于,所述方法還包括:
當所述軟件運行正常時,在對所述軟件包含的全部文件進行異常檢測的過程中,若尚未發現異常文件且所述終端由所述資源空閑狀態轉變為資源繁忙狀態,則終止進行異常檢測;
當所述終端再次處于所述資源空閑狀態時,繼續對所述全部文件中未被檢測的文件進行異常檢測。
10.一種軟件異常檢測裝置,其特征在于,所述裝置包括:
檢測模塊,用于在軟件運行正常時,若檢測到終端當前處于資源空閑狀態,則基于至少兩個檢測算法,對所述軟件全部文件進行異常檢測;
第一確定模塊,用于在所述軟件發生異常時,確定所述軟件發生異常時的崩潰進程;
第一獲取模塊,用于獲取所述崩潰進程的調用棧,所述調用棧記錄了所述崩潰進程調用的文件;
第二確定模塊,用于在所述調用的文件中存在屬性信息錯誤的文件時,確定所述崩潰進程調用的文件中存在異常文件;
所述檢測模塊,還用于在確定所述崩潰進程調用的文件中存在異常文件時,基于所述至少兩個檢測算法,對所述軟件全部文件進行異常檢測。
11.根據權利要求10所述的裝置,其特征在于,所述檢測模塊,基于至少兩個檢測算法,對所述軟件全部文件進行異常檢測時,用于采用第一檢測算法,在所述全部文件中確定不存在異常的第一文件;采用檢測準確度大于所述第一檢測算法的第二檢測算法,在第二文件中確定存在異常的文件,所述第二文件為所述全部文件中除所述第一文件之外的其他文件;將所述存在異常的文件確定為所述異常文件。
12.根據權利要求要求10所述的裝置,其特征在于,所述裝置還包括:
上報模塊,用于確定所述軟件發生異常時的崩潰進程之后,若未檢測到所述軟件的崩潰進程調用的文件中存在異常文件,則上報異常信息。
13.根據權利要求10至12中任一權利要求所述的裝置,其特征在于,所述裝置還包括:
修復模塊,用于若在所述軟件運行正常時檢測到所述全部文件中存在異常文件,且所述異常文件未導致所述軟件發生異常,則在對所述軟件中每一個文件進行異常檢測結束時,采用第一系統優先級,對所述異常文件進行修復;
所述修復模塊,還用于若在所述軟件發生異常時檢測到所述全部文件中存在異常文件,則在對所述軟件中每一個文件進行異常檢測結束時,采用第二系統優先級,對所述異常文件進行修復;
其中,所述第一系統優先級的級別低于所述第二系統優先級。
14.根據權利要求10至12中任一權利要求所述的裝置,其特征在于,所述裝置還包括:
第二獲取模塊,用于在確定所述全部文件中的異常文件后,獲取所述異常文件的屬性信息;
第三確定模塊,用于根據所述屬性信息,確定所述異常文件的異常原因;
所述檢測模塊,還用于對所述終端的內存以及硬盤進行故障檢測,得到檢測結果;
保存模塊,用于將所述異常原因和所述檢測結果保存在本地。
15.根據權利要求13所述的裝置,其特征在于,所述修復模塊,用于判斷所述異常文件的屬性信息中的當前版本信息與所述軟件的當前軟件版本信息是否一致;若所述異常文件的當前版本信息與所述軟件的當前軟件版本信息一致,則在本地備份的所述軟件的安裝包文件中,獲取與所述異常文件同名的第一替換文件,以所述第一替換文件替換所述異常文件;若所述異常文件的當前版本信息與所述軟件的當前軟件版本信息不一致,則從服務器獲取與所述異常文件同名且版本最新的第二替換文件,以所述第二替換文件替換所述異常文件。
16.根據權利要求13所述的裝置,其特征在于,所述修復模塊,用于若對所述異常文件進行修復失敗,則在檢測到所述終端執行重啟操作后,在重啟過程中再次執行對所述異常文件進行修復的過程。
17.根據權利要求13所述的裝置,其特征在于,所述裝置還包括:
升級模塊,用于檢測所述軟件或所述軟件中包含的任一文件是否存在可更新版本;若所述軟件存在可更新版本,則從服務器獲取所述可更新版本的軟件安裝包,并根據所述軟件安裝包對所述軟件進行升級;
所述升級模塊,還用于若所述任一文件存在可更新版本,則從服務器獲取所述可更新版本的文件安裝包,并根據所述文件安裝包對所述任一文件進行升級。
18.根據權利要求10至12中任一權利要求所述的裝置,其特征在于,所述檢測模塊,還用于當所述軟件運行正常時,在對所述軟件全部文件進行異常檢測的過程中,若尚未發現異常文件且所述終端由所述資源空閑狀態轉變為資源繁忙狀態,則終止進行異常檢測;當所述終端再次處于所述資源空閑狀態時,繼續對所述全部文件中未被檢測的文件進行異常檢測。