首页 专利交易 科技果 科技人才 科技服务 国际服务 商标交易 会员权益 IP管家助手 需求市场 关于龙图腾
 /  免费注册
到顶部 到底部
清空 搜索

一种结合MD5与序列到序列模型的代码混淆方法及系统 

买专利卖专利找龙图腾,真高效! 查专利查商标用IPTOP,全免费!专利年费监控用IP管家,真方便!

申请/专利权人:广东工业大学

摘要:本发明公布了一种结合MD5与序列到序列模型的代码混淆方法及系统,具体步骤包括构建常量数据集、构造编码器字典和解码器字典、数据预处理、构建和训练一个序列到序列模型、构造解密函数、构造不透明谓词、插入不透明谓词和解密函数以及编译生成可执行应用程序。本发明结合MD5散列算法和序列到序列模型作为加解密算法,通过对表达式中的常量进行加解密来构造不透明谓词,以实现代码混淆。将表达式中的常量作为明文,使用MD5散列算法对明文进行加密,利用MD5散列算法的单向性,使生成的密文难以被逆向求解,增强不透明谓词抗静态分析的能力;使用序列到序列模型对密文进行解密,将密文到明文的映射以模型权重的形式进行保存,提升了不透明谓词的安全性。本发明公布的代码混淆方法可有效保护程序执行逻辑,增强程序抗逆向分析的能力。

主权项:1.一种结合MD5与序列到序列模型的代码混淆方法,其特征在于,包括:第一步,构建常量数据集:对于待混淆源程序的分支语句中的表达式,获取该表达式中的任意字符串常量和数值型常量作为第一明文,其中数值型常量包括:整型常量、单精度浮点型常量和双精度浮点型常量;然后对第一明文进行加盐处理,得到第二明文;接着使用MD5散列算法对第二明文加密后再添加对应的类型标识符,生成密文;最后为每一对密文和第一明文构造一个第一序偶,所有的第一序偶构建为一个常量数据集;第二步,构造编码器字典和解码器字典:根据常量数据集中所有第一序偶的密文构造编码器字典,根据常量数据集中所有第一序偶的第一明文构造解码器字典,然后自定义一个起始符和一个结束符并加入至解码器字典;第三步,数据预处理:对于常量数据集中的每一个第一序偶,首先在第一序偶的第一明文的最后面加上第二步中的结束符,得到第三明文;然后依次检索得到密文中的所有字符在编码器字典中的编号,构成第一编号序列,并且依次检索得到第三明文中的所有字符在解码器字典中的编号,构成第二编号序列;接着对第一编号序列中的编号进行One-hot编码,构成第一向量序列,对第二编号序列中的编号进行One-hot编码,构成第二向量序列;最后根据第一向量序列和第二向量序列构造一个第二序偶;第四步,构建和训练一个序列到序列模型:以GRU作为编码器,GRU和全连接层作为解码器,构建一个序列到序列模型;将所有的第二序偶作为训练集,经过训练后得到一个序列到序列模型;具体步骤如下:(1)以GRU作为序列到序列模型的编码器;GRU的计算公式为: 其中,、和分别依次为第t个时刻的重置门、更新门和候选状态,为第t个时刻的隐藏状态,为第t-1个时刻的隐藏状态,为第t个时刻编码器的输入,即第一向量序列中的第t个列向量,、和分别依次为重置门权重矩阵、更新门权重矩阵和候选状态权重矩阵,、和分别依次为重置门偏置项、更新门偏置项和候选状态偏置项;当中的所有都已输入至编码器后,结束编码,并将最后时刻的作为中间状态c;(2)以GRU和全连接层作为序列到序列模型的解码器;GRU的计算公式为: 全连接层的计算公式为: 其中,、和分别依次为第k个时刻的重置门、更新门和候选状态,为第k个时刻的隐藏状态,为第k个时刻解码器的输出,为第k-1个时刻的隐藏状态,为第k个时刻解码器的输入,即第k-1个时刻解码器的输出对应的One-hot编码向量,、、和分别依次为重置门权重矩阵、更新门权重矩阵、候选状态权重矩阵和全连接层权重矩阵,、、和分别依次为重置门偏置项、更新门偏置项、候选状态偏置项和全连接层偏置项;解码器以中间状态c作为初始时刻的隐藏状态,以起始符的One-hot编码向量作为初始时刻解码器的输入,当解码器输出结束符时,结束解码;(3)首先初始化整个序列到序列模型的模型权重,包括权重矩阵、、、、、、和偏置项、、、、、、,设置模型相关的超参数,包括GRU的隐藏层数量、GRU隐藏层单元的数量、批处理的大小、学习率的大小和训练的迭代次数;然后使用所有的第二序偶作为训练集训练模型,其中以第一向量序列作为输入序列,以第二向量序列作为目标序列;最后直到达到预设的训练迭代次数Epoch后停止训练;若此时模型对训练集中的所有输入序列都正确预测为对应的目标序列,则结束训练并保存模型权重;否则增加训练迭代次数Epoch并重新训练模型;第五步,构造解密函数:根据第四步中的序列到序列模型,构造一个将密文解密为第一明文的函数,该函数称为解密函数;第六步,构造不透明谓词:将待混淆源程序中的分支语句的表达式中的字符串常量和数值型常量替换为对解密函数的调用,完成常量替换后的表达式即为不透明谓词;第七步,插入不透明谓词和解密函数:将不透明谓词替代待混淆源程序中的分支语句的原有表达式,并将解密函数插入至待混淆源程序中任意不影响编译的位置,得到混淆后的源程序;第八步,编译生成可执行应用程序:将混淆后的源程序编译成可执行应用程序。

全文数据:

权利要求:

百度查询: 广东工业大学 一种结合MD5与序列到序列模型的代码混淆方法及系统

免责声明
1、本报告根据公开、合法渠道获得相关数据和信息,力求客观、公正,但并不保证数据的最终完整性和准确性。
2、报告中的分析和结论仅反映本公司于发布本报告当日的职业理解,仅供参考使用,不能作为本公司承担任何法律责任的依据或者凭证。