Application program running method and device, electronic equipment and storage medium

By encrypting and formatting Java application executable files, the method prevents decompilation and secures the source code, addressing vulnerabilities in Java applications.

CN119167332APending Publication Date: 2024-12-20EVERSEC BEIJING TECH
View PDF 0 Cites 0 Cited by

Patent Information

Application Number
CN202411178086.7
Authority / Receiving Office
CN · China
Patent Type
Applications(China)
Current Assignee / Owner
Filing Date
2024-08-26
Publication Date
2024-12-20

AI Technical Summary

Technical Problem

Java applications developed using the Java language are vulnerable to decompilation, leading to security risks and intellectual property theft due to easy access to the source code.

Method used

Implement a method that encrypts and formats the executable file of a Java application on a development machine, using a special file format and encryption mechanism to generate multiple suspected executable files, which are then determined on a target machine to prevent decompilation.

Benefits of technology

The method effectively prevents decompilation of Java source code during deployment and execution, enhancing security and protecting intellectual property by interfering with potential decompilation operations.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN119167332A_ABST
    Figure CN119167332A_ABST
Patent Text Reader

Abstract

The embodiment of the invention discloses an application program running method and device, electronic equipment and a storage medium, and the method comprises the steps: obtaining a special format file corresponding to an executable file from a deployment file package based on a special file format corresponding to the executable file of a java application program, obtaining an encrypted executable file corresponding to the executable file based on the special format file; generating a plurality of suspected executable files based on the encrypted executable file and an encryption mode corresponding to the executable file, and determining the executable file based on the plurality of suspected executable files; and calling the java virtual machine on the target machine to start the executable file to run the java application program. According to the embodiment of the invention, the source code of the java application program can be effectively prevented from being decompiled on the premise of not changing the source code of the original java application program and not changing the function of the original application program.
Need to check novelty before this filing date? Find Prior Art

Description

Technical Field

[0001] The present invention relates to the field of computer technology, and in particular to an application running method, device, electronic device and storage medium. Background Art

[0002] Currently, a large number of applications are developed based on Java language compilation, which is a language that is easily decompiled. Therefore, when deploying and running applications based on Java language, the Java source code is easily decompiled by hackers and competitors to find out the implementation logic, which has poor security and intellectual property rights are easily stolen. Therefore, there is an urgent need for a Java application running method that can reduce the risk of Java source code being decompiled. Summary of the invention

[0003] The embodiments of the present invention provide an application running method, device, electronic device and storage medium, which can effectively prevent the Java application source code from being decompiled without changing the original Java application source code and without changing the original application function, thereby reducing the risk of the Java source code being decompiled.

[0004] In a first aspect, an embodiment of the present invention provides an application program running method, which is applied to a target machine and includes: implementing by executing a shell program in a deployment file package of a Java application program, including:

[0005] Based on the special file format corresponding to the executable file of the Java application, obtain the special format file corresponding to the executable file from the deployment file package, and obtain the encrypted executable file corresponding to the executable file based on the special format file;

[0006] generating a plurality of suspected executable files based on the encrypted executable file and the encryption method corresponding to the executable file, and determining the executable file based on the plurality of suspected executable files; and

[0007] The Java virtual machine on the target machine is called to start the executable file to run the Java application.

[0008] In a second aspect, an embodiment of the present invention provides an application program running method, which is applied to a development machine and includes:

[0009] Obtaining an executable file in a compiled packaged file of a Java application and encrypting the executable file to obtain an encrypted executable file;

[0010] Performing special format processing on the encrypted executable file to obtain a special format file;

[0011] Generate a shell program based on the encryption method and the special format corresponding to the special format file; and

[0012] A deployment file package of the Java application is generated based on the specially-made format file and the shell program, so as to run the Java application based on the deployment file package.

[0013] In a third aspect, an embodiment of the present invention provides an application running device, which is integrated in a target machine, and includes: an encrypted executable file acquisition module, which is used to acquire a specially-made format file corresponding to the executable file from the deployment file package based on a specially-made file format corresponding to the executable file of the Java application, and acquire an encrypted executable file corresponding to the executable file based on the specially-made format file;

[0014] an executable file acquisition module, configured to generate a plurality of suspected executable files based on the encrypted executable file and the encryption method corresponding to the executable file, and determine the executable file based on the plurality of suspected executable files; and

