[发明专利]一种Java软件水印植入虚方法的永假式构造方法有效
申请号: | 201310459225.9 | 申请日: | 2013-09-30 |
公开(公告)号: | CN103714271B | 公开(公告)日: | 2016-10-26 |
发明(设计)人: | 陈建平;李奎;朱晓辉;陈苏蓉;王进;陆培军 | 申请(专利权)人: | 南通大学 |
主分类号: | G06F21/10 | 分类号: | G06F21/10 |
代理公司: | 南京汇盛专利商标事务所(普通合伙) 32238 | 代理人: | 吴静安 |
地址: | 226019 江苏省南*** | 国省代码: | 江苏;32 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 java 软件 水印 植入 方法 永假式 构造 | ||
技术领域
本发明涉及软件版权的保护,尤其涉及一种Java软件水印植入虚方法的永假式构造方法。
背景技术
软件产业近年来迅猛发展,已成为每年具有数千亿产值的重大产业。与此同时,软件产品的非法复制和盗用问题也变得非常严重,受到业内外广泛关注。如何保护软件产品的知识产权,防止软件被非法复制和盗用,是信息安全领域的一个重要研究课题。软件水印是近年来出现的保护软件版权的一项技术,它在不影响软件功能的前提下在软件作品中嵌入版权保护信息或身份认证信息,当软件遭到非法复制或盗用时,可以通过提取这些信息来证明软件作品的所有权。
目前,在各种软件产品中,用Java语言开发的软件占有很大的比重。Java语言具有跨平台的可移植性,使用便利,同时也带来程序容易被复制和盗用的问题。一些开发者可以在自己开发的程序中未经授权地使用他人开发的类文件,也可以通过反编译,从类文件获得源文件,学习他人解决某个问题的方法。因此,研究和开发Java语言软件的版权保护技术具有十分重要的现实意义和应用价值。
关于Java软件水印技术,已有人提出了一些方案和算法。其中,Akito Monden等人提出了一种基于Java类文件字节码的软件水印方案。其基本思想是,在需要保护的Java程序中植入永不执行的方法,称为虚方法,然后在这个虚方法对应类文件的字节码中,对指令的操作数进行修改或者对指令的操作码进行编码,以此来嵌入水印信息。算法的流程如图2所示。首先通过一定的方式将一个或多个虚方法植入到需要保护的Java源程序中。所谓虚方法是指,这个方法实际不会被执行。对包含虚方法的Java源程序进行编译,得到由字节码构成的Java类文件。在类文件中找到虚方法的代码所对应的指令,通过一定的方式修改这些指令的操作数或编码这些指令的操作码,来嵌入水印即版权信息。水印的提取则是通过检测类文件中的虚方法和它所含的指令来实现。由于虚方法实际并不执行,可以按一定的需要对其进行编程或修改,不会影响原程序的功能。
尽管目前对Akito Monden等提出的算法有不少进一步的研究,研究的重点是如何在虚方法中嵌入和提取水印信息,而对虚方法如何植入、如何构造有效的使得虚方法不被执行的永假结构尚未涉及。但这个问题不解决,虚方法就不能得到很好的隐藏,容易受到攻击,水印算法也就无法得到真正应用。
发明内容
本发明目的是针对上述现有技术未能解决的问题而提出的一种Java软件水印植入虚方法的永假式构造方法,具体由以下技术方案实现:
所述Java软件水印植入虚方法的永假式构造方法,包括:
调用软件中具备共同特征的数据;
对每一所述数据进行编码;
将所述编码进行设定的计算,使得计算的恒定值为零,并将该恒定值作为该永假式的值。
所述Java软件水印植入虚方法的永假式构造方法的进一步设计在于,所述具备共同特征的数据为程序中的方法名。
所述Java软件水印植入虚方法的永假式构造方法的进一步设计在于,所述调用软件是利用Java反射机制解析出需要保护的类中的所述方法名,并把所述方法名存储在对应的一个数组中。
所述Java软件水印植入虚方法的永假式构造方法的进一步设计在于,所述编码是通过迭代数组并产生随机数构成的字符串。
所述Java软件水印植入虚方法的永假式构造方法的进一步设计在于,所述编码包括:
迭代所述数组,
根据每个数组元素,用随机函数生成一个“0”或“1”字符;
将通过随机函数生成的0、1字符顺次拼接成一个0、1字符串,所述字符串的位数为解析出的所述方法名的总数。
所述Java软件水印植入虚方法的永假式构造方法的进一步设计在于,所述设定的计算包括:
构造一数字正反码编、解码器;
将所述字符串输入至所述数字正反码编码器;
将正反码解码器的输出作为永假式的值。
所述Java软件水印植入虚方法的永假式构造方法的进一步设计在于,在所述正反码解码器的输入端设置一永真式做为判断条件。
由上述技术方案可以看出,本发明利用类中的方法名产生一个0、1串,然后对该0、1串进行编码和解码,这一过程并不与任何特定的代码形式或它们的执行顺序有关,因此,即使通过语义变换,改变代码的形式或顺序,只要功能不变,上述虚方法的构造不会遭到破坏。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于南通大学,未经南通大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201310459225.9/2.html,转载请声明来源钻瓜专利网。
- 上一篇:盘类内圆孔自动定位夹紧装置
- 下一篇:具有高耐电晕性的涂层及其制造方法