US20180129794A1 - Method for Protecting Dex File from Decompilation in Android System - Google Patents

Method for Protecting Dex File from Decompilation in Android System Download PDF

Info

Publication number
US20180129794A1
US20180129794A1 US15/575,815 US201515575815A US2018129794A1 US 20180129794 A1 US20180129794 A1 US 20180129794A1 US 201515575815 A US201515575815 A US 201515575815A US 2018129794 A1 US2018129794 A1 US 2018129794A1
Authority
US
United States
Prior art keywords
dex file
android system
protecting
decompilation
memory
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.)
Abandoned
Application number
US15/575,815
Inventor
Yunfeng Liu
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.)
Phicomm Shanghai Co Ltd
Original Assignee
Phicomm Shanghai 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 Phicomm Shanghai Co Ltd filed Critical Phicomm Shanghai Co Ltd
Assigned to PHICOMM (SHANGHAI) CO., LTD. reassignment PHICOMM (SHANGHAI) CO., LTD. ASSIGNMENT OF ASSIGNORS INTEREST (SEE DOCUMENT FOR DETAILS). Assignors: LIU, YUNFENG
Publication of US20180129794A1 publication Critical patent/US20180129794A1/en
Abandoned legal-status Critical Current

Links

Images

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/6218Protecting access to data via a platform, e.g. using keys or access control rules to a system of files or objects, e.g. local or distributed file system or database
    • G06F21/6281Protecting access to data via a platform, e.g. using keys or access control rules to a system of files or objects, e.g. local or distributed file system or database at program execution time, where the protection is within the operating system
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/445Program loading or initiating
    • G06F9/44521Dynamic linking or loading; Link editing at or after load time, e.g. Java class loading
    • 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/106Enforcing content protection by specific content processing
    • G06F21/1066Hiding content
    • G06F2221/0748

