CN114357387A - java应用程序防篡改的判断方法、编译方法及设备 - Google Patents

java应用程序防篡改的判断方法、编译方法及设备 Download PDF

Info

Publication number
CN114357387A
CN114357387A CN202111638177.0A CN202111638177A CN114357387A CN 114357387 A CN114357387 A CN 114357387A CN 202111638177 A CN202111638177 A CN 202111638177A CN 114357387 A CN114357387 A CN 114357387A
Authority
CN
China
Prior art keywords
java application
class file
application program
signature information
java
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.)
Pending
Application number
CN202111638177.0A
Other languages
English (en)
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.)
Hangzhou Tuya Information Technology Co Ltd
Original Assignee
Hangzhou Tuya Information 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 Hangzhou Tuya Information Technology Co Ltd filed Critical Hangzhou Tuya Information Technology Co Ltd
Priority to CN202111638177.0A priority Critical patent/CN114357387A/zh
Publication of CN114357387A publication Critical patent/CN114357387A/zh
Pending legal-status Critical Current

Links

Images

Landscapes

  • Storage Device Security (AREA)

Abstract

本申请涉及计算机安全技术领域,特别是涉及一种java应用程序防篡改的判断方法、生成方法及设备,所述方法包括:在加载所述java应用程序过程中通过签名信息判断所述java应用程序是否被修改;在所述java应用程序被修改时,告警用户和/或退出。实现了在java应用程序运行之前,预先判断java应用程序是否被篡改,即可以在java应用程序运行之前判断java应用程序是否被篡改,可以避免运行被篡改后Java应用程序对程序运行端造成威胁。

Description

