1.一种基于LGF-Net的代码混淆有效性评估方法,其特征在于,包括:S1:对于数据集中的每一个程序,首先获取该程序的源代码对应的已混淆代码和反混淆代码;然后从源代码、已混淆代码和反混淆代码中提取特征,得到第一特征集合F;接着为F赋予一个混淆效果等级y,并将F与其对应的y表示为一个序偶;最后把所有的序偶构成一个代码混淆有效性评估数据集,称为第一数据集D,并将D划分为训练集和测试集;
S2:构建代码混淆有效性评估模型LGF-Net;LGF-Net通过局部特征模块LFTM进行特征选择和处理,通过全局特征模块GFTM进行特征融合;具体步骤包括:S21:对于第一特征集合F,使用批量归一化操作BN对F进行归一化处理,得到第二特征集合S22:将
S23:将
S24:使用全连接层FC对
S3:训练S2中构建好的代码混淆有效性评估模型LGF-Net:分别使用训练集和测试集对LGF-Net进行训练和测试,得到训练好的LGF-Net;
S4:首先使用待评估的代码混淆算法混淆程序中的源代码,得到对应的已混淆代码;然后使用反混淆工具对该已混淆代码进行反混淆,得到对应的反混淆代码;接着根据S1中提取特征的做法,从源代码、已混淆代码和反混淆代码中提取特征,得到对应的F;最后将F输入到S3中训练好的LGF-Net中,得到待评估的代码混淆算法的混淆效果等级。
2.根据权利要求1所述的基于LGF-Net的代码混淆有效性评估方法,其特征在于,所述的将S221:使用特征处理模块FT对第二特征集合
S222:通过第一决策步进行特征选择和处理:首先,将S221中所述的S223:通过第二决策步进行特征选择和处理:首先,将
S224:通过第三决策步进行特征选择和处理:首先,将
3.根据权利要求1所述的基于LGF-Net的代码混淆有效性评估方法,其特征在于,所述的将S231:使用第一残差连接块Resblock
S232:使用第二残差连接块Resblock
S233:使用第三残差连接块Resblock
4.根据权利要求2所述的基于LGF-Net的代码混淆有效性评估方法,其特征在于,所述的在上式中,
5.根据权利要求2所述的基于LGF-Net的代码混淆有效性评估方法,其特征在于,所述的其中,掩码MASK的计算公式如下:
在上式中,
其中,先决选择
在上式中,
6.根据权利要求3 所述的基于LGF-Net的代码混淆有效性评估方法,其特征在于,所述的在上式中,
7.一种基于LGF-Net的代码混淆有效性评估系统,用于运行权利要求1-6任一所述的基于LGF-Net的代码混淆有效性评估方法,其特征在于,包括数据预处理模块、代码混淆有效性评估模型构建模块、代码混淆有效性评估模型训练模块、代码混淆有效性评估模块:所述数据预处理模块:对于数据集中的每一个程序,首先获取该程序的源代码对应的已混淆代码和反混淆代码;然后从源代码、已混淆代码和反混淆代码中提取特征,得到第一特征集合;接着为第一特征集合赋予一个混淆效果等级,并将第一特征集合与其混淆效果等级表示为一个序偶;最后把所有的序偶构成一个代码混淆有效性评估数据集,称为第一数据集,并将第一数据集划分为训练集和测试集;
所述代码混淆有效性评估模型构建模块:构建代码混淆有效性评估模型LGF-Net:LGF-Net通过局部特征模块进行特征选择和处理,通过全局特征模块进行特征融合;
所述代码混淆有效性评估模型训练模块:分别使用训练集和测试集对LGF-Net进行训练和测试,得到训练好的LGF-Net;
所述代码混淆有效性评估模块:首先使用待评估的代码混淆算法混淆程序中的源代码,得到对应的已混淆代码;然后使用反混淆工具对该已混淆代码进行反混淆,得到对应的反混淆代码;接着根据所述数据预处理模块中提取特征的做法,从源代码、已混淆代码和反混淆代码中提取特征,得到对应的第一特征集合;最后将第一特征集合输入到训练好的LGF-Net中,得到待评估的代码混淆算法的混淆效果等级。
8.一种计算机设备,包括存储器和处理器,所述存储器存储有计算机程序,其特征在于,所述处理器执行所述计算机程序时实现权利要求1-6任一所述的基于LGF-Net的代码混淆有效性评估方法的步骤。
9.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现权利要求1-6任一所述的基于LGF-Net的代码混淆有效性评估方法的步骤。