Definitions

  • the present disclosure relates to the field of dex file decompilation in an Android system and, in particular, to a method for protecting a dex file from decompilation in an Android system.
  • Android is a free and open source operating system based on Linux, which is essentially used in mobile devices such as smartphones and tablets. Android is led and developed by Google and the Open Mobile Alliance. At present, the development of Android programs is in full swing. Because of the open-source nature, developers are exempt from high patent costs, encouraging the participation of advanced chip manufacturers and software vendors all over the world.
  • Dalvik virtual machines represent a virtual machine mechanism totally different from the classic Java virtual machines (JVMs). They are developed by Google with optimizations dedicated to the characteristics of mobile operating systems (especially the Android platform). Dalvik virtual machines convert bytecode files (.class format files) in traditional JVMs into bytecode files (dex format) running in the Dalvik virtual machines using a conversion tool called dx. Instruction codes of dex files are a dedicated instruction set for Dalvik virtual machines. This instruction set is optimized specifically for embedded systems. Compared to standard Java .class files, dex files have the advantages of small size, high operation efficiency, etc.
  • a Java bytecode file is composed of one or several .class files (each contains a class). As shown in FIG. 1 , in operation, a JVM dynamically loads bytecodes from each .class file into the memory. In contrast, a Dalvik bytecode file consists of only one .dex file which contains all classes necessary for applications. When a Java compiler generates Java bytecodes, a Dalvik dx compiler deletes all .class files and recompiles the Java bytecodes into Dalvik bytecodes.
  • Java compilation tools compiles Java source codes into Java bytecode files.
  • JVMs are responsible for interpreting Java bytecode files.
  • method names and variable names are still reserved in Java bytecode files, and used for accessing the variables and methods. These symbols typically contain much semantic information. Therefore, it is quite easy to decompile Java bytecode files.
  • Many Java decompilation tools can generate high-quality source codes from Java bytecode files.
  • a method employed in the prior art includes the steps of:
  • Critical codes are stored in a server and services are remotely accessed, making it impossible to decipher the program codes.
  • Java programs are compiled into locally executable binary codes, which make the Java lose the characteristics of cross-platform. Additionally, this technique is not yet sophisticated enough to be suitably used for large scale applications.
  • Java bytecode files are firstly encrypted, and the decryption is performed when the Java bytecode files are loaded by a customized Java class loader.
  • the defect of this approach is that although the encrypted Java bytecode files are unable to be decompiled, the customized class loader itself is immune from decompilation. As a result, the encrypted Java bytecode files are still insecure.
  • Embodiments of the present disclosure provide a method for protecting a dex file from decompilation in an Android system, in which, the dex file is loaded into the inaccessible memory by a reference method, so that the dex file cannot be loaded for duplication; and performing, by the reference, to make it impossible for a decompiler to find the dex file for reversing engineering which protects the Android program from decompilation.
  • the present disclosure provides a method for protecting a dex file from decompilation in an Android system, including: 1) loading a dex file into an inaccessible memory of the Android system; 2) performing, by the reference, to make it impossible to find the dex file.
  • the inaccessible memory is defined as a set of memory blocks without any accessible pointers and dynamically allocated by a computer program.
  • the dex file is loaded into the inaccessible memory of the Android system by a reference method.
  • 1) comprise the steps of: a) launching a program by a user and sending of a loading request to the server and also requesting for a memory segment; b) checking, by the server, the dex file corresponding to a requesting Android installation package, and generating a new feature dex file and a reskey value to be pushed to a smart terminal; c) locking, by the smart terminal, the requested memory as unavailable memory; d) generating, by the smart terminal, a reference tree pointing to different resource blocks distinguished by the offsets; e) loading, by the Android system, the new feature dex file to be parsed into a bytecode; f) generating a new one-time reference by the reskey value referenced by the definition; g) re-parsing, by the locked memory, the bytecode to generate a executable dex bytecode with the referenced reskey, according to referencing the loaded par
  • the illegal use comprises duplication, modification reference, movement, illegal access and call.
  • the method for protecting a dex file from decompilation in an Android system is applied in smart terminals using Android operating system.
  • the smart terminals comprise smart phones, tablets and PDAs.
  • Loading of a dex file into an inaccessible memory by a reference method ensures that core files of a program will not be duplicated, analyzed, transported or modified during the operation, which provides strong protection for security of the program.
  • FIG. 1 is a schematic diagram showing the loading of a program in an Android system in accordance with the prior art.
  • FIG. 2 is a flowchart illustrating a method for protecting a dex file from decompilation in an Android system of the present disclosure.
  • a set of memory blocks without any accessible pointers and dynamically allocated by a computer program is not limited to.
  • an inaccessible memory is a dynamic memory that is not directly accessible by a program. It is also inaccessible by pointing to an accessible initial object with a pointer.
  • the method for protecting a dex file from decompilation in an Android system of the present disclosure is applicable to smart terminals using an Android operating system.
  • the smart terminals include, but not limited to, smart phones, tablets, PDAs and other terminal devices capable of data processing.
  • a smart terminal is a handheld terminal device of such a type that has its own independent operating system, allows the user to install programs provided by third-party service providers such as software and games so as to be increasingly diversified in functionality and is capable of wireless network access via mobile communication networks.
  • the method for protecting a dex file from decompilation in an Android system of the present disclosure includes:
  • the dex file is loaded into the inaccessible memory in the Android system by a reference method.
  • the reference method employs an index table that points to reskey values in the text. This index table is only generated when a program is executed. Every loading of the dex file requires a corresponding reskey value.
  • This step corresponds to a memory unlocking step. However, in fact, the locked memory provides only the par
  • the dex file is cleaned immediately.
  • the illegal use includes, but not limited to, duplication, reference modification, movement, illegal access and calling.
  • Loading of an Android program using the method for protecting a dex file from decompilation in an Android system of the present disclosure includes the steps of:
  • APK Android package
  • the APK is downloaded by a smart terminal over a network and installed to run.
  • the illegal use includes, but not limited to, duplication, reference modification, movement, illegal access and calling.
  • the dex file is loaded into an inaccessible memory by a reference method.
  • This ensures core files of a program will not be duplicated, analyzed, transported or modified during the operation, providing strong protection for security of the program.
  • execution based on a reference makes it impossible for a decompiler to find the dex file for reverse engineering.
  • This further increases the security level of the application program in the Android system in terms of operating system. Therefore, the present disclosure has effectively overcome the various drawbacks of the prior art and has a high value in industrial use.

Abstract

