利索能及
我要发布
收藏
专利号: 2024103800445
申请人: 广东工业大学
专利类型:发明专利
专利状态:已下证
更新日期:2024-12-02
缴费截止日期: 暂无
联系人

摘要:

权利要求书:

1.一种基于LGF‑Net的代码混淆有效性评估方法,其特征在于,包括:

S1:对于数据集中的每一个程序,首先获取该程序的源代码对应的已混淆代码和反混淆代码;然后从源代码、已混淆代码和反混淆代码中提取特征,得到第一特征集合F;接着为F赋予一个混淆效果等级y,并将F与其对应的y表示为一个序偶;最后把所有的序偶构成一个代码混淆有效性评估数据集,称为第一数据集D,并将D划分为训练集和测试集;

S2:构建代码混淆有效性评估模型LGF‑Net;LGF‑Net通过局部特征模块LFTM进行特征选择和处理,通过全局特征模块GFTM进行特征融合;具体步骤包括:S21:对于第一特征集合F,使用批量归一化操作BN对F进行归一化处理,得到第二特征集合 ;

S22:将 传入到LFTM进行特征选择和处理:LFTM包括特征处理模块FT、第一决策步、第二决策步和第三决策步;首先使用特征处理模块FT对 进行特征处理;然后经过第一决策步、第二决策步和第三决策步三个决策步的特征选择和处理后,得到每个决策步对应的输出,分别为第一特征向量 、第二特征向量 和第三特征向量 ;

S23:将 传入到GFTM进行特征融合:GFTM包括第一残差连接块Resblock1、第二残差连接块Resblock2和第三残差连接块Resblock3;通过Resblock1、Resblock2和Resblock3三个残差连接块逐步将 与 、和 进行特征融合,最终得到GFTM的输出 ;

S24:使用全连接层FC对 进行转换,并通过Softmax函数对转换后的结果进行处理,得到最终的预测结果;

S3:训练S2中构建好的代码混淆有效性评估模型LGF‑Net:分别使用训练集和测试集对LGF‑Net进行训练和测试,得到训练好的LGF‑Net;

S4:首先使用待评估的代码混淆算法混淆程序中的源代码,得到对应的已混淆代码;然后使用反混淆工具对该已混淆代码进行反混淆,得到对应的反混淆代码;接着根据S1中提取特征的做法,从源代码、已混淆代码和反混淆代码中提取特征,得到对应的F;最后将F输入到S3中训练好的LGF‑Net中,得到待评估的代码混淆算法的混淆效果等级。

2.根据权利要求1所述的基于LGF‑Net的代码混淆有效性评估方法,其特征在于,所述的将 传入到LFTM进行特征选择和处理的步骤包括有:S221:使用特征处理模块FT对第二特征集合 进行特征处理:首先,将 输入到基本块block中,通过全连接层FC和批量归一化操作BN对 进行特征抽象化和归一化处理,并使用门控线性单元GLU对归一化处理后的结果进行特征处理,得到block的输出 ;然后,将 输入到第一残差基本块SVRblock1中,通过FC和BN对 进行特征抽象化和归一化处理,并使用GLU对归一化处理后的结果进行特征处理,将特征处理的结果与 进行逐元素求和后与α相乘,得到SVRblock1的输出 ;最后将 输入到第二残差基本块SVRblock2中,通过SVRblock2的特征处理后,得到SVRblock2的输出 ;

S222:通过第一决策步进行特征选择和处理:首先,将S221中所述的 输入到注意力模块AT中,使用自注意力机制SA对 进行特征权重分配,通过FC和BN进行特征抽象化和归一化处理,并将归一化处理后的结果与初始的先决选择 进行点乘操作,使用Sparsemax函数计算生成第一决策步的掩码 ,同时通过 来更新当前第一决策步的先决选择 ;

然后将 与 相乘来实现第一决策步的特征选择,并将特征选择后的结果传入到FT中进行特征处理,得到第一决策步中FT的输出 ;最后使用ReLu函数对 进行非线性转换,得到第一特征向量 ;