[0015] The running module is used to call the Java virtual machine on the target machine to start the executable file and run the Java application.

[0016] In a fourth aspect, an embodiment of the present invention provides an application program running device, which is integrated in a development machine and includes:

[0017] An acquisition and encryption processing module is used to acquire an executable file in a compiled and packaged file of a Java application and encrypt the executable file to obtain an encrypted executable file;

[0018] A format-specific module, used for performing format-specific processing on the encrypted executable file to obtain a specially formatted file;

[0019] a shell program generating module, used for generating a shell program based on the encryption method and the special format corresponding to the special format file; and

[0020] A deployment file package generation module is used to generate a deployment file package of the Java application based on the special format file and the shell program, so as to run the Java application based on the deployment file package.

[0021] In a fifth aspect, an embodiment of the present invention further provides an electronic device, comprising a memory, a processor, and a computer program stored in the memory and executable on the processor, wherein when the processor executes the program, an application program running method as described in any one of the embodiments of the present invention is implemented.

[0022] In a sixth aspect, an embodiment of the present invention further provides a computer-readable storage medium having a computer program stored thereon, which, when executed by a processor, implements an application program running method as described in any one of the embodiments of the present invention.

[0023] The embodiments of the present invention provide an application running method, device, electronic device and storage medium. The method encrypts and formats the executable file of a Java application on a development machine in sequence, obtains the encrypted executable file based on the specially-formed format on a target machine, and further obtains multiple suspected executable files based on the encryption method and the encrypted executable file. In the process of obtaining the suspected executable files, the special file format and encryption mechanism are used to protect and interfere with potential decompilation operations, and then the executable files are determined based on the multiple suspected executable files. Based on the multiple suspected executable files, potential decompilation operations are further interfered with, ensuring that the source code is not easily de-encoded during the process of deploying and running the Java application on the target machine, thereby improving the security of the source code and preventing the intellectual property rights of the Java application from being stolen. BRIEF DESCRIPTION OF THE DRAWINGS

[0024] In order to more clearly illustrate the technical solution of the present invention, the drawings required for use in the embodiments are briefly introduced below. It should be understood that the following drawings only show certain embodiments of the present invention and therefore should not be regarded as limiting the scope. For ordinary technicians in this field, other related drawings can be obtained based on these drawings without paying creative work.

[0025] Figure 1 It is a flowchart of a method for running an application program applied to a target machine provided by an embodiment of the present invention;

[0026] Figure 2 is another flowchart of a method for running an application program applied to a target machine provided by an embodiment of the present invention;

[0027] Figure 3 is another flowchart of a method for running an application program applied to a target machine provided by an embodiment of the present invention;

[0028] Figure 4 It is a flowchart of a method for running an application program applied to a development machine provided by an embodiment of the present invention;

[0029] Figure 5 It is a schematic diagram of the structure of compiling a package file and a deployment package file in the application running method provided by an embodiment of the present invention;

[0030] Figure 6 It is a structural schematic diagram of an application program running device integrated in a target machine provided by an embodiment of the present invention;

[0031] Figure 7 It is a structural schematic diagram of an application program running device integrated in a development machine provided by an embodiment of the present invention;

[0032] Figure 8 It is a structural schematic diagram of an electronic device provided by an embodiment of the present invention. DETAILED DESCRIPTION

[0033] In order to enable those skilled in the art to better understand the scheme of the present invention, the technical scheme in the embodiments of the present invention will be clearly and completely described below in conjunction with the drawings in the embodiments of the present invention. Obviously, the described embodiments are only part of the embodiments of the present invention, not all of the embodiments. Based on the embodiments of the present invention, all other embodiments obtained by ordinary technicians in this field without creative work should fall within the scope of protection of the present invention.

[0034] It should be noted that the terms "first", "second", etc. in the specification and claims of the present invention and the above-mentioned drawings are used to distinguish similar objects, and are not necessarily used to describe a specific order or sequence. It should be understood that the data used in this way can be interchanged where appropriate, so that the embodiments of the present invention described herein can be implemented in an order other than those illustrated or described herein. In addition, the terms "including" and "having" and any variations thereof are intended to cover non-exclusive inclusions, for example, a process, method, system, product or device that includes a series of steps or units is not necessarily limited to those steps or units that are clearly listed, but may include other steps or units that are not clearly listed or inherent to these processes, methods, products or devices.