The present disclosure provides a method for protecting a dex file from being decompiled in an Android system. The method comprises the following content: 1) loading a dex file into an inaccessible memory of an Android system; and 2) during execution, by performing reference execution, preventing the dex file from being found. In the method for protecting a dex file from be ing decompiled in an Android system in the present disclosure, a dex file is loaded into an inaccessible memory by means of a reference method, so that the dex file is prevented from being locally downloaded tor being copied and propagated; during execution, by means of reference execution, a decompiling person is prevented from finding the dex file so that the decompiling person cannot perform reverse engineering, thereby protecting an Android program from being decompiled.

Description

    CROSS-REFERENCE TO RELATED APPLICATION
  • The present application is an US national stage application of the international patent application PCT/CN2015/095200, filed on Nov. 20, 2015, which is based upon and claims priority of Chinese patent application serial No. 201510359041.4, filed on Jun. 25, 2015 and entitled “Method for Protecting Dex File from Decompilation in Android System”, the entire contents of which are incorporated herein by reference.
  • TECHNICAL FIELD
  • The present disclosure relates to the field of dex file decompilation in an Android system and, in particular, to a method for protecting a dex file from decompilation in an Android system.
  • BACKGROUND
  • Android is a free and open source operating system based on Linux, which is essentially used in mobile devices such as smartphones and tablets. Android is led and developed by Google and the Open Mobile Alliance. At present, the development of Android programs is in full swing. Because of the open-source nature, developers are exempt from high patent costs, encouraging the participation of advanced chip manufacturers and software vendors all over the world.
  • As the Android applications is written in the Java language, in order to circumvent the oracle (Java) virtual machine authorization, the Android system develops a set of Dalvik virtual machines itself. Dalvik virtual machines represent a virtual machine mechanism totally different from the classic Java virtual machines (JVMs). They are developed by Google with optimizations dedicated to the characteristics of mobile operating systems (especially the Android platform). Dalvik virtual machines convert bytecode files (.class format files) in traditional JVMs into bytecode files (dex format) running in the Dalvik virtual machines using a conversion tool called dx. Instruction codes of dex files are a dedicated instruction set for Dalvik virtual machines. This instruction set is optimized specifically for embedded systems. Compared to standard Java .class files, dex files have the advantages of small size, high operation efficiency, etc.
  • A Java bytecode file is composed of one or several .class files (each contains a class). As shown in FIG. 1, in operation, a JVM dynamically loads bytecodes from each .class file into the memory. In contrast, a Dalvik bytecode file consists of only one .dex file which contains all classes necessary for applications. When a Java compiler generates Java bytecodes, a Dalvik dx compiler deletes all .class files and recompiles the Java bytecodes into Dalvik bytecodes.
  • The current Java is a cross-platform, interpreted language. Java compilation tools compiles Java source codes into Java bytecode files. JVMs are responsible for interpreting Java bytecode files. Unlike native object codes, method names and variable names are still reserved in Java bytecode files, and used for accessing the variables and methods. These symbols typically contain much semantic information. Therefore, it is quite easy to decompile Java bytecode files. Many Java decompilation tools can generate high-quality source codes from Java bytecode files.
  • In order to prevent Java bytecode file from decompilation, a method employed in the prior art includes the steps of:
  • (1) encrypting a to-be-released Java bytecode file;
    (2) monitoring a JVM initialization event with a JVM tool interface;
    (3) specifying a Hook function for the JVM initialization events;
    (4) upon the completion of JVM initialization, automatically calling the Hook function, and registering the function which is called by the JVM during the generation of class objects as a custom proxy function via a local Java interface;
    (5) the defined proxy function is called by the JVM during the generation of a class object, and the encrypted Java bytecode file is decrypted in defined proxy function by the JVM;
    (6) generating the corresponding class object from the decrypted Java bytecode file, and returning to the JVM.
  • However, the above technique is dedicatedly developed for the Java platform and standard JVMs and is obviously deficient in the field of Android smart mobile terminals. This is because although applications developed by the Android system are written in the Java language, they are not running in the traditional JMVs but in Dalvik virtual machines which have own stacks and compilation environment.
  • In the prior-art Java technology, protection of Java bytecodes from decompilation is majorly accomplished by the following approaches:
  • (1) Isolation of Programs
  • Critical codes are stored in a server and services are remotely accessed, making it impossible to decipher the program codes.
  • (2) Code Obfuscation
  • Difficulties are increased in decompilation and reading of decompiled source codes by means of changing the names of defined classes, variables, methods and packages to meaningless words or strings, substituting variable symbols with illegal characters, adding instructions that are irrelevant or will never be executed, or other methods. However, this approach cannot really prevent decompilation and the obfuscation follows some patterns.
  • (3) Conversion of Local Codes
  • As C/C++ programs, Java programs are compiled into locally executable binary codes, which make the Java lose the characteristics of cross-platform. Additionally, this technique is not yet sophisticated enough to be suitably used for large scale applications.
  • (4) Custom Class Loaders
  • Java bytecode files are firstly encrypted, and the decryption is performed when the Java bytecode files are loaded by a customized Java class loader. However, the defect of this approach is that although the encrypted Java bytecode files are unable to be decompiled, the customized class loader itself is immune from decompilation. As a result, the encrypted Java bytecode files are still insecure.
  • SUMMARY
  • Embodiments of the present disclosure provide a method for protecting a dex file from decompilation in an Android system, in which, the dex file is loaded into the inaccessible memory by a reference method, so that the dex file cannot be loaded for duplication; and performing, by the reference, to make it impossible for a decompiler to find the dex file for reversing engineering which protects the Android program from decompilation. In order to achieve the above objects and other related objects, the present disclosure provides a method for protecting a dex file from decompilation in an Android system, including: 1) loading a dex file into an inaccessible memory of the Android system; 2) performing, by the reference, to make it impossible to find the dex file. In the method for protecting a dex file from decompilation in an Android system as defined above, the inaccessible memory is defined as a set of memory blocks without any accessible pointers and dynamically allocated by a computer program. In the method for protecting a dex file from decompilation in an Android system as defined above, in 1), the dex file is loaded into the inaccessible memory of the Android system by a reference method.
  • In the method for protecting a dex file from decompilation in an Android system as defined above, 1) comprise the steps of: a) launching a program by a user and sending of a loading request to the server and also requesting for a memory segment; b) checking, by the server, the dex file corresponding to a requesting Android installation package, and generating a new feature dex file and a reskey value to be pushed to a smart terminal; c) locking, by the smart terminal, the requested memory as unavailable memory; d) generating, by the smart terminal, a reference tree pointing to different resource blocks distinguished by the offsets; e) loading, by the Android system, the new feature dex file to be parsed into a bytecode; f) generating a new one-time reference by the reskey value referenced by the definition; g) re-parsing, by the locked memory, the bytecode to generate a executable dex bytecode with the referenced reskey, according to referencing the loaded parsed bytecode. In the method for protecting a dex file from decompilation in an Android system as defined above, if the inaccessible memory is illegally used, the dex file is cleaned immediately.
  • Further, in the method for protecting a dex file from decompilation in an Android system as defined above, the illegal use comprises duplication, modification reference, movement, illegal access and call.
  • Further, in the method for protecting a dex file from decompilation in an Android system as defined above, during the cleaning of the dex file, it is necessary to clean all data and traces related to the dex file from the unavailable memory.
  • Further, in the method for protecting a dex file from decompilation in an Android system as defined above, when the dex file is cleaned, the program doesn't run properly, it is necessary to re-load and re-install the program.
  • In the method for protecting a dex file from decompilation in an Android system as defined above, the method for protecting a dex file from decompilation in an Android system is applied in smart terminals using Android operating system.
  • Further, in the method for protecting a dex file from decompilation in an Android system as defined above, after the dex file for the program is removed, the smart terminals comprise smart phones, tablets and PDAs.
  • As mentioned above, the method for protecting a dex file from decompilation in an Android system of the present disclosure show the following benefits:
  • (1) Loading of a dex file into an inaccessible memory by a reference method ensures that core files of a program will not be duplicated, analyzed, transported or modified during the operation, which provides strong protection for security of the program.
  • (2) Execution based on reference method makes it impossible for a decompiler to find the dex file for reverse engineering, thereby further increase the security level of the application program in the Android system from the operating system level.
  • BRIEF DESCRIPTION OF THE DRAWINGS
  • FIG. 1 is a schematic diagram showing the loading of a program in an Android system in accordance with the prior art.
  • FIG. 2 is a flowchart illustrating a method for protecting a dex file from decompilation in an Android system of the present disclosure.
  • DETAILED DESCRIPTION
  • The present disclosure will be described below by means of specific embodiments. Other advantages and effects of the disclosure will be readily understood by those skilled in the art from the disclosure herein. The present disclosure may also be implemented or utilized as other different specific embodiments, and various modifications or changes may be made to the details disclosed herein from different views and for different applications without departing from the spirit of the disclosure.
  • It is noted that the drawings presented in the following embodiments are intended merely to illustrate the basic concept of the present disclosure in a schematic manner and hence only show the components related hereto which are not drawn to their quantities, shapes and sizes in actual implementations where their configurations, quantities and scales may vary arbitrarily and their arrangements may also be more complex.
  • In the method for protecting a dex file from decompilation in an Android system of the present disclosure, firstly, it is necessary to define an inaccessible memory as follows:
  • Inaccessible Memory
  • A set of memory blocks without any accessible pointers and dynamically allocated by a computer program.
  • In generally terms, an inaccessible memory is a dynamic memory that is not directly accessible by a program. It is also inaccessible by pointing to an accessible initial object with a pointer.
  • It is noted that the method for protecting a dex file from decompilation in an Android system of the present disclosure is applicable to smart terminals using an Android operating system. The smart terminals, to which the present disclosure relates, include, but not limited to, smart phones, tablets, PDAs and other terminal devices capable of data processing. In general terms, a smart terminal is a handheld terminal device of such a type that has its own independent operating system, allows the user to install programs provided by third-party service providers such as software and games so as to be increasingly diversified in functionality and is capable of wireless network access via mobile communication networks.
  • Referring to FIG. 2, the method for protecting a dex file from decompilation in an Android system of the present disclosure includes:
  • 1) Loading of the Dex File into an Inaccessible Memory in the Android System.
  • Wherein, the dex file is loaded into the inaccessible memory in the Android system by a reference method. The reference method employs an index table that points to reskey values in the text. This index table is only generated when a program is executed. Every loading of the dex file requires a corresponding reskey value.
  • Specifically, the following steps are included:
  • a) launching a program by a user and sending a loading request to the server and also requesting for a memory segment;
    b) checking, by the server, the dex file corresponding to a requesting Android installation package, and generating a new feature dex file and a reskey value to be pushed to a smart terminal;
    c) locking, by the smart terminal, the requested memory as unavailable memory;
    d) generating, by the smart terminal, a reference tree pointing to different resource blocks distinguished by the offsets;
    e) loading, by the Android system, the new feature dex file to be parsed into a bytecode;
    f) generating a new one-time reference by the reskey value referenced by the definition;
    g) re-parsing, by the locked memory, the bytecode to generate an executable dex bytecode with the referenced reskey, according to referencing the loaded parsed bytecode. This step corresponds to a memory unlocking step. However, in fact, the locked memory provides only the parsed dex bytecode to the Android virtual machine. In such a way, separation is prevented and the memory deciphering prevention step achieves external unavailability.
  • 2) Execution Based on the Reference, which Makes it Impossible to Find the Dex File.
  • Preferably, if the inaccessible memory is illegally used, the dex file is cleaned immediately. Wherein, the illegal use includes, but not limited to, duplication, reference modification, movement, illegal access and calling. Wherein, during the cleaning of the dex file, it is necessary to clear all data and traces related to the dex file from the unavailable memory and report to a module that manages the inaccessible memory. When the dex file for the program is removed, the program will not run properly, requiring re-downloading and re-installation.
  • Loading of an Android program using the method for protecting a dex file from decompilation in an Android system of the present disclosure includes the steps of:
  • a) installation and running of an Android package (APK); Specifically, the APK is downloaded by a smart terminal over a network and installed to run.
    b) loading of dex, lib, xml and other protected files by a server into an inaccessible memory of the smart terminal;
    c) monitoring whether the program is normally executed by a module that manages the inaccessible memory;
    d) immediate removal of the program in the event of illegal use of the unavailable memory. Wherein, the illegal use includes, but not limited to, duplication, reference modification, movement, illegal access and calling.
  • Wherein, during the removal of the program, it is necessary to clear all data and traces in the unavailable memory and report to the module that manages the inaccessible memory. After the dex, xml and other critical data in the program are removed, the program will not run properly, requiring re-downloading and re-installation.
  • In summary, in the method for protecting a dex file from decompilation in an Android system of the present disclosure, the dex file is loaded into an inaccessible memory by a reference method. This ensures core files of a program will not be duplicated, analyzed, transported or modified during the operation, providing strong protection for security of the program. In addition, execution based on a reference makes it impossible for a decompiler to find the dex file for reverse engineering. This further increases the security level of the application program in the Android system in terms of operating system. Therefore, the present disclosure has effectively overcome the various drawbacks of the prior art and has a high value in industrial use.
  • The embodiments presented above merely explain the principles and effects of the present disclosure exemplarily and are not intended to limit the disclosure. Any person familiar with the art can make modifications or changes to the above embodiments without departing from the spirit and scope of the disclosure. Accordingly, all equivalent modifications or changes made by those of ordinary skill in the art without departing from the spirit and technical concept disclosed herein are intended to be embraced by the claims of the present disclosure.

