分类筛选
分类筛选:

关于二进制论文范文资料 与二进制软件防篡改技术有关论文参考文献

版权:原创标记原创 主题:二进制范文 科目:职称论文 2024-01-26

《二进制软件防篡改技术》:本文是一篇关于二进制论文范文,可作为相关选题参考,和写作参考文献。

摘 要:随着软件安全性问题日益严重,软件防篡改技术作为软件保护的重要手段之一,越来越得到国内外研究者的重视.本文首先介绍软件*和保护的基本概念,针对软件防篡改的主要目标,即能够准确地检测到正常功能之外的对程序进行的异常修改行为;对这种修改行为进行恰当的、有效的反应,重点介绍了几种基于“检测-响应”的二进制软件防篡改技术,对其具体实现方法进行分类和总结,详细分析和讨论各类方法的优劣和局限性,提出了一套评价体系,并展望了软件防篡改技术的发展前景,提出了自己的见解.

关键词:软件保护;防篡改;检测-响应

随着软件*技术的发展,软件安全性问题日益突出,保护软件知识产权成为一个越来越艰巨的任务.攻击者获取软件副本后,借助一些工具,通过技术手段可以轻易地理解和修改二进制代码,从而达到*软件、非法使用的目的.二进制软件防篡改技术作为软件保护的重要方法之一,越来越得到国内外研究者的重视.本文研究了防篡改技术的基本原理和实现方法,对当前主流的防篡改技术进行分析和评价,并就该技术的应用和发展前景提出见解.

1 概述

1.1 软件篡改的实现方法

软件篡改通常发生在攻击者对代码进行有效分析之后,具体说来有三种实现方法:(1)在可执行文件运行之前,删掉其中的一些代码,同时/或者往其中加一些代码;(2)从正在运行的程序中,删掉一些代码,同时/或者往其中加入一些代码;(3)借助模拟器、调试器或修改过的操作系统等工具,影响程序运行时的行为.其中(1)属于静态篡改,即直接修改二进制代码,原代码不会进入内存.(2)、(3)属于动态篡改,即边运行边篡改,原代码要进入内存,和调试的原理比较相似.

1.2 防篡改技术的主要目标

防篡改技术的主要目标在于检测对程序的修改行为并做出相应的反应,因此其重要的技术原则有两条:(1)能够准确地检测到正常功能之外的对程序进行的异常修改行为;(2)对这种修改行为进行恰当的、有效的反应.目前常见的软件防篡改实现方法基本上都是基于这两条原则实现的,即“检测-响应”机制.从概念上来说,一个完整的防篡改系统应该是由CHECK和RESPOND两个函数组成,如图1所示,CHECK函数用来测试异常修改行为是否发生并返回结果,而RESPOND函数则根据CHECK函数的返回结果来判断是否触发对篡改行为的响应.

防篡改的具体实现方法有基于源代码和基于二进制代码两种,由于源代码方法有一定的局限性,本文主要研究基于二进制代码的软件防篡改技术.

2 软件防篡改实现技术

根据CHECK和RESPOND函数的实现思想不同,当前主流的软件防篡改实现方法可以分为4种,分别是:(1)基于保护网络的防篡改方法,(2)基于Oblivious Hashing的防篡改方法,(3)远程防篡改方法,以及(4)基于监测运行环境的防篡改方法.

2.1 保护网络

Hoi Chang建立了一种由称之为guards的代码片段组成的保护网络[1],guards分为两类,一类是校验和代码,用来计算一段程序的校验和并验证完整性,即检查是否被篡改.一旦发现被篡改,校验和代码会做出反应,触发一定的行为,比如使软件无法继续使用、中断程序等等,即检查完整性功能.另一类是修复代码,用来将被破坏的代码和数据恢复到原来的样子,具体方法是在别处存放该段代码的原始备份,一旦被篡改则原样复制过来,即自治愈功能.

2.2 Oblivious Hashing

实际上Hoi Chang的保护网络所运用的是防篡改技术中非常普遍的一种方法:自监测原理,基本的思想就是计算某一代码区域的hash值,并根据这个值做出反应.可以把hash值作为程序中将要进行的算数运算中的一部分数据,或者把hash值用在其他变量地址的计算上.然而,上述自监测算法有两个根本性缺陷:(1)读取自己代码段的操作很容易被检测出来,即算法隐蔽性不高;(2)只检查代码正确性,攻击者可以修改运行时的数据来影响程序行为,比如使用调试器,在某个关键函数返回之前修改其返回值,即不能抗动态篡改.

由此产生了另一种防篡改思想:oblivious hashing[2],即“易遭忽视的hashing”,因为此方法中hash是作为软件的一部分在正常的计算过程中被计算出来的,攻击者很容易忽视它.图2显示了这种方法的基本原理,即通过结合源代码中的指令和内存中的指令来计算hash值.

Y.Chen提出了一种巧妙的方法[3],直接在源码中插入了hash计算代码,根据变量的值和控制流控制语句输出结果计算hash.它不记录程序trace,而是往程序中插入相关代码,计算trace的hash,来监测变量的改变和控制流执行情况.可以通过调整所插入的,用以计算hash的代码数量来调和性能开销和保护级别之间的矛盾.

Mattias Jacob和Mariusz H.Jakubowski提出了另一种算法[3].x86体系结构使用变长指令编码方式且指令无需对齐,可以利用这两个特性,把指令相互重叠,相互重叠的指令甚至可以属于两个不同的基本块.这个算法就是通过重叠基本块中的x86指令进行防篡改,当一个基本块执行的时候,另一个基本块的hash就被它“顺便”算了出来.这一技术的优点在于,计算hash不需要显式地读取代码,所以内存复制的攻击方法对这个是无效的.这个算法的缺点是,无法预计监测代码的及时性.

本节所阐述的方法的根本原理在于,运行时检查程序中使用的数据值是否在正常的取值范围之内,程序的控制流是否沿着一个合理的路径流动.

2.3 远程防篡改

远程防篡改的思想是,将想要保护的程序C运行在攻击者控制下的不可信主机(客户端)上,客户端必须和开发者的主机(服务器)上一个可信的程序S保持通信.除了向客户端提供服务,服务器还必须对C可能遭到的篡改进行监测和响应.

二进制论文参考资料:

结论:二进制软件防篡改技术为大学硕士与本科二进制毕业论文开题报告范文和相关优秀学术职称论文参考文献资料下载,关于免费教你怎么写二进制小说完整版方面论文范文。

相关免费毕业论文范文

热门有关优秀论文题目选题

和你相关的