The invention belongs to the technical field of software watermarking, relates to a software watermarking information processing method based on the function call, including the watermark information transform, watermark embedding, watermark extraction and watermark function identification, this method through embedding watermark information secret in software, and at any time of need to extract the information to prove the copyright belongs. Effective protection of software copyright. Dynamic watermarking algorithm adopted by the method has good flexibility in the way of expressing the watermark information, and provides a robust identification scheme for identifying watermark function, makes the watermarking algorithm can effectively combat the additive attacks. The invention also provides an implementation of the algorithm based on the Java byte code, and carries out experiments and evaluations based on the implementation.
【技术实现步骤摘要】
本专利技术属于软件水印
,涉及一种软件水印信息处理方法,特别涉及一种基于函数调用的软件水印信息处理方法。
技术介绍
近年来,数字产品版权作为知识产权的价值不断提高,对其保护也成为一项艰巨的任务。随着数字产品的分发变得愈加容易,盗版现象持续猖獗,而版权保护现状却不容乐观,软件保护问题亟待解决。软件水印技术是一种重要的软件保护方式,该技术将标志版权的秘密水印信息嵌入到要保护的软件文件中达到保护的目的。该秘密水印信息不易被察觉,且难以清除,需要时可以被提取出来证明该文件的版权所属。由于软件水印能够在盗版发生后有效验证版权,并且软件水印有着高度不可察觉性,其存在并不影响保护软件的使用,因此适合软件推广、共享软件传播等许多使用情景。鲁棒性是软件水印最重要的特性,鲁棒的软件水印算法应该能抵御多种语义保持的代码转换攻击,例如改名攻击、基础块重排、分支插入等等,在经过攻击后仍能提取出嵌入的水印或证明水印的存在。除此以外,鲁棒的软件水印算法还应该具有好的数据率,且随着所嵌入水印信息的增大,软件在时间以及空间性能上的损失应该处在可接受的范围内。软件水印算法通常分为动态水印算法和静态水印算法。静态水印算法将水印信息嵌入到软件的代码区或者数据区中,而动态水印算法则利用软件的运行时动态特征进行水印信息的表达,其相对静态水印算法有更良好的鲁棒性。从科研人员首次提出在内存中构建图结构以嵌入水印信息开始,相继有人提出基于动态路径的水印算法和基于多线程的水印算法,但以上动态水印算法在面对不断出现的新型攻击手段时都存在一些缺陷。因此,如能以一种具有更强鲁棒性的动态水印算法为依托,研发 ...
【技术保护点】
一种基于函数调用的软件水印信息处理方法,其特征在于,包括以下步骤:A、水印信息转化将水印信息预处理转化成能够嵌入的数据格式;B、水印嵌入根据水印数据表达要求定义水印函数,将函数定义代码片段加入载体程序中,以特定输入I作为密钥a运行载体程序,记录程序的运行路径,再根据数据格式和水印信息表达方式,在运行路径中嵌入水印函数的调用语句,通过该函数的动态调用对水印信息进行表达;C、水印提取使用特定输入I运行目标程序,提取程序中各函数调用信息;D、水印函数识别再次运行步骤B中嵌入水印后的载体程序,提取水印函数调用信息作为密匙b予以保存;将步骤C获得的各函数调用信息与其匹配,识别出水印函数,对该函数的动态调用行为进行分析,得到所寻水印函数。
【技术特征摘要】
1.一种基于函数调用的软件水印信息处理方法,其特征在于,包括以下步骤:A、水印信息转化将水印信息预处理转化成能够嵌入的数据格式;B、水印嵌入根据水印数据表达要求定义水印函数,将函数定义代码片段加入载体程序中,以特定输入I作为密钥a运行载体程序,记录程序的运行路径,再根据数据格式和水印信息表达方式,在运行路径中嵌入水印函数的调用语句,通过该函数的动态调用对水印信息进行表达;C、水印提取使用特定输入I运行目标程序,提取程序中各...
【专利技术属性】
技术研发人员:朱建启,魏达,慕健,罗嘉乾,殷柯欣,许邵庆,吴静,吴雪洁,曹源,马彪,安英海,
申请(专利权)人:吉林大学,
类型:发明
国别省市:吉林;22
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。