软件水印技术是软件保护技术领域的重要研究内容,是解决软件盗版问题的有效技术手段。为了解决软件水印抵抗保持语义变换和逆向工程的攻击,本课题拟对软件特征和软件水印技术中若干关键问题开展研究,重点研究软件特征与软件水印技术的结合,研究软件特征理论模型及提取算法,基于软件特征的水印生成技术,基于代码合并的水印嵌入技术和基于特征抽取的水印提取技术。通过研究,给出基于软件特征的软件水印算法,为软件水印的设计提供新的研究思路,促进软件保护特别是软件水印技术的进步,为解决软件盗版问题提供理论依据和技术支持。
software piracy;software protection;software features;software watermarking;software obfuscation
由于软件产品自身具有易复制、易篡改和易散布等特性,软件盗版问题严重,已成为制约软件行业良性发展的重要问题之一。针对这一问题,本课题围绕软件防盗版问题开展研究,属于计算机应用、信息安全、网络信息处理等学科的交叉方向,重点研究软件特征(“胎记”)、软件水印、软件迷惑等软件保护技术。本课题首先通过研究软件特征技术,给出了一系列能够抵抗诸如等价指令替换、程序基本块变形、控制流变换等主流保持语义变换攻击的软件特征技术;并以此软件特征技术为基础,研究了基于软件特征编码的软件水印技术,给出了一系列鲁棒性高、隐秘性高、虚警和漏警低的软件水印算法及方案;同时,以软件特征技术为基础,针对软件逆向分析的主要技术手段,研究软件迷惑技术,给出了一系列能够抵抗人工或半人工的软件逆向分析的软件迷惑算法。具体的研究成果包括在软件特征技术研究方面,提出了基于操作数栈依赖关系的静态软件特征、基于操作数栈依赖关系的指令词软件特征、基于程序数据属性的联合软件特征等多种软件特征算法,并提出了基于卡方统计量和信息增益的软件特征选取算法;在软件水印研究方面,提出了基于API编码的软件水印、基于防篡改的双重软件水印、基于混沌优化的分存软件水印、基于中国剩余定理的IPPCT动态软件水印等多种水印算法;在软件迷惑技术方面进行了初步的研究与探索,提出了基于状态转移图迭代的mealy机混淆算法、基于指令重叠和代码自修改的控制流混淆算法、面向可执行程序抵御栈回溯分析的代码混淆算法等多种软件迷惑算法等。相关研究成果在“IET Information Security”、“International Conference on Multimedia Information Network and Security”、“International Conference on Computational and Information Sciences”、《计算机工程》、《计算机应用研究》等国内外学术刊物或会议上发表或录用论文9篇,其中SCI源刊1篇,EI检索3篇(因本项目执行期仅为1年,还有6篇论文已投,正在评审中);人才培养方面,依托本课题,以软件特征、软件水印、软件迷惑等为主要研究内容,培养毕业研究生4人,其中博士生1人,硕士生3人。综上,本课题按照计划完成了《项目计划书》的相关要求,相关指标达到或超过预定目标。