S223:通过第二决策步进行特征选择和处理:首先,将 输入到AT中,使用SA对 进行特征权重分配,通过FC和BN进行特征抽象化和归一化处理,并将归一化处理后的结果与第一决策步的先决选择 进行点乘操作,使用Sparsemax函数计算生成第二决策步的掩码,同时通过 来更新当前第二决策步的先决选择 ;然后将 与 相乘来实现第二决策步的特征选择,并将特征选择后的结果传入到FT中进行特征处理,得到第二决策步中FT的输出 ;最后使用ReLu函数对 进行非线性转换,得到第二特征向量 ;

S224:通过第三决策步进行特征选择和处理:首先,将 输入到AT中,使用SA对 进行特征权重分配,通过FC和BN进行特征抽象化和归一化处理,并将归一化处理后的结果与第二决策步的先决选择 进行点乘操作,使用Sparsemax函数计算生成第三决策步的掩码,同时通过 来更新当前第三决策步的先决选择 ;然后将 与 相乘来实现第三决策步的特征选择,并将特征选择后的结果传入到FT中进行特征处理,得到第三决策步中FT的输出 ;最后使用ReLu函数对 进行非线性转换,得到第三特征向量 。

3.根据权利要求1所述的基于LGF‑Net的代码混淆有效性评估方法,其特征在于,所述的将 传入到GFTM进行特征融合的步骤包括有:S231:使用第一残差连接块Resblock1对第二特征集合 进行特征融合:首先,将 输入到Resblock1中,将 与第一特征向量 进行向量拼接;然后通过第一全连接层 对拼接后的特征向量进行特征抽象化,并使用ReLu函数进行非线性转换;最后通过第二全连接层对非线性转换后的结果进行特征抽象化,并将 与特征抽象化后的结果进行逐元素求和,得到Resblock1的输出 ;

S232:使用第二残差连接块Resblock2对 进行特征融合:首先,将 输入到Resblock2中,将 与第二特征向量 进行向量拼接;然后通过 对拼接后的特征向量进行特征抽象化,并使用ReLu函数进行非线性转换;最后通过 对非线性转换后的结果进行特征抽象化,并将 与特征抽象化后的结果进行逐元素求和,得到Resblock2的输出 ;

S233:使用第三残差连接块Resblock3对 进行特征融合:首先,将 输入到Resblock3中,将 与第三特征向量 进行向量拼接;然后通过 对拼接后的特征向量进行特征抽象化,并使用ReLu函数进行非线性转换;最后通过 对非线性转换后的结果进行特征抽象化,并将 与特征抽象化后的结果进行逐元素求和,得到Resblock3的输出 ; 即为GFTM的输出 。

4.根据权利要求2所述的基于LGF‑Net的代码混淆有效性评估方法,其特征在于,所述的 和 的计算公式为:

在上式中, 代表第m残差基本块的输出,代表门控线性单元GLU,代表批量归一化操作BN,代表全连接层FC,代表特征向量逐元素求和,为预防模型方差过于剧烈变化的系数;其中,m的取值为1或者2;为基本块block的输出。

5.根据权利要求2所述的基于LGF‑Net的代码混淆有效性评估方法,其特征在于,所述的 、 和 以及 、和 的计算公式为:其中,掩码MASK的计算公式如下:

在上式中, 代表第t决策步的掩码MASK, 代表Sparsemax函数, 代

表第t‑1决策步的先决选择,代表批量归一化操作BN,代表全连接层FC,代表自注意力机制SA, 代表第t‑1决策步中FT的输出;其中,t的取值为1或者2或者3;初始的先决选择为一个全1的向量;初始决策步中FT的输出 为S221中的 ;

其中,先决选择 的计算公式如下:

在上式中,代表第t决策步的先决选择,先决选择是指过去所有决策步中特征的使用情况;是一个标量,用于控制特征在决策步中的使用情况; 代表第t决策步的掩码MASK;其中,t的取值为1或者2或者3。

6.根据权利要求3 所述的基于LGF‑Net的代码混淆有效性评估方法,其特征在于,所述的 、 和 的计算公式为

在上式中, 代表第k残差连接块的输出, 代表第二全连接层, 代表ReLu函数,代表第一全连接层, 代表向量拼接操作,代表第k特征向量, 代表特征向量逐元素求和;其中,k的取值为1或者2或者3; 为第二特征集合 。

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的代码混淆有效性评估方法的步骤。