1.一種基于模糊聚類的軟件保護(hù)虛擬機(jī)攻擊方法,其特征在于,包括以下步驟:
1)選取被軟件保護(hù)虛擬機(jī)保護(hù)的程序段,采用反匯編引擎對程序進(jìn)行反匯編處理;
2)提取程序執(zhí)行流,將程序放入OllyDbg中執(zhí)行到程序結(jié)束位置,用OllyScript記錄被保護(hù)程序執(zhí)行的所有指令和執(zhí)行該指令后的寄存器的狀態(tài),將記錄的內(nèi)容作為數(shù)據(jù)流文件,以<指令,操作數(shù)1,操作數(shù)2,通用寄存器,標(biāo)志位寄存器>的格式按行存儲在本地文件中;
3)分析步驟2)產(chǎn)生的數(shù)據(jù)流文件,提取Handler,具體如下采用遞歸方案對其進(jìn)行裁剪;實(shí)施過程為:如果數(shù)據(jù)流文件第N行數(shù)據(jù)和第M行數(shù)據(jù)在執(zhí)行前后其通用寄存器和標(biāo)志位寄存器的值完全相同,那么第M-1行到第N行之間的數(shù)據(jù)流可以剪除,直接用NOP指令填充;其中M大于N,M和N為自然數(shù);
4)采用N-Perm算法提取各個Handler的特征值;
5)對Handler按照特征值相關(guān)性采用模糊聚類算法進(jìn)行聚類;
6)得到上述的聚類結(jié)果之后,分析其語義,帶入分析程序段,給出被保護(hù)程序的流程圖,從而實(shí)現(xiàn)對軟件保護(hù)虛擬機(jī)的攻擊。
2.根據(jù)權(quán)利要求1所述的基于模糊聚類的軟件保護(hù)虛擬機(jī)攻擊方法,其特征在于,所述步驟1)中采用反匯編引擎ODDisassm對程序進(jìn)行反匯編處理。
3.根據(jù)權(quán)利要求1所述的基于模糊聚類的軟件保護(hù)虛擬機(jī)攻擊方法,其特征在于,所述步驟3)中,提取Handler為采用遞歸方案對垃圾指令進(jìn)行剪裁,其遞歸方案為分析從前到后每一條指令,如果在此過程中,指令塊在執(zhí)行前后,對通用寄存器和標(biāo)志位寄存器的值沒有任何影響的話那么即可將第一條指令和第N條指令之間的區(qū)塊認(rèn)定為無效Handler,用NOP對其進(jìn)行填充。
4.根據(jù)權(quán)利要求1所述的基于模糊聚類的軟件保護(hù)虛擬機(jī)攻擊方法,其特征在于,所述步驟5)中對Handler特征值進(jìn)行聚類分析采用FCM模糊聚類算法。