[发明专利]基于动态加载的Java SDK代码加解密方法及终端在审
申请号: | 202010625106.6 | 申请日: | 2020-07-02 |
公开(公告)号: | CN111832014A | 公开(公告)日: | 2020-10-27 |
发明(设计)人: | 王庆栋;李鹏飞 | 申请(专利权)人: | 北京智游网安科技有限公司 |
主分类号: | G06F21/52 | 分类号: | G06F21/52 |
代理公司: | 深圳市君胜知识产权代理事务所(普通合伙) 44268 | 代理人: | 陈专 |
地址: | 100000 北京市海淀区东北旺西路8*** | 国省代码: | 北京;11 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 基于 动态 加载 java sdk 代码 解密 方法 终端 | ||
本发明公开了基于动态加载的Java SDK代码加解密方法及终端,所述方法包括:解析Jar包中的class文件,并将函数转换为无代码的接口函数;将Jar包进行加密隐藏;当加密操作完成后,输出接口Jar、解密引擎Jar和加密后的Jar;将加密后的Jar作为资源文件放入应用源码工程,并将接口Jar和解密引擎Jar引入工程,并在使用加密后的Jar之前,初始化调用解密引擎Jar;启动集成了加密SDK的应用,并在运行时启动解密引擎Jar,获取当前进程的主类加载器;解密引擎Jar进行解密并使用主类加载器加载解密后的Jar中的代码到内存中,应用正常调用解密后SDK的代码,有效保护了SDK的代码安全。
技术领域
本发明涉及计算机应用技术领域,尤其涉及基于动态加载的Java SDK代码加解密方法及终端。
背景技术
Java是一门面向对象编程语言,不仅吸收了C++语言的各种优点,还摒弃了C++里难以理解的多继承、指针等概念,因此Java语言具有功能强大和简单易用两个特征;Java语言作为静态面向对象编程语言的代表,极好地实现了面向对象理论,允许程序员以优雅的思维方式进行复杂的编程;Java具有简单性、面向对象、分布式、健壮性、安全性、平台独立与可移植性、多线程、动态性等特点。
Jar是Java(计算机编程语言)软件包文件格式,通常用于聚合大量的Java字节码文件。Java的SDK(Software Development Kit,软件开发工具包,一般都是一些软件工程师为特定的软件包、软件框架、硬件平台、操作系统等建立应用软件时的开发工具的集合)代码指的就是Jar文件。常见的SDK包括广告、支付等,这些SDK面临着来自第三方黑客和集成SDK的开发者带来的双重威胁,所以对Java SDK的代码保护越来越受到重视。
但是现有技术中缺乏有效手段对Java SDK的代码保护,容易对对SDK集成者和应用使用者暴露SDK代码,无法有效的保护SDK 的代码安全。
因此,现有技术还有待于改进和发展。
发明内容
本发明的主要目的在于提供基于动态加载的Java SDK代码加解密方法及终端,旨在解决现有技术中无法有效的保护SDK的代码安全的问题。
为实现上述目的,本发明提供一种基于动态加载的Java SDK代码加解密方法,所述基于动态加载的Java SDK代码加解密方法包括如下步骤:
解析Jar包中的class文件,将所述class文件中的函数转换为无代码的接口函数;
将Jar包进行加密隐藏,如果是Android平台的Jar包,则将Jar 包转换为Android系统的DEX文件后进行加密;
当加密操作完成后,输出接口Jar、解密引擎Jar和加密后的Jar;
将加密后的Jar作为资源文件放入应用源码工程,并将接口Jar 和解密引擎Jar引入工程,并在使用加密后的Jar之前,初始化调用解密引擎Jar;
启动集成了加密SDK的应用,并在运行时启动解密引擎Jar,获取当前进程的主类加载器;
解密引擎Jar进行解密并使用主类加载器加载解密后的Jar中的代码到内存中,应用正常调用解密后SDK的代码。
可选地,所述的基于动态加载的Java SDK代码加解密方法,其中,所述将所述class文件中的函数转换为无代码的接口函数,具体包括:
根据字节码文件的二进制文件结构,解析Jar包中的每个class 文件;
获取每个class文件中所有函数的代码段,删除代码段中保存的二进制代码指令,将每个class文件中的函数转换为无代码的接口函数。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于北京智游网安科技有限公司,未经北京智游网安科技有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/202010625106.6/2.html,转载请声明来源钻瓜专利网。