[0035] Figure 1 The present invention provides a flowchart of an application program running method according to an embodiment of the present invention. The present embodiment can be applied to a target machine. The method can be implemented by executing a shell program in a deployment file package of a Java application program by an application program running device integrated in the target machine according to an embodiment of the present invention. The application program running device can be implemented in software and / or hardware. In a specific embodiment, the device can be integrated in an electronic device, such as a computer, a server, etc. The following embodiments will be described by taking the device integrated in an electronic device as an example. Reference Figure 1 , the method may specifically include the following steps:

[0036] Step 101, based on the special file format corresponding to the executable file of the Java application, obtain the special format file corresponding to the executable file from the deployment file package, and obtain the encrypted executable file corresponding to the executable file based on the special format file. This step can interfere with potential decompilation operations based on the special file format and encryption mechanism, and is conducive to generating a suspected executable file based on the encrypted executable file.

[0037] Specifically, the Java application can be an application running under a Linux operating system, or can be an application running under other operating systems.

[0038] Optionally, the specially-made format file includes a specially-made file header and a specially-made file body.

[0039] Optionally, the specially made file header includes specially made magic bytes, file identification bytes, file size bytes, operation parameter length bytes, operation parameter bytes and cyclic redundancy check code bytes; the specially made file body includes an encrypted executable file.

[0040] Specifically, the encrypted executable file may be obtained by encrypting the executable file in the compiled package file of the Java application, namely, the jar file.

[0041] Specifically, the above process of encrypting the executable file, ie, the jar file, may be performed using dictionary encryption, symmetric encryption, and / or asymmetric encryption.

[0042] In an optional specific example, as shown in Table 1, the magic byte can be set to 2 bytes of "0xffff", the file identifier can be set to 16 bytes of "EVERSECDATAFILE", the file size byte can include 4 bytes, the operating parameter length byte can include 4 bytes, the operating parameter byte can be an encrypted startup parameter, specifically can include 256 bytes of "-Xmx=1G-Xms=1G", and the cyclic redundancy check code (CyclicRedundancy Check, CRC) byte can include 8 bytes.

[0043]

[0044] Table 1

[0045] Optionally, the process of obtaining the encrypted executable file corresponding to the executable file based on the special format file includes: obtaining the file body in the special format file to obtain the encrypted executable file.

[0046] Specifically, the specially-made format file may also be a file format specially made in other private ways, for example, the file body includes an encrypted executable file and other specially-made bytes.

[0047] Step 102: Generate multiple suspected executable files based on the encrypted executable file and the encryption method corresponding to the executable file, and determine the executable file based on the multiple suspected executable files. This step can interfere with potential decompilation operations based on the multiple suspected executable files, and facilitate the subsequent startup of the executable file to run the Java application.

[0048] Optionally, before generating multiple suspected executable files based on the encrypted executable file and the encryption method corresponding to the executable file, the executable file feature is obtained. The process of generating multiple suspected executable files based on the encrypted executable file and the encryption method corresponding to the executable file includes:

[0049] An interference file is generated based on the executable file feature, and the encrypted executable file is decrypted based on the encryption method corresponding to the executable file to obtain the executable file, thereby obtaining a plurality of suspected executable files including the executable file and the interference file.

[0050] Optionally, while decrypting the encrypted executable file based on the encryption method corresponding to the executable file to obtain the executable file, an identification mark of the executable file is generated.

[0051] Optionally, the process of determining the executable file based on multiple suspected executable files includes: determining the executable file from the multiple suspected executable files based on a pre-stored executable file identification identifier.

[0052] Step 103, calling the Java virtual machine on the target machine to start the executable file to run the Java application. This step is combined with step 101 and step 102, by obtaining the encrypted executable file based on the special format on the target machine, and further gradually obtaining multiple suspected executable files based on the encryption method and the encrypted executable file. In the process of obtaining the suspected executable file, the special file format and encryption mechanism are used to protect and interfere with potential decompilation operations, and then the executable file is determined based on the multiple suspected executable files, and the potential decompilation operations are further interfered with based on the multiple suspected executable files, so as to ensure that the source code is not easily decoded during the deployment and operation of the Java application, improve the security of the source code, and prevent the intellectual property of the Java application from being stolen.

[0053] Optionally, the shell program in the embodiment of the present invention is developed using a difficult decompilation language. Specifically, the difficult decompilation language includes C, C++ or GO language.

[0054] The following further describes an application program running method applied to a target machine provided by another embodiment of the present invention. Figure 2 As shown, Figure 1Step 102 in may include the following steps:

[0055] Step 1021, decrypt the encrypted executable file based on the encryption method to obtain an executable file.

[0056] Optionally, before decrypting the encrypted executable file based on the encryption method to obtain the executable file, a decryption key corresponding to the encrypted executable file is obtained.

[0057] Optionally, the process of decrypting the encrypted executable file based on the encryption method to obtain the executable file includes: decrypting the encrypted executable file based on the decryption key to obtain the executable file.

[0058] Step 1022: Generate an interference file based on the executable file, and then obtain a plurality of suspected executable files including the executable file and the interference file.

[0059] Optionally, the process of generating an interference file based on an executable file includes: generating an executable file based on features of the executable file.

[0060] Specifically, the interference file may be generated based on the size and content of the executable file.

[0061] Step 1023: determining an executable file from a plurality of suspected executable files based on the generation order of each suspected executable file.

[0062] Specifically, since the executable file is generated first and then the interference file is generated, the first file among the multiple suspected executable files can be determined as the executable file.

[0063] Specifically, the application running method provided by the embodiment of the present invention successively generates executable files and interference files that constitute the suspected executable files, and determines the executable files based on the generation order, which can not only prevent decompilation, but also conveniently and efficiently determine the executable files, which is conducive to conveniently and efficiently starting the executable files to run the Java application.

[0064] The following further describes an application program running method applied to a target machine provided by another embodiment of the present invention. Figure 3 As shown, the following steps may be included:

[0065] Step 301, based on the special file format corresponding to the executable file of the Java application, obtain the special format file corresponding to the executable file from the deployment file package, and obtain the encrypted executable file corresponding to the executable file based on the special format file.

[0066] Step 302: Check whether the specially-made format file has been tampered with based on the cyclic redundancy check code bytes.

[0067] Specifically, by checking whether the specially-made format file has been tampered with based on the cyclic redundancy check code, it can be helpful to ensure that the executable file finally obtained has not been implanted with malicious code, thereby avoiding malicious attacks.

[0068] Step 303: Generate multiple suspected executable files based on the encrypted executable file and the encryption method corresponding to the executable file, and determine the executable file based on the multiple suspected executable files.

[0069] Step 304, forcibly close the log output of the Java application.

[0070] Specifically, by forcibly closing the log output of the Java application, the leakage of sensitive information such as the server IP address and user account can be avoided.

[0071] Step 305: Invoke the Java virtual machine on the target machine to start the executable file and run the Java application.

[0072] Step 306, monitoring the startup progress of the executable file, and deleting the executable file after the startup of the executable file is completed.

[0073] Specifically, by deleting the executable file, it is further prevented that potential decompilers obtain the source code through the executable file on the target machine.

[0074] The embodiments of the present invention can not only further strengthen the prevention of decompilation, but also avoid malicious attacks and protect sensitive information.

[0075] Figure 4 The present invention provides a flowchart of an application program running method. The present invention can be applied to a development machine. The method can be executed by an application program running device integrated in the development machine provided by the present invention. The device can be implemented in software and / or hardware. In a specific embodiment, the device can be integrated in an electronic device, such as a computer, a server, etc. The following embodiments will be described by taking the device integrated in an electronic device as an example. Reference Figure 4 , the method may specifically include the following steps:

[0076] Step 401, obtaining an executable file in a compiled and packaged file of a Java application and encrypting the executable file to obtain an encrypted executable file.

[0077] Specifically, the above executable file is a jar file.

[0078] Optionally, the above process of encrypting the executable file includes: encrypting the executable file by using dictionary encryption, symmetric encryption and / or asymmetric encryption.

[0079] Step 402: Perform special format processing on the encrypted executable file to obtain a special format file.

[0080] Optionally, the process of performing special format processing on the encrypted executable file to obtain a special format file includes:

[0081] A special file header is generated based on a special magic byte, a file identification byte, a file size byte, an operation parameter length byte, an operation parameter byte and a cyclic redundancy check code byte; and a special format file is generated by using the special file header and the special file body, with the encrypted executable file as the special file body.