java应用程序防篡改的判断方法、编译方法及设备
技术领域
本申请涉及计算机安全技术领域,特别是涉及一种java应用程序防篡改的判断方法、编译方法及设备。
背景技术
Java平台为开源开发环境,因此,基于Java平台开发的Java应用程序容易遭到黑客的修改,运行黑客修改过的Java应用程序会对程序运行端造成很大的威胁。
为了对程序运行端进行保护,现有技术是对Java应用程序进行加密保护,即对Java应用程序中实际运行所需要的Java源代码保护,为了对Java源代码保护,避免Java源代码被黑客修改,现有技术通常会对Java源代码进行整体加密,以大幅度增大Java应用程序破解的工作量和破解难度,进而一定程度的避免Java源代码被黑客修改,然而简单的加密保护并不能完全防止Java应用程序被破解,因此,运行加密保护后的Java应用程序依旧可能会对程序运行端造成很大的威胁。
发明内容
本申请实施例提供一种java应用程序防篡改的判断方法、编译方法及设备,实现了在java应用程序运行之前,预先判断java应用程序是否被篡改,进而可以在java应用程序运行之前判断java应用程序是否被篡改,可以避免运行被篡改后Java应用程序对程序运行端造成威胁。
第一方面,本申请一个实施例提供一种java应用程序防篡改的判断方法,所述方法包括:
在加载所述java应用程序过程中通过签名信息判断所述java应用程序是否被修改;
在所述java应用程序被修改时,告警用户和/或退出。
可选地,所述在加载所述java应用程序过程中通过签名信息判断所述java应用程序是否被修改包括:
加载所述java应用程序内的签名信息;
判断所述java应用程序内的签名信息与预设签名信息是否一致;
在所述java应用程序内的签名信息与所述预设签名信息一致时,判定所述java应用程序没有被修改,在所述java应用程序内的签名信息与所述预设签名信息不一致时,判定所述java应用程序被修改。
可选地,所述加载所述java应用程序内的签名信息,包括:
加载java应用程序中目标class文件的签名信息。
可选地,所述加载java应用程序中包括至少一个class文件,所述加载java应用程序中目标class文件的签名信息,包括:
加载所述java应用程序中的class文件,判断所述class文件是否在目标jar包路径下;
在所述class文件在目标jar包路径下时,判定所述class文件为目标class文件,并加载所述目标class文件的签名信息。
可选地,所述加载所述java应用程序中的class文件,判断所述class文件是否在目标jar包路径下后,还包括:
在所述class文件不在所述目标jar包路径下时,所述class文件为第三方class文件,将所述第三方class文件发送至程序运行器,所述程序运行器用于运行所述第三方class文件。
可选地,所述加载java应用程序中目标class文件的签名信息,包括:
通过预设的混淆算法加载所述目标class文件并解析为字节码以及签名信息。
可选地,所述判断所述java应用程序内的签名信息与所述预设签名信息是否一致,包括:
通过decrypt判断所述目标class文件内的签名信息与所述预设签名信息是否一致。
第二方面,本申请一个实施例提供一种java应用程序的防篡改编译方法,所述方法包括:
为java源程序添加签名信息,生成java应用程序,在加载所述java应用程序过程中通过所述签名信息判断所述java应用程序是否被修改;在所述java应用程序被修改时,告警用户和/或退出。
可选地,所述为java源程序添加签名信息,生成java应用程序,包括:
解析所述java源程序中目标jar包路径下的class文件;
将所述签名信息与所述目标jar包路径下的class文件的字节码混淆,生成目标class文件;
使用所述目标class文件替换所述java源程序中目标jar包路径下的class文件,生成java应用程序。
第三方面,本申请一个实施例提供一种处理设备,其特征在于,包括处理器、存储器以及存储在所述存储器中且被配置为由所述处理器执行的计算机程序,所述处理器执行所述计算机程序时实现如上述一种java应用程序防篡改的判断方法以及一种java应用程序的防篡改编译方法的步骤。
与现有技术相比,本申请的有益效果是:通过判断java应用程序是否被修改,在所述java应用程序没有被修改时,将所述java应用程序发送至所述程序运行器,所述程序运行器用于运行所述java应用程序,在所述java应用程序被修改时,告警用户。实现了在java应用程序运行之前,加载器预先判断java应用程序是否被篡改,即可以在java应用程序运行之前判断java应用程序是否被篡改,可以避免运行被篡改后Java应用程序对程序运行端造成威胁。
附图说明
本申请将结合附图对实施方式进行说明。本申请的附图仅用于描述实施例,以展示为目的。在不偏离本申请原理的条件下,本领域技术人员能够轻松地通过以下描述根据所述步骤做出其他实施例。
图1为本申请一个实施例中一种java应用程序防篡改的判断的处理设备的示意图;
图2为本申请一个实施例中一种java应用程序防篡改的判断方法的步骤流程图;
图3为本申请一个实施例中又一种java应用程序防篡改的判断方法的步骤流程图;
图4为本申请一个实施例中一种java源程序防篡改编译过程的流程图;
图5为本申请一个实施例中一种java应用程序防篡改的判断方法的执行过程;
图6为本申请一个实施例中又一种java应用程序防篡改的判断方法的步骤流程图;
图7为本申请一个实施例中一种java应用程序的防篡改编译装置的结构示意图;
图8为本申请一个实施例中一种java应用程序防篡改的判断装置的结构示意图;
图9为本申请计算机存储介质一实施例的结构示意图。
具体实施方式
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述。可以理解的是,此处所描述的具体实施例仅用于解释本申请,而非对本申请的限定。另外还需要说明的是,为了便于描述,附图中仅示出了与本申请相关的部分而非全部结构。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
本申请中的术语“第一”、“第二”等是用于区别不同对象,而不是用于描述特定顺序。此外,术语“包括”和“具有”以及它们任何变形,意图在于覆盖不排他的包含。例如包含了一系列步骤或单元的过程、方法、系统、产品或设备没有限定于已列出的步骤或单元,而是可选地还包括没有列出的步骤或单元,或可选地还包括对于这些过程、方法、产品或设备固有的其它步骤或单元。
在本文中提及“实施例”意味着,结合实施例描述的特定特征、结构或特性可以包含在本申请的至少一个实施例中。在说明书中的各个位置出现该短语并不一定均是指相同的实施例,也不是与其它实施例互斥的独立的或备选的实施例。本领域技术人员显式地和隐式地理解的是,本文所描述的实施例可以与其它实施例相结合。
为更好地理解本申请实施例提供的技术方案,下面对本申请的一些实施例进行详细描述。
本申请实施例提供的java应用程序防篡改的判断方法,该java应用程序防篡改的判断方法可应用如图1所示的java应用程序防篡改的判断的处理设备中。该java应用程序防篡改的判断的处理设备包括通过系统总线连接的处理器、存储器、网络接口和数据库。其中,该java应用程序的处理设备的处理器用于提供计算和控制能力。该java应用程序防篡改的判断的处理设备的存储器包括非易失性存储介质、内存储器。该非易失性存储介质存储有操作系统、计算机程序和数据库。该内存储器为非易失性存储介质中的操作系统和计算机程序的运行提供环境。该java应用程序防篡改的判断的处理设备的数据库用于存储执行java应用程序防篡改的判断方法过程中采用或生成的数据。该计算机设备的网络接口用于与外部的终端通过网络连接通信。该java应用程序被处理器执行时以实现一种java应用程序防篡改的判断方法。本示例中,计算机设备可以为执行java程序编译的java编译设备,也可以为实现java程序运行处理的java运行设备。
请参见图2为本申请一个实施例中一种java应用程序防篡改的判断方法的步骤流程图,应用于加载器,该加载器连接程序运行器,在运行目标java应用程序前,用户可以通过自定义的加载器提前对java应用程序进行验证,判断java应用程序是否被篡改。所述方法包括如下步骤:
步骤201,在加载所述java应用程序过程中通过签名信息判断所述java应用程序是否被修改;
在java应用程序运行前,需要先对java应用程序进行检测,进而可以判断java应用程序是否被修改,检测过程具体的,检测java应用程序的签名信息,进而判断java应用程序的签名信息与预先存储的签名信息是否一致,也可以检测java应用程序的文件大小值,进而判断java应用程序的文件大小值与预先存储的对比值是否一致,还可以检测java应用程序的修改时间,进而判断java应用程序的修改时间是否为预先存储的该java应用程序对应的修改时间。
在本申请一实施例中,所述步骤201,包括如下子步骤:
子步骤S11,加载所述java应用程序内的签名信息;
在java源程序防篡改编译过程,编译端可以对java源程序通过encrypt(私钥,摘要算法)算法生成签名信息,并将该签名信息与java源程序进行混淆,生成java应用程序。
在加载java应用程序后,可以通过decrypt(公钥,摘要算法)算法对java应用程序进行解密,进而加载java应用程序的签名。
子步骤S12,判断所述java应用程序内的签名信息与预设签名信息是否一致;
子步骤S13,在所述java应用程序内的签名信息与所述预设签名信息一致时,判定所述java应用程序没有被修改;
子步骤S14,在所述java应用程序内的签名信息与所述预设签名信息不一致时,判定所述java应用程序被修改。
在本申请实施例中,通过签名信息对java应用程序进行验证,增加了判断java应用程序是否被纂改过程的难度,增强了安全性。
在所述java应用程序没有被修改时,将所述java应用程序发送至所述程序运行器,所述程序运行器用于运行所述java应用程序;
在java应用程序没有被修改时,将java应用程序的class文件发送至程序运行器,程序运行器当需要使用某个类时,程序运行器会加载java应用程序中对应的class文件,并创建对应的class对象,将class文件加载到程序运行器的内存,进而完成java应用程序的运行。
步骤202,在所述java应用程序被修改时,告警用户和/或退出。
在java应用程序被修改时,不能运行该java应用程序,并且需要告警用户,提醒用户该java应用程序的获取来源可能存在问题,具体的,告警用户可以是直接外放用户能够识别的报警声,也可以是发送告警信息至用户对应的移动终端,进而保证及时告警用户和/或退出。
本申请java应用程序防篡改的判断方法通过在加载所述java应用程序过程中通过签名信息判断所述java应用程序是否被修改,在所述java应用程序被修改时,告警用户和/或退出。实现了在java应用程序运行之前,加载器预先判断java应用程序是否被篡改,即可以在java应用程序运行之前判断java应用程序是否被篡改,可以避免运行被篡改后Java应用程序对程序运行端造成威胁。
请参见图3为,本申请一个实施例中又一种java应用程序防篡改的判断方法的步骤流程图,所述方法包括如下步骤:
步骤301,加载java应用程序中目标class文件的签名信息;
在java源程序防篡改编译过程,编译端可以对java源程序通过encrypt(私钥,摘要算法)算法生成签名信息,并将该签名信息与源程序中的目标class字节码进行混淆,生成目标class文件,用目标class文件替换目标class字节码,进而得到java应用程序。
在加载java应用程序后,可以通过decrypt(公钥,摘要算法)算法对目标class文件进行解密,进而加载java应用程序的签名。
在本申请一实施例中,所述步骤301,包括:
通过预设的混淆算法将所述目标class文件并解析为字节码以及签名信息。
混淆算法是一种源码保护方法,通过各种变换手段,将原本简单易懂的源代码转化为复杂难懂的代码。从而达到对抗逆向分析者对软件产品源代码的静态逆向分析,使其需要耗费大量时间精力才能大致理解代码的原理。最终达到保护软件产品核心逻辑不被攻击者掌握,避免造成不可挽回的损失,混淆算法可以用于class字节码,也可以用于class字节码编译而成的中间代码。
在本申请一实施例中,所述java应用程序中包括至少一个class文件,所述步骤301,包括如下子步骤:
子步骤S21,加载所述java应用程序中的class文件,判断所述class文件是否在目标jar包路径下;
其中,jar(Java ARchive,Java归档)是一种与平台无关的文件格式,jar包可将多个文件合成一个文件包,在java应用程序中可以包含1个或者2个以上的jar包。
如图4,在java源程序防篡改编译过程,编译端可以解析java源程序,并在java源程序中查找所有的jar包,进而过滤出目标jar包路径下的目标class文件,从目标class文件中读取目标class字节码,将签名信息与目标class字节码进行混淆,生成目标class文件,用目标class文件替换目标class字节码,循环上述步骤,直到所有目标jar包路径下的目标class文件全部处理完成,进而得到java应用程序。
因此,本申请并不是针对java应用程序中的所有class文件,而是特定的目标class文件,该目标class文件位于目标jar包路径下,在加载到class文件后,需要先判断class文件所在的jar包路径是否为目标jar包路径,即判断class文件是否在目标jar包路径下。
子步骤S22,在所述class文件在目标jar包路径下时,判断所述class文件为目标class文件,并加载所述目标class文件的签名信息。
在class文件在目标jar包路径下时,即加载的class文件为目标class文件,此时,通过预设的混淆算法将目标class文件解析为字节码以及签名信息。
进一步的,所述子步骤S22后,还包括:
在所述class文件不在所述目标jar包路径下时,所述class文件为第三方class文件,将所述第三方class文件发送至所述程序运行器,所述程序运行器用于运行所述第三方class文件。在本申请实施例中,不需要保护的三方代码可以直接使其运行,减轻了加载器判断的负荷。
在本申请实施例中,若加载的class文件不在所述目标jar包路径下,则该加载的class文件并不是需要防篡改的目标class文件,而是第三方class文件,第三方class文件是否被篡改不会对程序运行端造成威胁,因此,可以将所述第三方class文件发送至程序运行器,由程序运行器运行该第三方class文件,实现了通过目标jar包路径下的class文件判断算法对class文件进行分类,隔离出需要防篡改的目标class文件和三方代码。
步骤302,判断所述java应用程序内的签名信息与预设签名信息是否一致;
在本申请一实施例中,所述步骤302,包括:
通过decrypt判断所述目标class文件内的签名信息与所述预设签名信息是否一致。
步骤303,在所述java应用程序内的签名信息与所述预设签名信息一致时,判定所述java应用程序没有被修改;
步骤304,在所述java应用程序内的签名信息与所述预设签名信息不一致时,判定所述java应用程序被修改。
步骤305,在所述java应用程序没有被修改时,将所述目标class文件发送至所述程序运行器,所述程序运行器用于运行所述目标class文件;
步骤306,在所述java应用程序被修改时,告警用户和/或退出。
在本申请实施例中,通过加载java应用程序中目标class文件的签名信息,判断java应用程序的签名信息与预先存储的签名信息是否一致;进而可以判断目标class文件是否被修改,实现了,监控或者判断程序是否被篡改的功能,并且由于并不是笼统的对整个java应用程序进行判断,而是针对每一个目标class文件的判断,因此可以定位被篡改的具体class文件,可以更好的用于后期的维护。
为了便于上述实施例的理解,以下通过一具体示例进行举例说明,需要说明的是,该具体示例并不构成对本申请实施例的限定,如图5所示,为java应用程序防篡改的判断方法的执行过程,具体执行步骤如下所示:
1)程序运行器指定自定义加载器加载java应用程序中的class文件;
2)判断class文件是否在目标jar包路径下;
3)如果class文件在目标jar包路径下,class文件为目标class文件,读取目标class文件,通过预设混淆算法从目标class文件解析出字节码数据和签名信息,通过decrypt(公钥,摘要算法)验证字节码数据和签名信息是否一致,如果不一致,则目标class文件被篡改,对用户进行告警提醒并退出,如果一致,程序运行器加载目标class文件;
4)如果class文件不在指定包路径下,程序运行器加载class文件。
参见图6,是本申请一实施例提供的一种java应用程序的防篡改编译方法的步骤流程图,所述方法包括如下步骤:
步骤601,为java应用程序添加签名信息,在加载所述java应用程序过程中通过所述签名信息判断所述java应用程序是否被修改;在所述java应用程序被修改时,告警用户和/或退出。
在本申请一实施例中,所述步骤601,包括如下子步骤:
子步骤S31,解析所述java源程序中目标jar包路径下的class文件;
子步骤S32,将所述签名信息与所述目标jar包路径下的class文件的字节码混淆,生成目标class文件;
子步骤S33,使用所述目标class文件替换所述java源程序中目标jar包路径下的class文件,生成java应用程序。
本方法为一种java应用程序防篡改的判断方法执行前的java应用程序的防篡改编译方法,由于在java应用程序的防篡改编译方法的实施例中有解释说明,此处不作过多解释说明。
参见图7,是本申请一实施例提供的一种java应用程序防篡改的判断装置的结构示意图,应用于加载器,所述加载器连接程序运行器,所述装置包括:
修改判断模块701,用于在加载所述java应用程序过程中通过签名信息判断所述java应用程序是否被修改;
告警模块702,用于在所述java应用程序被修改时,告警用户和/或退出。
在本申请一实施例中,所述修改判断模块701,包括如下子模块:
签名信息加载子模块,用于加载所述java应用程序内的签名信息;
签名信息判断子模块,用于判断所述java应用程序内的签名信息与预设签名信息是否一致,在所述java应用程序内的签名信息与所述预设签名信息一致时,判定所述java应用程序没有被修改,在所述java应用程序内的签名信息与所述预设签名信息不一致时,判定所述java应用程序被修改。
在本申请一实施例中,所述签名信息加载子模块,包括:
签名信息加载单元,用于加载java应用程序中目标class文件的签名信息。
在本申请一实施例中,所述加载java应用程序中包括至少一个class文件,所述签名信息加载单元,包括:
目标jar包路径判断子单元,用于加载所述java应用程序中的class文件,判断所述class文件是否在目标jar包路径下;
目标class文件加载子单元,用于在所述class文件在目标jar包路径下时,判定所述class文件为目标class文件,并加载所述目标class文件的签名信息。
在本申请一实施例中,所述装置还包括:
第三方运行模块,用于在所述class文件不在所述目标jar包路径下时,所述class文件为第三方class文件,将所述第三方class文件发送至程序运行器,所述程序运行器用于运行所述第三方class文件。
在本申请一实施例中,所述签名信息加载单元,包括:
混淆算法加载子单元,用于通过预设的混淆算法加载所述目标class文件并解析为字节码以及签名信息。
在本申请一实施例中,所述签名信息判断子模块,包括:
decrypt判断单元,用于通过decrypt判断所述目标class文件内的签名信息与所述预设签名信息是否一致。
本申请java应用程序防篡改的判断方法通过判断java应用程序是否被修改,在所述java应用程序没有被修改时,将所述java应用程序发送至所述程序运行器,所述程序运行器用于运行所述java应用程序,在所述java应用程序被修改时,告警用户。实现了在java应用程序运行之前,加载器预先判断java应用程序是否被篡改,即可以在java应用程序运行之前判断java应用程序是否被篡改,可以避免运行被篡改后Java应用程序对程序运行端造成威胁。
参见图8,是本申请一实施例提供的一种java应用程序的防篡改编译装置的结构示意图,所述装置包括:
签名信息添加模块801,用于为java源程序添加签名信息,生成java应用程序,在加载所述java应用程序过程中通过所述签名信息判断所述java应用程序是否被修改;在所述java应用程序被修改时,告警用户和/或退出。
在本申请一实施例中,所述签名信息添加模块801,包括:
class文件解析子模块,用于解析所述java源程序中目标jar包路径下的class文件;
混淆子模块,用于将所述签名信息与所述目标jar包路径下的class文件的字节码混淆,生成目标class文件;
目标class文件替换子模块,用于使用所述目标class文件替换所述java源程序中目标jar包路径下的class文件,生成java应用程序。
本申请还提供了一种计算机存储介质,如图9所示,计算机存储介质900用于存储计算机程序91,计算机程序能够被执行以实现上述实施例中定位方法的步骤。
本申请定位方法实施例中所涉及到的方法,在实现时以软件功能单元的形式存在并作为独立的产品销售或使用时,可以存储在装置700中,例如一个计算机可读取存储介质中。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)或处理器(processor)执行本申请各个实施方式所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。
以上所述仅为本申请的实施方式,并非因此限制本申请的专利范围,凡是利用本申请说明书及附图内容所作的等效结构或等效流程变换,或直接或间接运用在其他相关的技术领域,均同理包括在本申请的专利保护范围内。

