软件特征和软件水印在软件保护中的应用研究
2018-12-13李冬冬庞岩梅
计算机应用与软件 2018年12期
关键词:特征
范 洁 李冬冬 庞岩梅
(北京电子科技学院网络空间安全系 北京 100070)
0 引 言
随着计算机和网络技术的飞速发展,软件也从传统的计算机软件发展到智能手机APP,这给人们的生活带来了无穷的便利。同时,软件盗版、软件篡改、软件攻击等事件频频发生,严重地影响着软件生产者和使用者的利益。软件保护技术日益受到政府、企业和研究者的重视。本文综合运用软件水印术和软件特征技术,提出了一种基于静态水印和软件指令集的软件特征值提取方法,并设计了软件特征值在软件保护中的具体应用方案。将提取出软件特征值经软件开发者对称加密后随软件一起打包发售给使用者,可在软件运行不正常时,鉴定软件是否遭受破坏,或在软件发生盗版时追溯盗版源头。
1 软件特征
软件特征是程序本身所拥有的软件属性。软件特征源自于程序的所有相关信息,包括程序代码、API调用频率、类继承关系、线程执行序列、数据流等。
软件胎记(Software Birthmark)是在软件变化时,该软件特征保持不变的、可用于标识该软件的属性。通过对比两个软件胎记特征的相似性,来判断软件的相似性,从而检测出软件是否存在拷贝或盗版。软件胎记可分为软件静态胎记和动态软件胎记[1,9]。
定义1软件静态胎记(software static Birthmark):设P是软件的程序集合,Extract是从P中提取特征的一种方法,得到程序P在非执行状态下的静态特征集合B,则有Extract(P)→B。
定义2软件动态胎记(software dynamic Birthmark):设P是软件的程序集合,I表示对P的一个合法输入,Extract是从P中提取特征的一种方法,若P运行且I不为空集,则称此时B为动态胎记,记Extract(P,I)→B。……
登录APP查看全文