[0082] Step 403: Generate a shell program based on the encryption method and the special format corresponding to the special format file.

[0083] Optionally, the process of generating a shell program based on the encryption method and the special format corresponding to the special format file includes: adding the encryption method and the special format corresponding to the special format file to the shell program.

[0084] Step 404: Generate a deployment file package of the Java application based on the specially-made format file and the shell program, so as to run the Java application based on the deployment file package.

[0085] Optionally, the process of generating a deployment file package of a Java application based on the specially-made format file and the shell program includes:

[0086] The deployment file package is generated by utilizing the specially-made format file, the shell program and other original files in the compiled package file.

[0087] Specifically, the other original files in the above compiled packaged file include dependent library files such as lib files, and configuration files such as config files.

[0088] In an optional specific example, the structures of the above-mentioned compilation package file and deployment file package are as follows: Figure 5 shown.

[0089] The application running method provided by the embodiment of the present invention can facilitate obtaining the executable file in multiple steps on the target machine side by encrypting and specially formatting the executable file of the Java application on the development machine side in turn to generate a specially formatted file corresponding to the executable file, and generating a shell program based on the encryption method and the specially formatted file, so as to avoid the risk of source code being decompiled caused by obtaining the executable file in one step, and effectively perform decompilation in each step.

[0090] Figure 61 is a structural diagram of an application program running device provided in an embodiment of the present invention. The device is integrated in a target machine and is suitable for executing an application program running method applied to a target machine provided in an embodiment of the present invention. Figure 6 As shown, the device may specifically include:

[0091] The encrypted executable file acquisition module 601 is used to acquire the specially-made format file corresponding to the executable file from the deployment file package based on the specially-made file format corresponding to the executable file of the Java application, and acquire the encrypted executable file corresponding to the executable file based on the specially-made format file. This module can interfere with potential decompilation operations based on the specially-made file format and encryption mechanism, and is useful for generating a suspected executable file based on the encrypted executable file.

[0092] Optionally, the specially-made format file includes a specially-made file header and a specially-made file body.

[0093] Optionally, the specially made file header includes specially made magic bytes, file identification bytes, file size bytes, operation parameter length bytes, operation parameter bytes and cyclic redundancy check code bytes; the specially made file body includes an encrypted executable file.

[0094] The executable file acquisition module 602 is used to generate multiple suspected executable files based on the encrypted executable file and the encryption method corresponding to the executable file, and determine the executable file based on the multiple suspected executable files. This module can interfere with potential decompilation operations based on the multiple suspected executable files, and facilitate the subsequent startup of the executable file to run the Java application.

[0095] Optionally, the executable file acquisition module 602 can be specifically used to decrypt the encrypted executable file based on the encryption method to obtain the executable file;

[0096] generating an interference file based on the executable file, thereby obtaining a plurality of suspected executable files including the executable file and the interference file; and

[0097] Based on the generation order of each suspected executable file, an executable file is determined from the multiple suspected executable files.

[0098] The running module 603 is used to call the Java virtual machine on the target machine to start the executable file to run the Java application. This module is combined with the module 601 and the module 602, and can obtain the encrypted executable file based on the special format on the target machine, and further gradually obtain multiple suspected executable files based on the encryption method and the encrypted executable file. In the process of obtaining the suspected executable file, it also protects the interference of potential decompilation operations based on the special file format and encryption mechanism, and then determines the executable file based on the multiple suspected executable files, and further interferes with the potential decompilation operations based on the multiple suspected executable files, so as to ensure that the source code is not easily decoded during the deployment and operation of the Java application, improve the security of the source code, and prevent the intellectual property of the Java application from being stolen.

[0099] Optionally, the application running device provided by the embodiment of the present invention also includes a verification module, which is used to verify whether the special format file has been tampered with based on the cyclic redundancy check code bytes before generating multiple suspected executable files based on the encrypted executable file and the encryption method corresponding to the executable file, and when the verification result is that the file has not been tampered with, start executing the multiple suspected executable files generated based on the encrypted executable file and the encryption method corresponding to the executable file.

[0100] Optionally, the application running device provided by an embodiment of the present invention also includes a log closing module, which is used to forcibly close the log output of the Java application before calling the Java virtual machine on the target machine to start the executable file to run the Java application, and after the closure is successful, start executing the Java virtual machine on the target machine to start the executable file to run the Java application.

