CN112052433B - 一种Jar文件的虚拟化保护方法、终端及存储介质 - Google Patents

一种Jar文件的虚拟化保护方法、终端及存储介质 Download PDF

Info

Publication number
CN112052433B
CN112052433B CN202010776425.7A CN202010776425A CN112052433B CN 112052433 B CN112052433 B CN 112052433B CN 202010776425 A CN202010776425 A CN 202010776425A CN 112052433 B CN112052433 B CN 112052433B
Authority
CN
China
Prior art keywords
file
instruction
custom
jar
virtual machine
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
CN202010776425.7A
Other languages
English (en)
Other versions
CN112052433A (zh
Inventor
李鹏飞
冉山川
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Beijing Zhiyou Wang'an Technology Co ltd
Original Assignee
Beijing Zhiyou Wang'an Technology Co ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Beijing Zhiyou Wang'an Technology Co ltd filed Critical Beijing Zhiyou Wang'an Technology Co ltd
Priority to CN202010776425.7A priority Critical patent/CN112052433B/zh
Publication of CN112052433A publication Critical patent/CN112052433A/zh
Application granted granted Critical
Publication of CN112052433B publication Critical patent/CN112052433B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/10Protecting distributed programs or content, e.g. vending or licensing of copyrighted material ; Digital rights management [DRM]
    • G06F21/12Protecting executable software
    • G06F21/14Protecting executable software against software analysis or reverse engineering, e.g. by obfuscation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/62Protecting access to data via a platform, e.g. using keys or access control rules
    • G06F21/6209Protecting access to data via a platform, e.g. using keys or access control rules to a single file or object, e.g. in a secure envelope, encrypted and accessed using a key, or with access control rules appended to the object itself
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2221/00Indexing scheme relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/21Indexing scheme relating to G06F21/00 and subgroups addressing additional information or applications relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/2107File encryption

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Computer Hardware Design (AREA)
  • Computer Security & Cryptography (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • General Health & Medical Sciences (AREA)
  • Health & Medical Sciences (AREA)
  • Bioethics (AREA)
  • Multimedia (AREA)
  • Technology Law (AREA)
  • Storage Device Security (AREA)

Abstract

本发明公开了一种Jar文件的虚拟化保护方法、终端及存储介质,所述方法包括:将Jar文件进行解压,读取class二进制字节码文件,解析所述class二进制字节码文件,提取每个方法的二进制指令;生成随机自定义指令规则置换表,对二进制指令中的操作码和操作数进行等价替换,翻译为只有自定义虚拟机解释器引擎能够识别的指令;修改class字节码,将被加密的方法代码清空,注入自定义虚拟机的入口方法和自定义虚拟机引擎,生成加密后的Jar文件。本发明在加密过程中,输入Jar包进行加固保护,加固后下载的仍然是Jar包,不改变Jar包调用及使用方式,使得加密后的代码无法被反编译,安全性更高。

Description

一种Jar文件的虚拟化保护方法、终端及存储介质
技术领域
本发明涉及文件加密技术领域,尤其涉及一种Jar文件的虚拟化保护方法、终端及存储介质。
背景技术
在软件领域,Jar文件(Java归档,英语:Java Archive)是一种软件包文件格式,通常用于聚合大量的Java类文件、相关的元数据和资源(文本、图片等)文件到一个文件,以便开发Java平台应用软件或库。
对Jar文件加密,实际上就是对Jar文件中压缩存储的class Java字节码进行加密。常见方式是使用代码混淆工具对代码进行混淆(如ProGuard,ProGuard是一个混淆代码的开源项目,它的主要作用是混淆代码)。混淆是一种逻辑层面的加密,被混淆的代码仍可以反编译,但由于命名与程序流程上的等效替换,使得程序的可读性变的很差,导致代码难以被理解和盗用。
因此,现有技术还有待于改进和发展。
发明内容
本发明的主要目的在于提供一种Jar文件的虚拟化保护方法、终端及存储介质,旨在解决现有技术中被混淆的代码仍可以反编译的问题。
为实现上述目的,本发明提供一种Jar文件的虚拟化保护方法,所述Jar文件的虚拟化保护方法包括如下步骤:
将Jar文件进行解压,读取class二进制字节码文件,解析所述class二进制字节码文件,提取每个方法的二进制指令;
生成随机自定义指令规则置换表,对二进制指令中的操作码和操作数进行等价替换,翻译为只有自定义虚拟机解释器引擎能够识别的指令;
修改class字节码,将被加密的方法代码清空,注入自定义虚拟机的入口方法和自定义虚拟机引擎,生成加密后的Jar文件。
可选地,所述的Jar文件的虚拟化保护方法,其中,所述将Jar文件进行解压,读取class二进制字节码文件,解析所述class二进制字节码文件,提取每个方法的二进制指令,包括:
解压读取所述Jar文件中的class二进制字节码文件;
对所述class二进制字节码文件的所有class二进制字节码中所有方法对应的代码段指令进行提取。
可选地,所述的Jar文件的虚拟化保护方法,其中,所述生成随机自定义指令规则置换表,对二进制指令中的操作码和操作数进行等价替换,翻译为只有自定义虚拟机解释器引擎能够识别的指令,包括:
解析提取后的代码段指令,通过加密工具生成随机自定义指令规则置换表;
通过随机自定义指令规则置换表对代码段指令的操作码和操作数进行等价替换,翻译为只有自定义虚拟机解析器能够识别的指令,并保存为资源文件。
可选地,所述的Jar文件的虚拟化保护方法,其中,所述随机自定义指令规则置换表和class字节码默认指令一一对应。
可选地,所述的Jar文件的虚拟化保护方法,其中,所述翻译指根据加密工具生成的随机自定义指令规则置换表,将解析查找到的原方法指令转换为所述随机自定义指令规则置换表中对应的指令。
可选地,所述的Jar文件的虚拟化保护方法,其中,所述修改class字节码,将被加密的方法代码清空,注入自定义虚拟机的入口方法和自定义虚拟机引擎,生成加密后的Jar文件,包括:
清空Jar文件中所有class字节码文件方法的代码段指令,并在方法中插入调用自定义解析器的入口方法;
在Jar文件中添加生成的自定义格式的资源文件;
根据所述随机自定义指令规则置换表,生成对应虚拟机解析器引擎,实现自定义指令和虚拟机引擎配对,生成加密后的Jar文件。
可选地,所述的Jar文件的虚拟化保护方法,其中,每次加密时的所述随机自定义指令规则置换表都是随机生成的。
可选地,所述的Jar文件的虚拟化保护方法,其中,在Jar文件加密过程,输入Jar包进行加固保护,加固后下载的仍然是Jar包,不改变Jar包调用及使用方式。
此外,为实现上述目的,本发明还提供一种终端,其中,所述终端包括:存储器、处理器及存储在所述存储器上并可在所述处理器上运行的Jar文件的虚拟化保护程序,所述Jar文件的虚拟化保护程序被所述处理器执行时实现如上所述的Jar文件的虚拟化保护方法的步骤。
此外,为实现上述目的,本发明还提供一种存储介质,其中,所述存储介质存储有Jar文件的虚拟化保护程序,所述Jar文件的虚拟化保护程序被处理器执行时实现如上所述的Jar文件的虚拟化保护方法的步骤。
本发明通过将Jar文件进行解压,读取class二进制字节码文件,解析所述class二进制字节码文件,提取每个方法的二进制指令;生成随机自定义指令规则置换表,对二进制指令中的操作码和操作数进行等价替换,翻译为只有自定义虚拟机解释器引擎能够识别的指令;修改class字节码,将被加密的方法代码清空,注入自定义虚拟机的入口方法和自定义虚拟机引擎,生成加密后的Jar文件。本发明在加密过程中,输入Jar包进行加固保护,加固后下载的仍然是Jar包,不改变Jar包调用及使用方式,使得加密后的代码无法被反编译,安全性更高,提供了更高强度的代码保护,能够隐藏Java应用内的方法间调用关系,防止攻击者基于方法调用关系进行定位分析。
附图说明
图1是本发明Jar文件的虚拟化保护方法的较佳实施例的流程图;
图2是本发明Jar文件的虚拟化保护方法的较佳实施例中虚拟化加密流程的示意图;
图3是本发明Jar文件的虚拟化保护方法的较佳实施例中虚拟化解析器引擎执行自定义指令流程的示意图;
图4为本发明终端的较佳实施例的运行环境示意图。
具体实施方式
为使本发明的目的、技术方案及优点更加清楚、明确,以下参照附图并举实施例对本发明进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
本发明较佳实施例所述的Jar文件的虚拟化保护方法,如图1和图2所示,所述Jar文件的虚拟化保护方法包括以下步骤:
步骤S10、将Jar文件进行解压,读取class二进制字节码文件,解析所述class二进制字节码文件,提取每个方法的二进制指令。
具体地,解压读取所述Jar文件中的class二进制字节码文件;对所述class二进制字节码文件的所有class二进制字节码中所有方法对应的代码段指令进行提取。
对提取的代码段指令在加固时根据被加固方法的类名、方法名、方法签名,生成唯一识别ID。
步骤S20、生成随机自定义指令规则置换表,对二进制指令中的操作码和操作数进行等价替换,翻译为只有自定义虚拟机解释器引擎能够识别的指令。
具体地,解析提取后的代码段指令,通过加密工具生成随机自定义指令规则置换表;通过随机自定义指令规则置换表对代码段指令的操作码和操作数进行等价替换,翻译为只有自定义虚拟机解析器能够识别的指令,并保存为资源文件(VData)。如图3所示,表示虚拟化解析器引擎执行自定义指令流程。
其中,随机自定义指令规则置换表和class字节码默认指令是一一对应的(即所述随机自定义指令规则置换表和class字节码默认指令一一对应)。例如,原指令是00代码表nop,对应随机自定义指令规则置换表可能是02代表nop,原本一条01的指令,根据随机自定义指令规则置换表置换后就是02。
本发明中解析是指根据class字节码的二进制格式,解析class文件,找到对应方法的代码指令存储位置。翻译是指根据加密工具生成的随机自定义指令规则置换表,把解析查找到的原方法指令,转换为随机自定义指令规则置换表中对应的指令。
步骤S30、修改class字节码,将被加密的方法代码清空,注入自定义虚拟机的入口方法和自定义虚拟机引擎,生成加密后的Jar文件。
具体地,清空Jar文件中所有class字节码文件方法的代码段指令,并在方法中插入调用自定义解析器的入口方法;在Jar文件中添加生成的自定义格式的资源文件(具体放在Jar文件根目录);根据所述随机自定义指令规则置换表,生成对应虚拟机解析器引擎,实现自定义指令和虚拟机引擎配对,生成加密后的Jar文件。
其中,加密要保护的是方法的指令,指令被提取转换为自定义格式虚拟机指令,保存在Vdata文件中。删除原本class中的指令文件,破解者就看不到原class中的代码了。
其中,在方法中插入调用自定义解析器的入口方法,使用ASMclass二进制字节码处理工具,修改class字节码文件,清楚原方法的方法体数据,插入解析器入口调用指令。
ASM是一个通用的Java字节码操作和分析框架,它可以用于修改现有类或直接以二进制形式动态生成类,ASM提供了一些常见的字节码转换和分析算法,可以从中构建自定义复杂转换和代码分析工具。ASM提供与其他Java字节码框架类似的功能,但专注于性能。因为它的设计和实现尽可能小而且快,所以它非常适合在动态系统中使用(但当然也可以以静态方式使用,例如在编译器中)。
进一步地,字节码指令是一个无符号的8位长度的数据,一共0-255个顺序排列,生成的随机自定义指令规则置换表,就是生成和原0-255个指令一一对应、乱序排列的指令。
比如,原指令00标识nop,随机自定义指令规则置换表02标识nop,加密时:会把00这条指令替换为02,这样指令系统虚拟机就无法识别解析,破解者也无法通过系统虚拟机默认的指令表,对代码进行反编译。生成的虚拟机引擎,需要根据加密生成的随机自定义指令规则置换表;实现02指令为nop的具体功能,这个就是具体的配对原则,同样的其他的自定义指令,都要在虚拟机引擎中生成对应的指令功能。
根据随机指令置换表,生成对应虚拟机解析器引擎,实现自定义指令和虚拟机引擎配对,该引擎代码完全由Java实现,克服了c/c++实现引擎,生成的可执行库文件,在Linux服务端需要额外进行配置的问题。
Jar->Jar的加密方式,使得客户项目中集成使用加密后的Jar,不需额外配置(比如如果虚拟机解析器引擎使用c/c++写,就会被编译位so/dll等格式的库文件,这个在web服务器上是没法直接使用的,需要额外对服务器进行配置),同集成原Jar相同,方便快捷。
运行集成了虚拟化加密Jar的应用在运行时,运行到被虚拟化处理过的方法,首先会运行我们注入到原方法中的自定义虚拟机入口方法(被加密方法中,注入了自定义虚拟机入口方法,加密方法执行时,会执行入口方法),把执行权交给自定义虚拟机解释器执行,加密指令Vdata还是在Jar包根目录存储,只是读取这个文件,没有转存处理;执行解析器引擎入口方法,解析器引擎会把Jar中Vdata自定义指令文件,读取到内存中,并查找当前执行的被加密方法的,自定义指令数据,然后解自定义指令,直到指令执行结束,返回指令运算结果。
虚拟机引擎能够识别执行,加密后的自定义格式指令,整个过程不需要解密指令,确保加密指令在执行期间的安全性。
相对于传统的Jar字节码保护技术,本发明的虚拟化保护方案,提供了更高强度的代码保护,能够隐藏Java应用内的方法间调用关系,防止攻击者基于方法调用关系进行定位分析,虚拟化保护技术,自定义字节码运行时无需解密,无法通过内存dump来分析查看被保护代码,Jar到Jar的加密方式,方便集成使用。
进一步地,如图4所示,基于上述Jar文件的虚拟化保护方法,本发明还相应提供了一种终端,所述终端包括处理器10、存储器20及显示器30。图4仅示出了终端的部分组件,但是应理解的是,并不要求实施所有示出的组件,可以替代的实施更多或者更少的组件。
所述存储器20在一些实施例中可以是所述终端的内部存储单元,例如终端的硬盘或内存。所述存储器20在另一些实施例中也可以是所述终端的外部存储设备,例如所述终端上配备的插接式硬盘,智能存储卡(Smart Media Card,SMC),安全数字(SecureDigital,SD)卡,闪存卡(Flash Card)等。进一步地,所述存储器20还可以既包括所述终端的内部存储单元也包括外部存储设备。所述存储器20用于存储安装于所述终端的应用软件及各类数据,例如所述安装终端的程序代码等。所述存储器20还可以用于暂时地存储已经输出或者将要输出的数据。在一实施例中,存储器20上存储有Jar文件的虚拟化保护程序40,该Jar文件的虚拟化保护程序40可被处理器10所执行,从而实现本申请中Jar文件的虚拟化保护方法。
所述处理器10在一些实施例中可以是一中央处理器(Central Processing Unit,CPU),微处理器或其他数据处理芯片,用于运行所述存储器20中存储的程序代码或处理数据,例如执行所述Jar文件的虚拟化保护方法等。
所述显示器30在一些实施例中可以是LED显示器、液晶显示器、触控式液晶显示器以及OLED(Organic Light-Emitting Diode,有机发光二极管)触摸器等。所述显示器30用于显示在所述终端的信息以及用于显示可视化的用户界面。所述终端的部件10-30通过系统总线相互通信。
在一实施例中,当处理器10执行所述存储器20中Jar文件的虚拟化保护程序40时实现以下步骤:
将Jar文件进行解压,读取class二进制字节码文件,解析所述class二进制字节码文件,提取每个方法的二进制指令;
生成随机自定义指令规则置换表,对二进制指令中的操作码和操作数进行等价替换,翻译为只有自定义虚拟机解释器引擎能够识别的指令;
修改class字节码,将被加密的方法代码清空,注入自定义虚拟机的入口方法和自定义虚拟机引擎,生成加密后的Jar文件。
所述将Jar文件进行解压,读取class二进制字节码文件,解析所述class二进制字节码文件,提取每个方法的二进制指令,包括:
解压读取所述Jar文件中的class二进制字节码文件;
对所述class二进制字节码文件的所有class二进制字节码中所有方法对应的代码段指令进行提取。
所述生成随机自定义指令规则置换表,对二进制指令中的操作码和操作数进行等价替换,翻译为只有自定义虚拟机解释器引擎能够识别的指令,包括:
解析提取后的代码段指令,通过加密工具生成随机自定义指令规则置换表;
通过随机自定义指令规则置换表对代码段指令的操作码和操作数进行等价替换,翻译为只有自定义虚拟机解析器能够识别的指令,并保存为资源文件。
其中,所述随机自定义指令规则置换表和class字节码默认指令一一对应。
其中,所述翻译指根据加密工具生成的随机自定义指令规则置换表,将解析查找到的原方法指令转换为所述随机自定义指令规则置换表中对应的指令。
所述修改class字节码,将被加密的方法代码清空,注入自定义虚拟机的入口方法和自定义虚拟机引擎,生成加密后的Jar文件,包括:
清空Jar文件中所有class字节码文件方法的代码段指令,并在方法中插入调用自定义解析器的入口方法;
在Jar文件中添加生成的自定义格式的资源文件;
根据所述随机自定义指令规则置换表,生成对应虚拟机解析器引擎,实现自定义指令和虚拟机引擎配对,生成加密后的Jar文件。
其中,每次加密时的所述随机自定义指令规则置换表都是随机生成的。
其中,在Jar文件加密过程,输入Jar包进行加固保护,加固后下载的仍然是Jar包,不改变Jar包调用及使用方式。
本发明还提供一种存储介质,其中,所述存储介质存储有Jar文件的虚拟化保护程序,所述Jar文件的虚拟化保护程序被处理器执行时实现如上所述的Jar文件的虚拟化保护方法的步骤。
综上所述,本发明提供一种Jar文件的虚拟化保护方法、终端及存储介质,所述方法包括:将Jar文件进行解压,读取class二进制字节码文件,解析所述class二进制字节码文件,提取每个方法的二进制指令;生成随机自定义指令规则置换表,对二进制指令中的操作码和操作数进行等价替换,翻译为只有自定义虚拟机解释器引擎能够识别的指令;修改class字节码,将被加密的方法代码清空,注入自定义虚拟机的入口方法和自定义虚拟机引擎,生成加密后的Jar文件。本发明在加密过程中,输入Jar包进行加固保护,加固后下载的仍然是Jar包,不改变Jar包调用及使用方式,使得加密后的代码无法被反编译,安全性更高,提供了更高强度的代码保护,能够隐藏Java应用内的方法间调用关系,防止攻击者基于方法调用关系进行定位分析。
当然,本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关硬件(如处理器,控制器等)来完成,所述的程序可存储于一计算机可读取的存储介质中,所述程序在执行时可包括如上述各方法实施例的流程。其中所述的存储介质可为存储器、磁碟、光盘等。
应当理解的是,本发明的应用不限于上述的举例,对本领域普通技术人员来说,可以根据上述说明加以改进或变换,所有这些改进和变换都应属于本发明所附权利要求的保护范围。

Claims (4)

1.一种Jar文件的虚拟化保护方法,其特征在于,所述Jar文件的虚拟化保护方法包括:
将Jar文件进行解压,读取class二进制字节码文件,解析所述class二进制字节码文件,提取每个方法的二进制指令;
所述将Jar文件进行解压,读取class二进制字节码文件,解析所述class二进制字节码文件,提取每个方法的二进制指令,包括:
解压读取所述Jar文件中的class二进制字节码文件;
对所述class二进制字节码文件的所有class二进制字节码中所有方法对应的代码段指令进行提取;
生成随机自定义指令规则置换表,对二进制指令中的操作码和操作数进行等价替换,翻译为只有自定义虚拟机解释器引擎能够识别的指令;
所述生成随机自定义指令规则置换表,对二进制指令中的操作码和操作数进行等价替换,翻译为只有自定义虚拟机解释器引擎能够识别的指令,包括:
解析提取后的代码段指令,通过加密工具生成随机自定义指令规则置换表;
通过随机自定义指令规则置换表对代码段指令的操作码和操作数进行等价替换,翻译为只有自定义虚拟机解释器引擎能够识别的指令,并保存为资源文件;
修改class字节码,将被加密的方法代码清空,注入自定义虚拟机解释器引擎的入口方法和自定义虚拟机解释器引擎,生成加密后的Jar文件;
所述修改class字节码,将被加密的方法代码清空,注入自定义虚拟机解释器引擎的入口方法和自定义虚拟机解释器引擎,生成加密后的Jar文件,包括:
清空Jar文件中所有class字节码文件方法的代码段指令,并在方法中插入调用自定义虚拟机解释器引擎的入口方法;
在Jar文件中添加生成的自定义格式的资源文件;
根据所述随机自定义指令规则置换表,生成对应自定义虚拟机解释器引擎,实现自定义指令和自定义虚拟机解释器引擎配对,生成加密后的Jar文件;
在加密过程中,输入Jar包进行加固保护,加固后下载的仍然是Jar包,不改变Jar包调用及使用方式,使得加密后的代码无法被反编译。
2.根据权利要求1所述的Jar文件的虚拟化保护方法,其特征在于,所述随机自定义指令规则置换表和class字节码默认指令一一对应。
3.一种终端,其特征在于,所述终端包括:存储器、处理器及存储在所述存储器上并可在所述处理器上运行的Jar文件的虚拟化保护程序,所述Jar文件的虚拟化保护程序被所述处理器执行时实现如权利要求1-2任一项所述的Jar文件的虚拟化保护方法的步骤。
4.一种存储介质,其特征在于,所述存储介质存储有Jar文件的虚拟化保护程序,所述Jar文件的虚拟化保护程序被处理器执行时实现如权利要求1-2任一项所述的Jar文件的虚拟化保护方法的步骤。
CN202010776425.7A 2020-08-05 2020-08-05 一种Jar文件的虚拟化保护方法、终端及存储介质 Active CN112052433B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202010776425.7A CN112052433B (zh) 2020-08-05 2020-08-05 一种Jar文件的虚拟化保护方法、终端及存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202010776425.7A CN112052433B (zh) 2020-08-05 2020-08-05 一种Jar文件的虚拟化保护方法、终端及存储介质

Publications (2)

Publication Number Publication Date
CN112052433A CN112052433A (zh) 2020-12-08
CN112052433B true CN112052433B (zh) 2024-05-07

Family

ID=73602240

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202010776425.7A Active CN112052433B (zh) 2020-08-05 2020-08-05 一种Jar文件的虚拟化保护方法、终端及存储介质

Country Status (1)

Country Link
CN (1) CN112052433B (zh)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112394943A (zh) * 2021-01-18 2021-02-23 北京掌上云集科技发展有限公司 一种二进制文件虚拟化保护方法、装置、介质及电子设备
CN114444028B (zh) * 2022-01-05 2024-01-12 苏州浪潮智能科技有限公司 提升代码安全性的方法、装置、计算机设备和存储介质
CN114547653B (zh) * 2022-02-24 2022-12-02 科东(广州)软件科技有限公司 开发环境的加密方法、解密方法及装置、设备和介质

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102831338A (zh) * 2012-06-28 2012-12-19 北京奇虎科技有限公司 一种Android应用程序的安全检测方法及系统
CN107729725A (zh) * 2017-10-09 2018-02-23 南京南瑞集团公司 一种基于虚拟机指令修改的Android应用加固系统及方法

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100763177B1 (ko) * 2005-04-21 2007-10-04 삼성전자주식회사 자바 가상 머신의 명령어 수행 방법 및 그 장치

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102831338A (zh) * 2012-06-28 2012-12-19 北京奇虎科技有限公司 一种Android应用程序的安全检测方法及系统
CN107729725A (zh) * 2017-10-09 2018-02-23 南京南瑞集团公司 一种基于虚拟机指令修改的Android应用加固系统及方法

Also Published As

Publication number Publication date
CN112052433A (zh) 2020-12-08

Similar Documents

Publication Publication Date Title
US10853270B2 (en) Cryptographic pointer address encoding
CN112052433B (zh) 一种Jar文件的虚拟化保护方法、终端及存储介质
TWI648648B (zh) 安卓平台上可執行程式的保護方法
KR101471589B1 (ko) 공통중간언어 기반 프로그램을 위한 보안 제공 방법
CN102598017B (zh) 提高Java字节码的防窜改能力的系统和方法
CN109657488B (zh) 一种资源文件加密处理方法、智能终端及存储介质
CN103413073B (zh) 一种保护java可执行程序的方法及设备
CN108932406A (zh) 虚拟化软件保护方法和装置
CN111832014B (zh) 基于动态加载的Java SDK代码加解密方法及终端
CN107273723B (zh) 一种基于so文件加壳的Android平台应用软件保护方法
CN110309631B (zh) 一种编程语言结构混淆处理方法、智能终端及存储介质
US10867017B2 (en) Apparatus and method of providing security and apparatus and method of executing security for common intermediate language
CN112966227A (zh) 代码加密解密方法和装置、存储介质
CN111597514A (zh) 安卓源代码保护方法和装置
CN111045686A (zh) 一种提高应用反编译速度的方法、智能终端及存储介质
CN113626773B (zh) 一种基于中间语言的代码保护方法
CN110535642B (zh) 一种分散存储密钥的方法、智能终端及存储介质
CN112052461A (zh) 一种基于指令注入的代码处理方法、终端及存储介质
CN114139117A (zh) 应用程序加固方法、装置、电子设备及存储介质
CN112052459A (zh) 一种代码虚拟化加密方法、终端及存储介质
US9021271B1 (en) Injecting code decrypted by a hardware decryption module into Java applications
CN112052462B (zh) 一种虚拟化加密方法、终端及存储介质
KR102615080B1 (ko) 애플리케이션 코드 은닉 장치, 애플리케이션 코드 은닉 방법 및 애플리케이션 코드 은닉 방법을 실행시키도록 기록매체에 저장된 컴퓨터 프로그램
CN112052463B (zh) 一种代码处理方法、终端及存储介质
CN118035958A (zh) 基于动态链接库提高源码安全的方法、装置、设备及介质

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant