The invention provides a Java source protection method based on dynamic link library, extracting and separating function declaration interface and function realization subject from Java source code files, obtaining interface declaration files extracted from source code, compiling the source code into Java bytecode files, processing bytecode files, Obtain the content information of bytecode and generate dynamic link library files; compile the extracted interface declaration files, obtain the published interface call files, and publish it for third parties; deploy the dynamic link library files to the running environment, use the dynamic link library for the Java class loader. The bytecode information is dynamically loaded into the JVM virtual machine to complete the operation of the protected code. This method can effectively protect and run the core code, and increase the protection of Java source code.
【技术实现步骤摘要】
一种基于动态链接库的Java源码保护方法
本专利技术涉及网络系统中的信息安全
技术介绍
在当今软件系统开发中,B/S(Browser/Server)结构即浏览器和服务器结构的模式越来越流行。它是随着Internet技术的兴起,对C/S结构的一种变化或者改进的结构。B/S结构的优点:具有分布性特点,可以随时随地进行查询、浏览等业务处理,业务扩展简单方便,通过增加网页即可增加服务器功能,维护简单方便,只需要改变网页,即可实现所有用户的同步更新,开发简单,共享性强。大多数B/S系统以主流的J2EE技术架构为基础。针对J2EE技术开发的Java源代码编译运行文件常用格式为Jar包或者War包等格式。一种现有的方案是将项目源码使用打成War包,并解压为文件夹的形式;将指定文件夹下的源码文件加密,降低源Class文件被直接反编译的风险;改写类加载器,通过自定义JVM类加载器,解密源码文件;混淆类加载器,通过混淆自定义类加载器,达到打乱类加载器逻辑、隐藏解密算法的目的。或者对程序源代码进行逻辑替换,保存源代码函数调用关系,并用指定字符串和分隔符替换,对函数的调用信息的对应关系进行加密生成授权文件,改写Java类加载器发送到用户终端,使用户终端解密所述授权文件与函数调用逻辑的Java代码生成源代码文件。从源代码文件中获取函数调用信息,或者用预设字符串替换核心源代码,并将替换内容加密。同时改写类加载器,在运行的时候,将代码通过授权文件对替换字符串进行解密,从而还原Java运行源代码。在实际应用中,通过利用代码混淆了源码,虽然降低了代码的可读性,但是编译后的运行代码 ...
【技术保护点】
一种基于动态链接库的Java源码保护方法,其特征在于,包括以下步骤:(1)、抽取Java接口:将源代码文件进行抽取和分离函数声明接口和函数实现主体;将所有需要保护的Java源代码抽取出一套接口,接口文件中只包含Java接口和类的声明,得到源代码抽取的接口声明文件;(2)、编译文件:将所有源代码编译打包成Class字节码文件,并解析字节码内容,记录字节码中相互依赖关系,并根据字节码内容生成C语言头文件;(3)、生成动态链接库文件:将C语言头文件和加密模块,打包编译成动态链接库文件,生成dll或so格式文件;(4)、对Java接口文件编译打包发布:将步骤(1)中抽取的接口文件进行编译打包,形成可供第三方开发者使用的Jar接口文件,并进行分发;(5)、设置加载本地lib包:将步骤(3)生成的包含所有Java字节码内容的dll或so文件部署到运行环境中,并设置JVM‑agentlib启动参数;(6)、动态加载动态链接库内容:在程序运行过程中,通过类加载器动态将动态链接库中加密的Java字节码内容装在到JVM中,实现完整Java字节码的加载运行。
【技术特征摘要】
1.一种基于动态链接库的Java源码保护方法,其特征在于,包括以下步骤:(1)、抽取Java接口:将源代码文件进行抽取和分离函数声明接口和函数实现主体;将所有需要保护的Java源代码抽取出一套接口,接口文件中只包含Java接口和类的声明,得到源代码抽取的接口声明文件;(2)、编译文件:将所有源代码编译打包成Class字节码文件,并解析字节码内容,记录字节码中相互依赖关系,并根据字节码内容生成C语言头文件;(3)、生成动态链接库文件:将C语言头文件和加密模块,打包编译成动态链接库文件,生成dll或so格式文件;(4)、对Java接口文件编译打包发布:将步骤(1)中抽取的接口文件进行编译打包,形成可供第三方开发者使用的Jar接口文件,并进行分发;(5)、设置加载本地lib包:将步骤(3)生成的包含所有Java字节码内容的dll或so文件部署到运行环境中,并设置JVM-agentlib启动参数;(6...
【专利技术属性】
技术研发人员:苏祖辉,支兵,
申请(专利权)人:南京莱斯信息技术股份有限公司,
类型:发明
国别省市:江苏,32
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。