结合机器学习与单向保留前缀加密算法的分支混淆方法-计算机应用技术专业论文.docxVIP

结合机器学习与单向保留前缀加密算法的分支混淆方法-计算机应用技术专业论文.docx

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
万方数据 万方数据 南开大学学位论文原创性声明 本人郑重声明:所呈交的学位论文,是本人在导师指导下进行研究工作所取得的研究 成果。除文中已经注明引用的内容外,本学位论文的研究成果不包含任何他人创作的、已 公开发表或者没有公开发表的作品的内容。对本论文所涉及的研究工作做出贡献的其他个 人和集体,均已在文中以明确方式标明。本学位论文原创性声明的法律责任由本人承担。 学位论文作者签名: 王晓初 2015 年 5 月 29 日 非公开学位论文标注说明 (本页表中填写内容须打印) 根据南开大学有关规定,非公开学位论文须经指导教师同意、作者本人申请和相关部 门批准方能标注。未经批准的均为公开学位论文,公开学位论文本说明为空白。 论文题目 申请密级 □限制(≤2 年) □秘密(≤10 年) □机密(≤20 年) 保密期限 20 年 月 日至 20 年 月 日 审批表编号 批准日期 20 年 月 日 南开大学学位评定委员会办公室盖章(有效) 注:限制★2 年(可少于 2 年);秘密★10 年(可少于 10 年);机密★20 年(可少于 20 年) 摘 摘 要 摘 要 代码混淆技术是对软件进行保护的一种常用手段,它通过隐藏关键行为或对 代码进行复杂化处理,使得程序更加难以理解,从而增加了攻击者逆向分析的 难度。程序中包含了大量的分支控制信息。从二进制的角度看,它们以比较指 令和条件跳转指令的形式出现,这些指令决定着程序的执行轨迹,逆向分析者 可以利用暴露的分支控制信息获取程序的核心模块。因此,对程序的关键分支 控制信息的保护尤为重要。 当前,基于分支控制信息本身的混淆是混淆技术的一个难点,原因在于它 们难于隐藏并且易于被反混淆工具进行逆向推理。基于前缀集合的单向保留前 缀加密算法可以实现对分支的保护,但是由于求取前缀集合只能适用于正整数 分支控制信息,同时在进行加密过程中容易暴露加密的长度,因此具有一定的 局限性。本文提出了一种结合机器学习与单向保留前缀加密算法的分支混淆方 法,分别利用人工神经网络和朴素贝叶斯分类器实现对分支控制信息的分类, 从而使基于非等于关系的分支信息转化为等于关系的分支信息。在此基础上, 利用单向保留前缀加密算法对分支两侧的变量或常量进行加密,该方案可以实 现对实数域内任意的分支控制信息进行混淆,其逆向分析的难度等价于对单向 函数的逆向计算以及对分类器的分类过程进行逆向分析。 对于该混淆方案整体性能的评估,本文利用二进制分析平台 BitBlaze 进行 了抗攻击性测试,经过对程序进行动态跟踪以及静态分析,发现混淆后的程序 无法利用约束求解工具推导出与输入路径相反的可行解,因此具有较强的抗攻 击性。同时,对于程序执行的性能,本文利用标准测试集 SPEC CPU2006 中的 程序作为测试样本,对程序中的独立分支信息或循环结构中的分支信息进行混 淆。实验表明,分类器可以实现准确的分类效果,同时,在时间开销和空间开 销等方面性能良好。因此,本文提出的混淆方案在不仅具有较高安全性,同时 也具有一定的实用价值。 关键词:代码混淆; 人工神经网络; 朴素贝叶斯; 单向保留前缀加密 I Abst Abstract Abstract Code obfuscation technology is a commonly used method to protect software. It makes the program more difficult to understand by hiding key behavior or making code more complicated, so that it increases the difficulty of reverse analysis for the attacker. The program contains a great deal of branch control information. From the point of view on binary, they appear in a way of comparison instruction and conditional jump instruction. These instructions determine the execution trace of program. Reverse analyzer can obtain the core module of a program by using exposed branch control information. Therefore, it is particularly important to protect the key b

您可能关注的文档

文档评论(0)

131****9843 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档