基于不透明谓词的代码混淆技术研究.doc

资料分类:科技学院 上传会员:番番呀 更新时间:2023-05-17
需要金币1000 个金币 资料包括:完整论文 下载论文
转换比率:金额 X 10=金币数量, 例100元=1000金币 论文字数:21982
折扣与优惠:团购最低可5折优惠 - 了解详情 论文格式:Word格式(*.doc)

摘要:众所周知,软件行业发展迅猛,人们对于软件的各个方面要求都不断提高,从而导致在软件开发中,为了使软件满足更多人更高的需求,也使得其规模与功能复杂度越来越高,但随之而来的是软件公司需要更多的人力,财力以及时间,这些开销也随之增加。因此个别的人以及团体,利用非法手段,俗称逆向工程,从中盗取他人成果,例如程序的核心算法或者是源代码等。在信息共享的时代,软件产品的知识产权(Intellectual Property)保护问题面临重大的挑战。

在历史的长河中,许多学术专家对代码混淆技术进行了深入研究,并将其分为四类,即布局,控制流,数据和预防性混淆,本文后面会对此进行详细讨论。

在目前所有主流代码混淆技术中,不透明谓词混淆技术具有形式简单、不显著增加开销的两个特点,因此它目前在控制流混淆技术中非常的受人喜欢与使用。出于这个原因,本课题的主要方向是控制流混淆中的不透明谓词混淆技术。

如果从实现角度进行分析,一般不透明谓词构造相对简单,但如果要构造令逆向分析者头疼的不透明谓词还是比较艰难,这很大程度上是需要一些更难以理解的复杂算法才能满足的。在本论文中,会利用随机序列以及一些数组相关知识,将基于哈希构造不透明谓词的方法加以改进,让其生成的不透明谓词更简单方便,并且在规律上更难以寻找,可以大幅度减少软件的可读性,使逆向分析人员更难理解源代码的逻辑方向。

在本论文的后面,我会将不透明谓词插入混淆技术应用到现在流行的Android应用程序中,并通过其实例进行强度,弹性,开销三个方面进行测试与分析。

关键词: 逆向工程  不透明谓词  代码混淆  软件保护

 

目录

摘要

Abstract

1.绪论-1

1.1 研究背景-1

1.2 研究意义-2

1.3 课题研究内容和成果-2

1.4 论文结构-2

2.相关工作-4

2.1 Java语言-4

2.2 Android应用逆向工程-4

2.2.1 Android系统-4

2.2.2 APK文件结构-5

2.2.3 Android逆向概述-7

2.2.4 逆向分析技术主要方法-9

2.3 代码混淆-10

2.3.1 代码混淆概述-10

2.3.2 布局混淆-11

2.3.3 数据混淆-11

2.3.4 控制流混淆-12

2.3.5 预防混淆-14

2.4 代码混淆评价指标-14

2.4.1 强度指标-14

2.4.2 耐受力指标-15

2.4.3 执行开销指标-15

2.4.4 隐蔽性指标-16

2.5 本章小结-16

3. 不透明谓词-17

3.1 不透明谓词相关定义-17

3.1.1 不透明谓词-17

3.1.2 陷门不透明谓词-17

3.1.3 不透明方法-17

3.2 不透明谓词的插入方式-18

3.2.1 在分支判断点处插入-18

3.2.2 在顺序执行语句中插入-20

3.3 哈希不透明谓词-21

3.3.1 哈希不透明谓词算法描述-21

3.3.2 如何构造哈希不透明谓词-23

3.3.3 基于哈希不透明谓词改进-23

3.3.4 基于改进后哈希不透明谓词实现-24

3.4 本章小结-36

4.测试分析-37

4.1 测试环境-37

4.2 测试结果与分析-37

4.2.1 强度测试与分析-37

4.2.2 弹性测试与分析-40

4.2.3 开销测试与分析-41

4.3 本章小结-41

5.总结与展望-42

参考文献-43

致 谢-44

相关论文资料:
最新评论
上传会员 番番呀 对本文的描述:本文第2章中首先针对逆向工程和代码混淆这两大块进行学习与拓展,接着第3章中,我们进行代码混淆中不透明谓词混淆进行学习与了解,并在第3章第2节中学习通过哈希函数中除留余数......
发表评论 (我们特别支持正能量传递,您的参与就是我们最好的动力)
注册会员后发表精彩评论奖励积分,积分可以换金币,用于下载需要金币的原创资料。
您的昵称: 验证码: