1.基于虛擬函數(shù)表替換的軟件安全防護(hù)方法,其特征在于,包括如下步驟,
步驟1、根據(jù)預(yù)加載的核心功能函數(shù)特征,獲取存放有核心二進(jìn)制代碼的加密文件;
步驟2、在當(dāng)前運(yùn)行環(huán)境,尋找應(yīng)用程序接口函數(shù)地址和動(dòng)態(tài)鏈接庫(kù)地址,將尋找到的應(yīng)用程序接口函數(shù)地址和動(dòng)態(tài)鏈接庫(kù)地址,按虛函數(shù)表中虛函數(shù)存放結(jié)構(gòu)保存于各個(gè)虛函數(shù)自定義的數(shù)據(jù)結(jié)構(gòu)中;
步驟3、定義代理類類型指針指向存放有應(yīng)用程序接口函數(shù)地址和動(dòng)態(tài)鏈接庫(kù)地址的數(shù)據(jù)結(jié)構(gòu),獲得重構(gòu)的虛函數(shù)表數(shù)據(jù)結(jié)構(gòu);
步驟4、獲取運(yùn)行內(nèi)存,根據(jù)重構(gòu)的虛函數(shù)表數(shù)據(jù)結(jié)構(gòu)和加密文件,通過(guò)在運(yùn)行內(nèi)存中替換代理類類型指針的地址,加載核心二進(jìn)制代碼至運(yùn)行內(nèi)存,從而在加密防護(hù)下正常運(yùn)行程序。
2.根據(jù)權(quán)利要求1所述的基于虛擬函數(shù)表替換的軟件安全防護(hù)方法,其特征在于,所述的步驟1,包括如下步驟
步驟1.1、加載核心功能函數(shù)代碼到內(nèi)存,獲取核心功能函數(shù)的首地址和體空間大??;
步驟1.2、根據(jù)首地址和體空間大小,讀取內(nèi)存中的核心二進(jìn)制代碼,將核心二進(jìn)制代碼存入文件;
步驟1.3、利用MD5加密算法計(jì)算文件的哈希值;
步驟1.4、利用文件的哈希值作為密鑰,采用RC4加密算法獲得加密文件。
3.根據(jù)權(quán)利要求1所述的基于虛擬函數(shù)表替換的軟件安全防護(hù)方法,其特征在于,所述的步驟2,包括如下步驟
步驟2.1、在當(dāng)前運(yùn)行環(huán)境,虛函數(shù)表類中按照核心功能的系統(tǒng)函數(shù)調(diào)用順序,分別依次調(diào)用相同的應(yīng)用程序接口函數(shù)和動(dòng)態(tài)鏈接庫(kù),找出應(yīng)用程序接口函數(shù)地址和動(dòng)態(tài)鏈接庫(kù)地址;
步驟2.2、將尋找到的應(yīng)用程序接口函數(shù)地址和動(dòng)態(tài)鏈接庫(kù)地址,按虛函數(shù)表中虛函數(shù)存放結(jié)構(gòu)保存于各個(gè)虛函數(shù)自定義的數(shù)據(jù)結(jié)構(gòu)中。
4.根據(jù)權(quán)利要求1所述的基于虛擬函數(shù)表替換的軟件安全防護(hù)方法,其特征在于,所述的步驟4,包括如下步驟,
步驟4.1、獲取運(yùn)行內(nèi)存,解密并讀取加密文件內(nèi)的核心二進(jìn)制代碼至運(yùn)行內(nèi)存;
步驟4.2、調(diào)用重構(gòu)的虛函數(shù)表數(shù)據(jù)結(jié)構(gòu)作為運(yùn)行參數(shù)代入運(yùn)行內(nèi)存,替換代理類類型指針的地址;
步驟4.3、重新加載核心二進(jìn)制代碼至運(yùn)行內(nèi)存,從而在加密防護(hù)下正常運(yùn)行程序。