Claims (10)

1.一种java应用程序防篡改的判断方法,其特征在于,所述方法包括:
在加载所述java应用程序过程中通过签名信息判断所述java应用程序是否被修改;
在所述java应用程序被修改时,告警用户和/或退出。
2.根据权利要求1所述的java应用程序防篡改的判断方法,其特征在于,所述在加载所述java应用程序过程中通过签名信息判断所述java应用程序是否被修改包括:
加载所述java应用程序内的签名信息;
判断所述java应用程序内的签名信息与预设签名信息是否一致;
在所述java应用程序内的签名信息与所述预设签名信息一致时,判定所述java应用程序没有被修改,在所述java应用程序内的签名信息与所述预设签名信息不一致时,判定所述java应用程序被修改。
3.根据权利要求2所述的java应用程序防篡改的判断方法,其特征在于,所述加载所述java应用程序内的签名信息,包括:
加载java应用程序中目标class文件的签名信息。
4.根据权利要求3所述的java应用程序防篡改的判断方法,其特征在于,所述加载java应用程序中包括至少一个class文件,所述加载java应用程序中目标class文件的签名信息,包括:
加载所述java应用程序中的class文件,判断所述class文件是否在目标jar包路径下;
在所述class文件在目标jar包路径下时,判定所述class文件为目标class文件,并加载所述目标class文件的签名信息。
5.根据权利要求4所述的java应用程序防篡改的判断方法,其特征在于,所述加载所述java应用程序中的class文件,判断所述class文件是否在目标jar包路径下后,还包括:
在所述class文件不在所述目标jar包路径下时,所述class文件为第三方class文件,将所述第三方class文件发送至程序运行器,所述程序运行器用于运行所述第三方class文件。
6.根据权利要求3所述的java应用程序防篡改的判断方法,其特征在于,所述加载java应用程序中目标class文件的签名信息,包括:
通过预设的混淆算法加载所述目标class文件并解析为字节码以及签名信息。
7.根据权利要求3所述的java应用程序防篡改的判断方法,其特征在于,所述判断所述java应用程序内的签名信息与所述预设签名信息是否一致,包括:
通过decrypt判断所述目标class文件内的签名信息与所述预设签名信息是否一致。
8.一种java应用程序的防篡改编译方法,其特征在于,所述方法包括:
为java源程序添加签名信息,生成java应用程序,在加载所述java应用程序过程中通过所述签名信息判断所述java应用程序是否被修改;在所述java应用程序被修改时,告警用户和/或退出。
9.根据权利要求8所述的java应用程序的防篡改编译方法,其特征在于,所述为java源程序添加签名信息,生成java应用程序,包括:
解析所述java源程序中目标jar包路径下的class文件;
将所述签名信息与所述目标jar包路径下的class文件的字节码混淆,生成目标class文件;
使用所述目标class文件替换所述java源程序中目标jar包路径下的class文件,生成java应用程序。
10.一种处理设备,其特征在于,包括处理器、存储器以及存储在所述存储器中且被配置为由所述处理器执行的计算机程序,所述处理器执行所述计算机程序时实现如权利要求1至9中任意一项所述的java应用程序防篡改的判断方法以及一种java应用程序的生成方法。
CN202111638177.0A 2021-12-29 2021-12-29 java应用程序防篡改的判断方法、编译方法及设备 Pending CN114357387A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202111638177.0A CN114357387A (zh) 2021-12-29 2021-12-29 java应用程序防篡改的判断方法、编译方法及设备

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202111638177.0A CN114357387A (zh) 2021-12-29 2021-12-29 java应用程序防篡改的判断方法、编译方法及设备