[0101] Optionally, the application running device provided by the embodiment of the present invention further includes a monitoring and deleting module, which is used to monitor the startup progress of the executable file and delete the executable file after the executable file is successfully started.

[0102] Figure 7 1 is a structural diagram of an application program running device provided in an embodiment of the present invention. The device is integrated in a development machine and is suitable for executing an application program running method applied to a development machine provided in an embodiment of the present invention. Figure 7 As shown, the device may specifically include:

[0103] The acquisition and encryption processing module 701 is used to acquire the executable file in the compiled packaged file of the Java application and encrypt the executable file to obtain an encrypted executable file.

[0104] The format-specific module 702 is used to perform format-specific processing on the encrypted executable file to obtain a specially formatted file.

[0105] Optionally, the above-mentioned format-specific module 702 can be specifically used to generate a special file header based on a special magic byte, a file identification byte, a file size byte, an operation parameter length byte, an operation parameter byte and a cyclic redundancy check code byte; and to use the encrypted executable file as a special file body, and generate a special format file using the special file header and the special file body.

[0106] The shell program generating module 703 is used to generate a shell program based on the encryption method and the special format corresponding to the special format file.

[0107] The deployment file package generating module 704 is used to generate a deployment file package of a Java application based on a specially-made format file and a shell program, so as to run the Java application based on the deployment file package.

[0108] The application running device provided in the embodiment of the present invention can generate a special format file corresponding to the executable file by encrypting and formatting the executable file of the Java application on the development machine, and generate a shell program based on the encryption method and the special format. It can be beneficial to obtain the executable file in multiple steps on the target machine to avoid the risk of source code being decompiled due to obtaining the executable file in one step, and effectively perform decompilation in each step.

[0109] Those skilled in the art can clearly understand that for the convenience and simplicity of description, only the division of the above-mentioned functional modules is used as an example for illustration. In actual applications, the above-mentioned functions can be assigned to different functional modules as needed, that is, the internal structure of the device is divided into different functional modules to complete all or part of the functions described above. The specific working process of the functional modules described above can refer to the corresponding process in the aforementioned method embodiment, and will not be repeated here.

[0110] An embodiment of the present invention further provides an electronic device, comprising a memory, a processor, and a computer program stored in the memory and executable on the processor, wherein when the processor executes the program, the application program executing method provided in any of the above embodiments is implemented.

[0111] An embodiment of the present invention further provides a computer-readable medium on which a computer program is stored. When the program is executed by a processor, the application program running method provided by any of the above embodiments is implemented.

[0112] An embodiment of the present invention further provides a computer program product, including a computer program, which, when executed by a processor, implements the application program running method as described in any one of the embodiments of the present invention.

[0113] Reference below Figure 8, which shows a schematic diagram of the structure of a computer system 800 of an electronic device suitable for implementing an embodiment of the present invention. Figure 8 The electronic device shown is only an example and should not bring any limitation to the functions and scope of use of the embodiments of the present invention.

[0114] like Figure 8 As shown, the computer system 800 includes a central processing unit (CPU) 801, which can perform various appropriate actions and processes according to a program stored in a read-only memory (ROM) 802 or a program loaded from a storage part 808 into a random access memory (RAM) 803. In the RAM 803, various programs and data required for the operation of the system 800 are also stored. The CPU 801, the ROM 802, and the RAM 803 are connected to each other via a bus 804. An input / output (I / O) interface 805 is also connected to the bus 804.

[0115] The following components are connected to the I / O interface 805: an input section 806 including a keyboard, a mouse, etc.; an output section 807 including a cathode ray tube (CRT), a liquid crystal display (LCD), etc., and a speaker, etc.; a storage section 808 including a hard disk, etc.; and a communication section 809 including a network interface card such as a LAN card, a modem, etc. The communication section 809 performs communication processing via a network such as the Internet. A drive 810 is also connected to the I / O interface 805 as needed. A removable medium 811, such as a magnetic disk, an optical disk, a magneto-optical disk, a semiconductor memory, etc., is installed on the drive 810 as needed, so that a computer program read therefrom is installed into the storage section 808 as needed.

[0116] In particular, according to the embodiments disclosed in the present invention, the process described above with reference to the flowchart can be implemented as a computer software program. For example, the embodiments disclosed in the present invention include a computer program product, which includes a computer program carried on a computer-readable medium, and the computer program includes a program code for executing the method shown in the flowchart. In such an embodiment, the computer program can be downloaded and installed from the network through the communication part 809, and / or installed from the removable medium 811. When the computer program is executed by the central processing unit (CPU) 801, the above-mentioned functions defined in the system of the present invention are executed.

[0117] It should be noted that the computer-readable medium shown in the present invention may be a computer-readable signal medium or a computer-readable storage medium or any combination of the above two. The computer-readable storage medium may be, for example, but not limited to, an electrical, magnetic, optical, electromagnetic, infrared, or semiconductor system, device or device, or any combination of the above. More specific examples of computer-readable storage media may include, but are not limited to: an electrical connection with one or more wires, a portable computer disk, a hard disk, a random access memory (RAM), a read-only memory (ROM), an erasable programmable read-only memory (EPROM or flash memory), an optical fiber, a portable compact disk read-only memory (CD-ROM), an optical storage device, a magnetic storage device, or any suitable combination of the above. In the present invention, a computer-readable storage medium may be any tangible medium containing or storing a program that can be used by or in combination with an instruction execution system, device or device. In the present invention, a computer-readable signal medium may include a data signal propagated in a baseband or as part of a carrier wave, which carries a computer-readable program code. This propagated data signal may take a variety of forms, including but not limited to electromagnetic signals, optical signals, or any suitable combination of the above. Computer-readable signal media may also be any computer-readable medium other than computer-readable storage media, which may send, propagate or transmit a program for use by or in conjunction with an instruction execution system, apparatus or device. The program code contained on the computer-readable medium may be transmitted using any appropriate medium, including but not limited to: wireless, wire, optical cable, RF, etc., or any suitable combination of the above.

[0118] The flow chart and block diagram in the accompanying drawings illustrate the possible architecture, function and operation of the system, method and computer program product according to various embodiments of the present invention. In this regard, each box in the flow chart or block diagram can represent a module, a program segment, or a part of a code, and the above-mentioned module, program segment, or a part of a code contains one or more executable instructions for realizing the specified logical function. It should also be noted that in some alternative implementations, the functions marked in the box can also occur in a different order from the order marked in the accompanying drawings. For example, two boxes represented in succession can actually be executed substantially in parallel, and they can sometimes be executed in the opposite order, depending on the functions involved. It should also be noted that each box in the block diagram or flow chart, and the combination of the boxes in the block diagram or flow chart can be implemented with a dedicated hardware-based system that performs a specified function or operation, or can be implemented with a combination of dedicated hardware and computer instructions.

[0119] The modules and / or units involved in the embodiments of the present invention may be implemented in software or hardware. The modules and / or units described may also be set in a processor, for example, it may be described as: a processor including an encrypted executable file acquisition module, an executable file acquisition module, and a running module; or, it may be described as: a processor including an acquisition and encryption processing module, a format-specific module, a shell program generation module, and a deployment file package generation module. The names of these modules do not, in some cases, constitute limitations on the modules themselves.

[0120] As another aspect, the present invention also provides a computer-readable medium, which may be included in the device described in the above embodiment; or may exist independently without being assembled into the device. The above computer-readable medium carries one or more programs, and when the above one or more programs are executed by a device, the device implements: based on the special file format corresponding to the executable file of the Java application, obtain the special format file corresponding to the executable file from the deployment file package, and obtain the encrypted executable file corresponding to the executable file based on the special format file; generate multiple suspected executable files based on the encrypted executable file and the encryption method corresponding to the executable file, and determine the executable file based on the multiple suspected executable files; and call the Java virtual machine on the target machine to start the executable file to run the Java application.

[0121] The above specific implementations do not constitute a limitation on the protection scope of the present invention. It should be understood by those skilled in the art that various modifications, combinations, sub-combinations and substitutions may occur depending on design requirements and other factors. Any modification, equivalent substitution and improvement made within the spirit and principle of the present invention shall be included in the protection scope of the present invention.

Claims