Claims (10)

1. A method for protecting a dex file from decompilation in an Android system, comprising:
1) loading a dex file into an inaccessible memory of the Android system;
2) making the dex file unable to be found when performing by reference.
2. The method for protecting a dex file from decompilation in an Android system according to claim 1, wherein the inaccessible memory is defined as a set of memory blocks without any accessible pointers and is dynamically allocated by a computer program.
3. The method for protecting a dex file from decompilation in an Android system according to claim 1, wherein in 1), the dex file is loaded into the inaccessible memory of the Android system by a reference method.
4. The method for protecting a dex file from decompilation in an Android system according to claim 1, wherein 1) comprises the steps of:
a) launching a program by a user and sending a loading request to the server and also requesting for a memory segment;
b) checking, by the server, the dex file corresponding to a requesting Android installation package, and generating a new feature dex file and a reskey value to be pushed to a smart terminal;
c) locking, by the smart terminal, the requested memory as unavailable memory;
d) generating, by the smart terminal, a reference tree pointing to different resource blocks distinguished by the offsets;
e) loading, by the Android system, the new feature dex file to be parsed into a bytecode;
f) generating a new one-time reference by the reskey value referenced by the definition; and
g) re-parsing, by the locked memory, the bytecode to generate an executable dex bytecode with the referenced reskey, according to referencing the loaded parsed bytecode.
5. The method for protecting a dex file from decompilation in an Android system according to claim 1, wherein if the inaccessible memory is illegally used, the dex file is cleaned immediately.
6. The method for protecting a dex file from decompilation in an Android system according to claim 4, wherein the illegal use comprises duplication, modification reference, movement, illegal access and call.
7. The method for protecting a dex file from decompilation in an Android system according to claim 4, wherein during the cleaning of the dex file, clean all data and traces related to the dex file from the unavailable memory.
8. The method for protecting a dex file from decompilation in an Android system according to claim 4, wherein after the dex file is cleaned, the program cannot run properly and need to be re-downloaded and re-installed.
9. The method for protecting a dex file from decompilation in an Android system according to claim 1, wherein the method for protecting a dex file from decompilation in an Android system is applied in smart terminals using Android operating system.
10. The method for protecting a dex file from decompilation in an Android system according to claim 9, wherein the smart terminals include smart phones, tablets and PDAs.
US15/575,815 2015-06-25 2015-11-20 Method for Protecting Dex File from Decompilation in Android System Abandoned US20180129794A1 (en)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
CN201510359041.4 2015-06-25
CN201510359041.4A CN105046116B (en) 2015-06-25 2015-06-25 Protect dex files not by the method for decompiling in android system
PCT/CN2015/095200 WO2016206297A1 (en) 2015-06-25 2015-11-20 Method for protecting dex file from being decompiled in android system

Publications (1)

Publication Number Publication Date
US20180129794A1 true US20180129794A1 (en) 2018-05-10

Family

ID=54452656

Family Applications (1)

Application Number Title Priority Date Filing Date
US15/575,815 Abandoned US20180129794A1 (en) 2015-06-25 2015-11-20 Method for Protecting Dex File from Decompilation in Android System

Country Status (4)

Country Link
US (1) US20180129794A1 (en)
EP (1) EP3296906A4 (en)
CN (1) CN105046116B (en)
WO (1) WO2016206297A1 (en)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108846264A (en) * 2018-06-11 2018-11-20 北京奇虎科技有限公司 Code reinforcement means, device, intelligent terminal and computer readable storage medium
CN111581639A (en) * 2020-03-27 2020-08-25 北京大学 Universal automatic shelling method and system for Android shell-adding application program
CN112115430A (en) * 2020-09-03 2020-12-22 深圳创维-Rgb电子有限公司 Apk reinforcement method, electronic equipment and storage medium

Families Citing this family (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105046116B (en) * 2015-06-25 2018-07-31 上海斐讯数据通信技术有限公司 Protect dex files not by the method for decompiling in android system
CN106203120B (en) * 2016-07-15 2019-03-05 北京邮电大学 A kind of multiple spot Hook reverse method for Android reinforcement application
CN106648965A (en) * 2016-10-13 2017-05-10 安徽鼎集信息科技有限公司 Real-time file backup system
CN106843919B (en) * 2016-12-12 2021-02-23 北京奇虎科技有限公司 Method and device for storing dex file
CN107977553B (en) * 2017-12-25 2020-07-10 中国电子产品可靠性与环境试验研究所 Method and device for security reinforcement of mobile application program
CN111181898A (en) * 2018-11-13 2020-05-19 中国石油化工股份有限公司 Data security protection method based on background server and APP client
CN110806906B (en) * 2019-10-30 2022-04-12 腾讯科技(深圳)有限公司 Dex subpackage method, device, equipment and medium
CN113934461B (en) * 2021-09-26 2023-10-13 厦门亿联网络技术股份有限公司 DEX-based android system formatting method and device

Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5999622A (en) * 1995-11-22 1999-12-07 Microsoft Corporation Method and apparatus for protecting widely distributed digital information
US20050172294A1 (en) * 2003-05-29 2005-08-04 Kouichi Kanemura Information processing apparatus operable to switch operating systems
US7000119B1 (en) * 2000-04-20 2006-02-14 Realnetworks, Inc. Instruction/data protection employing derived obscuring instruction/data
US20100017625A1 (en) * 2003-11-20 2010-01-21 Johnson Richard C Architecure, system, and method for operating on encrypted and/or hidden information
US20140373171A1 (en) * 2013-06-12 2014-12-18 Arm Limited Security protection of software libraries in a data processing apparatus
US20160132547A1 (en) * 2014-11-11 2016-05-12 SEWORKS, Inc. Apparatus and method for managing apk file in an android platform
US20160239671A1 (en) * 2015-02-13 2016-08-18 Thomson Licensing Method and device for protecting an application and method and device for executing a protected application thus protected

Family Cites Families (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN100504897C (en) * 2006-02-20 2009-06-24 联想(北京)有限公司 Method for starting protected partition
US9672355B2 (en) * 2011-09-16 2017-06-06 Veracode, Inc. Automated behavioral and static analysis using an instrumented sandbox and machine learning classification for mobile security
US8892876B1 (en) * 2012-04-20 2014-11-18 Trend Micro Incorporated Secured application package files for mobile computing devices
RU2535175C2 (en) * 2012-12-25 2014-12-10 Закрытое акционерное общество "Лаборатория Касперского" System and method for detecting malware by creating isolated environment
CN104318135B (en) * 2014-10-27 2017-04-05 中国科学院信息工程研究所 A kind of Java code Safety actuality loading method based on credible performing environment
CN104462959B (en) * 2014-12-04 2017-09-01 北京奇虎科技有限公司 A kind of method for reinforcing and protecting, server and the system of Android application
CN105046116B (en) * 2015-06-25 2018-07-31 上海斐讯数据通信技术有限公司 Protect dex files not by the method for decompiling in android system

Patent Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5999622A (en) * 1995-11-22 1999-12-07 Microsoft Corporation Method and apparatus for protecting widely distributed digital information
US7000119B1 (en) * 2000-04-20 2006-02-14 Realnetworks, Inc. Instruction/data protection employing derived obscuring instruction/data
US20050172294A1 (en) * 2003-05-29 2005-08-04 Kouichi Kanemura Information processing apparatus operable to switch operating systems
US20100017625A1 (en) * 2003-11-20 2010-01-21 Johnson Richard C Architecure, system, and method for operating on encrypted and/or hidden information
US20140373171A1 (en) * 2013-06-12 2014-12-18 Arm Limited Security protection of software libraries in a data processing apparatus
US20160132547A1 (en) * 2014-11-11 2016-05-12 SEWORKS, Inc. Apparatus and method for managing apk file in an android platform
US20160239671A1 (en) * 2015-02-13 2016-08-18 Thomson Licensing Method and device for protecting an application and method and device for executing a protected application thus protected

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108846264A (en) * 2018-06-11 2018-11-20 北京奇虎科技有限公司 Code reinforcement means, device, intelligent terminal and computer readable storage medium
CN111581639A (en) * 2020-03-27 2020-08-25 北京大学 Universal automatic shelling method and system for Android shell-adding application program
CN112115430A (en) * 2020-09-03 2020-12-22 深圳创维-Rgb电子有限公司 Apk reinforcement method, electronic equipment and storage medium

Also Published As

Publication number Publication date
WO2016206297A1 (en) 2016-12-29
CN105046116A (en) 2015-11-11
EP3296906A1 (en) 2018-03-21
CN105046116B (en) 2018-07-31
EP3296906A4 (en) 2018-05-23

Similar Documents

Publication Publication Date Title
US20180129794A1 (en) Method for Protecting Dex File from Decompilation in Android System
US10853270B2 (en) Cryptographic pointer address encoding
CN103914637B (en) A kind of executable program encryption method of Android platform
KR101471589B1 (en) Method for Providing Security for Common Intermediate Language Program
KR101503785B1 (en) Method And Apparatus For Protecting Dynamic Library
CN102043932B (en) Method for preventing Java program from being decompiled
CN104239757B (en) Application program reversing-preventing method and device and operation method and terminal
WO2016078130A1 (en) Dynamic loading method for preventing reverse of apk file
US20190114401A1 (en) On device structure layout randomization for binary code to enhance security through increased entropy
US20090138863A1 (en) Method And Apparatus For Protecting .NET Programs
WO2014134080A1 (en) Compiler based obfuscation
CN103745141A (en) Method for preventing application program in intelligent terminal android system from being decompiled
WO2015192637A1 (en) Method and apparatus for reinforced protection of software installation package
CN111159658B (en) Byte code processing method, system, device, computer equipment and storage medium
Matsumoto et al. A proposal for the privacy leakage verification tool for android application developers
CN112559980A (en) Applet operation capable of embedding numerous arbitrary APPs
WO2015058639A1 (en) Application program protecting system and method
CN110597496B (en) Method and device for acquiring bytecode file of application program
CN113220314B (en) APP resource loading and APK generation method, device, equipment and medium
Lim et al. Protecting Android Applications with Multiple DEX Files Against Static Reverse Engineering Attacks.
KR20180028666A (en) Method and apparatus for preventing reverse engineering
CN111752548A (en) SDK embedding method and device and computer readable storage medium
Lee et al. Is your android app insecure? patching security functions with dynamic policy based on a java reflection technique
KR20190060181A (en) Apparatus and Method of Providing Security, and Apparatus and Method of Executing Security for Protecting Code of Shared Object
CN110765424B (en) Android application reinforcement method and computer equipment

Legal Events

Date Code Title Description
AS Assignment

Owner name: PHICOMM (SHANGHAI) CO., LTD., CHINA

Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNOR:LIU, YUNFENG;REEL/FRAME:044186/0622

Effective date: 20171024

STPP Information on status: patent application and granting procedure in general

Free format text: DOCKETED NEW CASE - READY FOR EXAMINATION

STPP Information on status: patent application and granting procedure in general

Free format text: NON FINAL ACTION MAILED

STCB Information on status: application discontinuation

Free format text: ABANDONED -- FAILURE TO RESPOND TO AN OFFICE ACTION