Publications (1)

Publication Number Publication Date
CN114357387A true CN114357387A (zh) 2022-04-15

Family

ID=81104208

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202111638177.0A Pending CN114357387A (zh) 2021-12-29 2021-12-29 java应用程序防篡改的判断方法、编译方法及设备

Country Status (1)

Country Link
CN (1) CN114357387A (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN115659319A (zh) * 2022-12-15 2023-01-31 成都数默科技有限公司 基于JavaAgent的Java应用防篡改方法

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN115659319A (zh) * 2022-12-15 2023-01-31 成都数默科技有限公司 基于JavaAgent的Java应用防篡改方法

Similar Documents

Publication Publication Date Title
US9934375B2 (en) Secured execution of a web application
EP2634959B1 (en) Method and Apparatus for Incremental Code Signing
US7181603B2 (en) Method of secure function loading
EP2420949B1 (en) Information processing system, information processing method, information processing program, computer readable medium and computer data signal
US8225290B2 (en) Systems and methods for regulating execution of computer software
US10482221B2 (en) Protecting a computer program against reverse engineering
CN111191195A (zh) 一种用于保护apk的方法和装置
Götzfried et al. Soteria: Offline software protection within low-cost embedded devices
EP2492833A1 (en) Method and apparatus for detecting malicious software
CN112613037A (zh) 一种代码校验方法及装置
CN110765470A (zh) 安全键盘实现方法、装置、计算机设备及存储介质
Zheng et al. Security analysis of modern mission critical android mobile applications
Lee et al. Keeping host sanity for security of the SCADA systems
CN115640572A (zh) 一种iPhone端沙盒应用的安全检测与加固方法
CN114357387A (zh) java应用程序防篡改的判断方法、编译方法及设备
CN111159658A (zh) 字节码处理方法、系统、装置、计算机设备和存储介质
KR101557455B1 (ko) 응용 프로그램 코드 분석 장치 및 그것을 이용한 코드 분석 방법
Xu et al. N-version obfuscation
Lee et al. Classification and analysis of security techniques for the user terminal area in the internet banking service
Jia et al. ERMDS: A obfuscation dataset for evaluating robustness of learning-based malware detection system
CN114238940A (zh) 软件安装包的处理方法、装置及可读存储介质
Zahran et al. Cross-platform malware: study of the forthcoming hazard adaptation and behavior
CN112800416A (zh) 一种用于调用链的安全防护系统及方法
CN111753263A (zh) 一种基于macOS系统的无感加解密方法
CN112668025A (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