1. A method for running an application program, applied to a target machine, characterized in that: This is achieved by executing the shell program in the deployment file package of the Java application, including: Based on the special file format corresponding to the executable file of the Java application, obtain the special format file corresponding to the executable file from the deployment file package, and obtain the encrypted executable file corresponding to the executable file based on the special format file; generating a plurality of suspected executable files based on the encrypted executable file and the encryption method corresponding to the executable file, and determining the executable file based on the plurality of suspected executable files; and The Java virtual machine on the target machine is called to start the executable file to run the Java application.

2. The application program running method according to claim 1, characterized in that: The specially-made format file includes a specially-made file header and a specially-made file body; The specially made file header includes a specially made magic byte, a file identification byte, a file size byte, an operation parameter length byte, an operation parameter byte and a cyclic redundancy check code byte; the specially made file body includes the encrypted executable file.

3. The application program running method according to claim 1, characterized in that: The generating a plurality of suspected executable files based on the encrypted executable file and the encryption method corresponding to the executable file, and determining the executable file based on the plurality of suspected executable files, comprises: Decrypting the encrypted executable file based on the encryption method to obtain the executable file; generating an interference file based on the executable file, thereby obtaining the plurality of suspected executable files including the executable file and the interference file; and The executable file is determined from the plurality of suspected executable files based on a generation order of the suspected executable files.

4. The application program running method according to claim 2, characterized in that: Before generating a plurality of suspected executable files based on the encrypted executable file and the encryption method corresponding to the executable file, the application running method further includes: Based on the cyclic redundancy check code bytes, the specially-made format file is checked to see whether it has been tampered with. When the check result shows that it has not been tampered with, the execution of the plurality of suspected executable files generated based on the encrypted executable file and the encryption method corresponding to the executable file is started.

5. The application program running method according to claim 1, characterized in that: Before calling the Java virtual machine on the target machine to start the executable file to run the Java application, the program running method further includes: The log output of the Java application is forcibly closed, and after the log output is closed successfully, the Java virtual machine on the target machine is called to start the executable file to run the Java application.

6. The application program running method according to claim 1, characterized in that: Also includes: The startup progress of the executable file is monitored, and after the executable file is successfully started, the executable file is deleted.

7. A method for running an application program, applied to a development machine, characterized in that: include: Obtaining an executable file in a compiled packaged file of a Java application and encrypting the executable file to obtain an encrypted executable file; Performing special format processing on the encrypted executable file to obtain a special format file; Generate a shell program based on the encryption method and the special format corresponding to the special format file; as well as A deployment file package of the Java application is generated based on the specially-made format file and the shell program, so as to run the Java application based on the deployment file package.

8. The application program running method according to claim 7, characterized in that: The step of performing special format processing on the encrypted executable file to obtain a special format file includes: Generate a specially crafted file header based on specially crafted magic bytes, file identification bytes, file size bytes, operation parameter length bytes, operation parameter bytes, and cyclic redundancy check code bytes; and The encrypted executable file is used as a special file body, and the special file header and the special file body are used to generate the special format file.

9. An application program running device, integrated in a target machine, characterized in that: include: An encrypted executable file acquisition module is used to acquire a specially-made format file corresponding to the executable file of the Java application from a deployment file package based on the specially-made file format corresponding to the executable file of the Java application, and acquire an encrypted executable file corresponding to the executable file based on the specially-made format file; An executable file acquisition module, used to generate a plurality of suspected executable files based on the encrypted executable file and the encryption method corresponding to the executable file, and determine the executable file based on the plurality of suspected executable files; as well as The running module is used to call the Java virtual machine on the target machine to start the executable file and run the Java application.

10. An application program running device, integrated in a development machine, characterized in that: include: An acquisition and encryption processing module is used to acquire an executable file in a compiled and packaged file of a Java application and encrypt the executable file to obtain an encrypted executable file; A format-specific module, used for performing format-specific processing on the encrypted executable file to obtain a specially formatted file; A shell program generating module, used for generating a shell program based on the encryption method and the special format corresponding to the special format file; as well as A deployment file package generation module is used to generate a deployment file package of the Java application based on the special format file and the shell program, so as to run the Java application based on the deployment file package.

11. An electronic device comprising a memory, a processor, and a computer program stored in the memory and executable on the processor, wherein: When the processor executes the program, the application program running method as described in any one of claims 1 to 8 is implemented.

12. A computer-readable storage medium having a computer program stored thereon, characterized in that: When the program is executed by a processor, the application program running method as described in any one of claims 1 to 8 is implemented.