1.一種保護文件的方法,包括:
對于進行文件修改操作的進程,判斷該進程是否使用指定加密算法對文件進行加密處理;
如果該進程使用指定加密算法對文件進行加密處理,則利用鉤子函數(shù)導出所述指定加密算法所使用的密鑰并保存;
當需要時,根據(jù)所述指定加密算法和所保存密鑰對被加密處理的文件進行解密處理。
2.如權利要求1所述的方法,其中,所述判斷該進程是否使用指定加密算法對文件進行加密處理包括:
在該進程中注入預先指定的動態(tài)鏈接庫DLL,由該DLL掃描并判斷該進程所調用的第三方加解密庫中和/或該進程本身的代碼中是否包含所述指定加密算法的特征碼;
如果該進程所調用的第三方加解密庫中包含所述指定加密算法的特征碼,或者,該進程本身的代碼中包含所述指定加密算法的特征碼,則確定該進程使用指定加密算法對文件進行加密處理。
3.如權利要求2所述的方法,其中,
如果該進程所調用的第三方加解密庫中包含所述指定加密算法的特征碼,則所述利用鉤子函數(shù)導出所述指定加密算法所使用的密鑰包括:
則利用鉤子函數(shù)HOOK所述第三方加解密庫的導出接口以攔截到所述指定加密算法所使用的密鑰。
4.如權利要求2所述的方法,其中,
如果該進程本身的代碼中包含所述指定加密算法的特征碼,則所述用鉤子函數(shù)導出所述指定加密算法所使用的密鑰包括:
在所述指定加密算法的特征碼所在位置處設置硬件執(zhí)行斷點或INT3斷點,當該進程執(zhí)行到所設置的斷點處時觸發(fā)異常,進而由處理異常的鉤子函數(shù)從CPU寄存器和/或堆棧中的上下文信息中找出所述指定加密算法所使用的密鑰。
5.如權利要求1所述的方法,其中,所述指定加密算法為對稱加密算法。
6.一種保護文件的裝置,包括:
加密判斷單元,適于對于進行文件修改操作的進程,判斷該進程是否使用指定加密算法對文件進行加密處理;
密鑰獲取單元,適于當加密判斷單元判斷出該進程使用指定加密算法對文件進行加密處理時,利用鉤子函數(shù)導出所述指定加密算法所使用的密鑰并保存;
文件恢復單元,適于在需要時,根據(jù)所述指定加密算法和所保存密鑰對被加密處理的文件進行解密處理。
7.如權利要求6所述的裝置,其中,
所述加密判斷單元,適于在該進程中注入預先指定的動態(tài)鏈接庫DLL,由該DLL掃描并判斷該進程所調用的第三方加解密庫中和/或該進程本身的代碼中是否包含所述指定加密算法的特征碼;如果該進程所調用的第三方加解密庫中包含所述指定加密算法的特征碼,或者,該進程本身的代碼中包含所述指定加密算法的特征碼,則確定該進程使用指定加密算法對文件進行加密處理。
8.如權利要求7所述的裝置,其中,
所述密鑰獲取單元,適于當該進程所調用的第三方加解密庫中包含所述指定加密算法的特征碼時,利用鉤子函數(shù)HOOK所述第三方加解密庫的導出接口以攔截到所述指定加密算法所使用的密鑰。
9.如權利要求7所述的裝置,其中,
所述密鑰獲取單元,適于當該進程本身的代碼中包含所述指定加密算法的特征碼時,在所述指定加密算法的特征碼所在位置處設置硬件執(zhí)行斷點或INT3斷點,當該進程執(zhí)行到所設置的斷點處時觸發(fā)異常,進而由處理異常的鉤子函數(shù)從CPU寄存器和/或堆棧中的上下文信息中找出所述指定加密算法所使用的密鑰。
10.一種計算設備,其中,該計算設備包括如權利要求6-9中任一項所述的保護文件的裝置。