CN103413073A - Method and equipment for protecting JAVA executable program - Google Patents

Method and equipment for protecting JAVA executable program Download PDF

Info

Publication number
CN103413073A
CN103413073A CN2013102842480A CN201310284248A CN103413073A CN 103413073 A CN103413073 A CN 103413073A CN 2013102842480 A CN2013102842480 A CN 2013102842480A CN 201310284248 A CN201310284248 A CN 201310284248A CN 103413073 A CN103413073 A CN 103413073A
Authority
CN
China
Prior art keywords
code
local
java
jvm
executable program
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.)
Granted
Application number
CN2013102842480A
Other languages
Chinese (zh)
Other versions
CN103413073B (en
Inventor
不公告发明人
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Beijing Senseshield Technology Co Ltd
Original Assignee
Beijing Senseshield Technology Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Beijing Senseshield Technology Co Ltd filed Critical Beijing Senseshield Technology Co Ltd
Priority to CN201310284248.0A priority Critical patent/CN103413073B/en
Publication of CN103413073A publication Critical patent/CN103413073A/en
Application granted granted Critical
Publication of CN103413073B publication Critical patent/CN103413073B/en
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Stored Programmes (AREA)

Abstract

The invention discloses a method and equipment for protecting a JAVA executable program. The method comprises the steps of creating a local dynamic chained library file, enumerating .class files in protected JAVA software, analyzing JVM codes in the .class files, drawing fragments of the codes at random, replacing the original position of the drawn fragments of the codes with call of a native method, and generating a derivative function in the local dynamic chained library file to achieve the function of drawing the fragments of the codes. By means of the method, the codes and logic of the JAVA software are effectively prevented from being reversed and broken, and the safety strength of the software is improved.

Description

A kind of method and apparatus of protecting the JAVA executable program
Technical field
The present invention relates to the software protection field, particularly a kind of method and apparatus of protecting the JAVA executable program.
Background technology
JAVA software generally by some resource files and JAVA executable file (independent .class file or be packaged in .jar or the .war bag in the .class file) form.The JAVA executable file is the binary file that can be carried out by the JAVA virtual machine, its code and platform independence, form is followed the JAVA virtual machine specification, is easy to be reduced to the JAVA source code by some decompiling analysis tools, causes the logic of software and flow process to be revealed and steal.
In the JAVA language, the method function of class object has two types: commonsense method and nation method.Commonsense method is to be compiled into the JAVA instruction code by the JAVA language compilation, by JAVA virtual machine (JAVA Virtual Machine, JVM), is carried out during operation; Another kind of nation method (Native Method), it is that JAVA calls this locality by JNI(JAVA Native Interface) the storehouse that operates in the local operation system of interface accessing outside.JNI has realized mutually calling between JAVA program and external libraries, and the function that provides non-JAVA language to realize for the JAVA program is provided.
Software is comprised of one or more JAVA executable files (as .jar .war or .class) and one or more local dynamic link library file (as forms such as .dll or .so).Code in executable file in JAVA can call export interface in dynamic link library (interface), realizes specific function.Class (class) is the key concept of JAVA, and the .jar file comprises a plurality of .class files (jar bag and war bag etc. all are comprised of some .class files and resource file), and it no longer is described in detail.
Common JAVA software protection means are to the JVM(JAVA Virtual Machine JAVA in the .class file at present; virtual machine) code is obscured processing; or, by means of self-defining Class Loader, by the storage of .class file encryption, just decipher while being loaded into JVM.The former processes in the aspect of JVM instruction, is subject to the restriction of JVM standard, and the effect of automation algorithm desirable not enough (common automation algorithm comprises that title and symbol obscure, but is difficult for automatically realizing complicated flow process and class relation); And the latter just has original .class code in internal memory after JVM loads the .class file, easily be subject to internal memory DUMP(namely, the content when JVM is moved in proceeding internal memory is carried out " snapshot " and is saved in file) attack.
Summary of the invention
For the code that prevents JAVA software and logic, by reverse and crack, the invention provides a kind of method and apparatus of the JAVA of protection executable program.At first create a local dynamic link library file; enumerate the .class file in protected JAVA software; analyze the JVM code in this .class file; randomly draw the partial code fragment in the JVM code; situ in the partial code fragment extracted replaces with to the native method (namely; calling nation method), generate derivative function in local dynamic link library, realize the function of the described partial code fragment be extracted out.By method provided by the invention, can improve the security intensity of software.
The present invention is not only applicable to the windows platform, is applicable to the operating system that other use dynamic base mechanism yet.
A kind of method of protecting the JAVA executable program, concrete steps comprise:
1. create a local dynamic link libraries file;
2. enumerate the .class file in shielded JAVA software;
3. analyze the JVM code in this .class file, choose at random code snippet;
4. the code snippet that will choose is from taking out the .class file, and original position replaces with calling the native method;
5. in the local dynamic link library in step 1, generate a derivative function, function name is corresponding with the native method in step 4, the instruction in the simulation code fragment one by one, the function of the code snippet extracted in performing step 4.
6. get back to step 2, continue to enumerate, until finish.
According to an aspect of the present invention, the local dynamic link library file title in described step 1 is random.
According to an aspect of the present invention, for ease of robotization, realize in described step 3, extract code snippet and follow single-input single-output and storehouse balance principle.Described single-input single-output and storehouse balance principle, refer to that carrying out flow process can only enter this section code from described code snippet beginning, can't be in the middle of outside described code snippet, jumping to described code snippet, and can only leave this section code from described code snippet ending, can't be from described code snippet, jumping to outside code snippet; Fundamental operation in described code snippet is complete, during the described code snippet of turnover, does not relate to the temporary variable in the JVM storehouse.These two principles can realize by static analysis JVM instruction.
According to an aspect of the present invention, in step 4, the native method name is random.
According to an aspect of the present invention, in step 5 one by one the instruction in the simulation code fragment comprise to instructions such as access classes, objects, use JNI(JAVA Native Interface JAVA this locality to call) simulation; The arithmetic sum controls metastasis is used the local code simulation.
A kind of device of protecting the JAVA executable program specifically comprises:
Enumerate module, for enumerating the .class file of shielded JAVA software, and can be from .jar .war bag, extracting the .class file;
Analysis module, for analyzing the JVM code of .class file, choose code snippet according to single-input single-output and storehouse balance principle;
Replace code module, extracts away from the .class file for the code snippet that will choose, replace with calling a native method of naming at random in the situ of the code snippet be extracted;
Generate the local code module, be used to generating a local code derivative function, realize the function of the described code snippet be extracted out.
Use in the JAVA software after the present invention protects; the logic of code is dispersed in local dynamic library file, can take precautions against preferably the decompiling static analysis of JVM aspect, and because partial logic is replaced by local code; flow process be dispersed in JVM inside and outside, increased the difficulty of analyzing and cracking.In addition, the code in local dynamic base is directly operation, and the code before replacing can not be arranged in JVM, avoids like this attack of DUMP.Therefore the present invention has protected logic and the flow process of software preferably, and code and data security during operation, and can provide the algorithm of robotization to realize, the security that has improved software.
 
The accompanying drawing explanation
Fig. 1 is the process flow diagram of the embodiment 1 according to a kind of method and apparatus of protecting the JAVA executable program of the present invention.
Fig. 2 is the overall flow schematic diagram of the preferred embodiment according to a kind of method and apparatus of protecting the JAVA executable program of the present invention.
Fig. 3 is according to a kind of structured flowchart of protecting the method and apparatus of JAVA executable program of the present invention.
Embodiment
For making purpose of the present invention, technical scheme and advantage clearer, referring to the accompanying drawing embodiment that develops simultaneously, the present invention is described in more detail.
According to one embodiment of present invention, as shown in Figure 2, provide a kind of method of the JAVA of protection executable program, concrete steps comprise:
1. create a local dynamic link libraries file
2. enumerate the .class file in shielded JAVA software
3. analyze the JVM code in this .class file, choose at random code snippet
4. the code snippet that will choose is from taking out the .class file, and original position replaces with calling the native method
5. in the local dynamic link library in step 1, generate a derivative function, function name is corresponding with the native method in step 4, the instruction in the simulation code fragment one by one, the function of the code snippet extracted in performing step 4.
6. get back to step 2, continue to enumerate, until finish.
According to an aspect of the present invention, the local dynamic link library file title in described step 1 can be random.
According to an aspect of the present invention, for ease of robotization, realize in described step 3, extract code snippet and follow single-input single-output and storehouse balance principle.
According to an aspect of the present invention, in step 4, the native method name can be random.
According to an aspect of the present invention, in step 5 one by one the instruction in the simulation code fragment comprise to instructions such as access classes, objects, use JNI(JAVA Native Interface JAVA this locality to call) simulation; The arithmetic sum controls metastasis is used the local code simulation.
Described single-input single-output and storehouse balance principle, namely carrying out flow process is to enter this section code from the fragment beginning, cannot in the middle of outside fragment, jumping to fragment, can only leave this section code from the fragment ending, cannot in fragment, jump to outside.And in fragment, fundamental operation is complete, during the turnover fragment, do not relate to the temporary variable in the JVM storehouse.These two principles can realize by static analysis JVM instruction.
According to one embodiment of present invention, as shown in Figure 3, provide a kind of equipment of the JAVA of protection executable program, specifically comprise:
Enumerate module, for enumerating the .class file of shielded JAVA software, and can be from .jar .war bag, extracting the .class file.
Analysis module, for analyzing the JVM code of .class file, choose code snippet according to the principle of single-input single-output and storehouse balance.
Replace code module, extract away from the .class file for the code snippet that will choose, original position replaces with calling the native method of a random name.
Generate the local code module, be used to generating a local code derivative function, realize the function of the JAVA code snippet extracted.As preferably, the equipment of the protection executable program of the present embodiment also comprises encrypting module, for the information such as function or supplemental characteristic are encrypted.As shown in Figure 3, in Fig. 3, encrypting module is encrypted for the local code generation module.According to one embodiment of present invention, concrete cipher mode includes but not limited to: Custom Encryption algorithm, or disclosed symmetry, rivest, shamir, adelman.According to one embodiment of present invention, decipher during the running software after protection.The code of deciphering and relevant key etc. are placed in the local code derivative function.
The present invention creates a local dynamic link library file; enumerate the .class file in protected JAVA software; analyze the JVM code in this .class file; randomly draw code snippet; former extraction position replaces with calling native (nation method) method; in local dynamic link library, generate derivative function, realize extracting the function of code snippet.According to one embodiment of present invention, creating local dynamic link library file can generate automatically by the software programming instrument, and create local dynamic link library and belong to the state of the art, be not emphasis of the present invention, the application is not described in detail.
Use in the JAVA software after the present invention protects; the logic of code is dispersed in local dynamic library file, can take precautions against preferably the decompiling static analysis of JVM aspect, and because partial logic is replaced by local code; flow process be dispersed in JVM inside and outside, increased the difficulty of analyzing and cracking.In addition, the code in cup end dynamic base is directly operation, and the code before replacing can not be arranged in JVM, so, avoids the attack of DUMP.Therefore the present invention has protected logic and the flow process of software preferably, and code and data security during operation, and can provide the algorithm of robotization to realize, the security that has improved software.
Embodiment 1
According to one embodiment of present invention, as shown in Figure 1, Fig. 1 comprises the code signal fragment of each several part in the present embodiment.Instantiation is as follows: the software that certain is write by JAVA, a class MyClass is arranged in source code, and wherein defined three field a, b, c and a case method Mul, the logic of the method is that the value of field b and c is multiplied each other, result is assigned to field a.
The Java source code, when compiling, can generate a .class file for each class, and the structure of this .class file defines in the JVM document, be the set of a series of attributes and value.By resolving the class title association attributes in the .class file, can learn it comes from which class in source code; The analytic method Table Properties, can obtain methodical list in class again; Resolve the Code attribute of each method, can obtain the JVM bytecode of method.
For example corresponding MyClass.class file after compilation of source code shown in Fig. 1, have the Mul method in the method table parsed, and bytecode (JVM instruction) is as follows:
(only be signal, actual JVM instruction meeting is more complicated)
Load MyClass.a // a the field of current object is loaded into to JVM operation storehouse
Load MyClass.c // c the field of current object is loaded into to JVM operation storehouse
Mul // two numbers in storehouse are ejected and multiply each other, by the operation result pop down
SetField MyClass.b // by the b field that ejects and be saved in current object of counting in storehouse
According to the JVM document, the jump instruction in bytecode all is only limited to method inside, namely can not jump in the code of additive method (it is initial that the call instruction also can only be transferred to the code of additive method), so method is " singly entering "; Again because the target location of all jump instructions is staticly (namely when compiling, just can determine, there is no register and indirect branch, comprise that abnormality processing etc. is also static), so each JVM instruction column in method can be become to a table, whether whether analyzing and mark each instruction is redirect or call instruction, and be possible redirect destination.Consideration is by some the continuous code snippets that the JVM instruction forms, if they are not redirect or call instruction (or redirect is arranged but destination in fragment) yet, neither the redirect destination (or destination but all from interval), this fragment is single-input single-output.
JVM is based on storehouse, and the execution of each instruction has regulation to the impact of storehouse in document.As load int instruction meeting, be pressed into a word in storehouse, and mul int can eject 2, then be pressed into 1, amount to and be equivalent to reduce a word, can staticly determine when these are all also compiling.To JVM instruction list in method, and with a stack pointer, record every instruction and carry out the impact on storehouse.If continuous some the JVM instructions in certain single-input single-output interval, after carrying out, stack pointer is constant, and this sub-range is the storehouse balance.Between the JVM instruction area that the above illustrates, be namely single-input single-output and storehouse balance.
After by method of the present invention, protecting, the above JVM instruction in the .class file is taken out, and replaces with calling nation method native_fun123.And in newly-increased local dynamic link library, derived the native_fun123 function, instruction simulation one by one above JVM instruction.According to the definition in the JVM document, to each JVM instruction, all finish writing in advance one section local code and simulate its function.As the access object field, simulate with JNI, the simulation of local cpu multiplying order is used in multiplying.Local code fragment assembly corresponding to all instructions in JVM instruction fragment got up, just become the code of nation method.
Can see in the software after protection, there is no the JVM instruction of Mul method, the key logic of the method is also realized by local code and JNI when operation.
This method is not only applicable to windows platform, is applicable to the operating system that other use dynamic base mechanism yet.When other operating systems were used, method step and windows platform step were basic identical, repeat no more herein.
The foregoing is only preferred embodiment of the present invention, be not intended to limit protection scope of the present invention.Within the spirit and principles in the present invention all, any modification of doing, be equal to and replace and improvement etc., within all should being included in protection scope of the present invention.

Claims (9)

1. a method of protecting the JAVA executable program, is characterized in that, comprises the steps:
Step 1: create local dynamic link libraries file;
Step 2: enumerate the .class file in shielded JAVA executable program;
Step 3: analyze the JVM code in described .class file, then choose the code snippet in the JVM code;
Step 4: the described code snippet that will choose is from the .class file, taking out, and replaces to calling nation method in the situ of described code snippet;
Step 5: in described local dynamic link library, generate the local code derivative function, the title of described local code derivative function is corresponding with described nation method, and the instruction simulate one by one described code snippet in described local code derivative function in, and make described local code derivative function realize the identical function of the described code snippet extracted;
Step 6: return to step 2, continue to enumerate, until finish.
2. method according to claim 1, is characterized in that, the local dynamic link library file title in described step 1 is random, or in step 4, the nation method title is random.
3. method according to claim 1, is characterized in that, according to single-input single-output and storehouse balance principle Automatic Extraction code snippet.
4. method according to claim 1, is characterized in that, in step 5 one by one the instruction in the simulation code fragment comprise the instruction of access classes, object used to the JNI simulation.
5. method according to claim 1, is characterized in that, in step 5 one by one the arithmetic sum controls metastasis of the instruction in the simulation code fragment use the local code simulation.
6. an equipment of protecting the JAVA executable program, is characterized in that, comprising:
Enumerate module, for enumerating the .class file of shielded JAVA software;
Analysis module, for analyzing the JVM code of .class file, choose the code snippet in the JVM code according to the principle of single-input single-output and storehouse balance;
Replace code module, the described code snippet chosen, from described .class file, taking out, is replaced to calling nation method in the situ of described code snippet;
Generate the local code module, be used to generating the local code derivative function, realize the identical function of the described code snippet extracted.
7. the equipment of protection JAVA executable program according to claim 6, is characterized in that, also comprises: encrypting module, and for the local code generation module is encrypted.
8. the equipment of protection JAVA executable program according to claim 7, is characterized in that, is decrypted when the operation of shielded executable program.
9. the equipment of protection JAVA executable program according to claim 8, is characterized in that, the code of deciphering and relevant key leave in described local code derivative function.
CN201310284248.0A 2013-07-09 2013-07-09 A kind of method and apparatus protecting JAVA executable program Active CN103413073B (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201310284248.0A CN103413073B (en) 2013-07-09 2013-07-09 A kind of method and apparatus protecting JAVA executable program

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201310284248.0A CN103413073B (en) 2013-07-09 2013-07-09 A kind of method and apparatus protecting JAVA executable program

Publications (2)

Publication Number Publication Date
CN103413073A true CN103413073A (en) 2013-11-27
CN103413073B CN103413073B (en) 2016-01-20

Family

ID=49606084

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201310284248.0A Active CN103413073B (en) 2013-07-09 2013-07-09 A kind of method and apparatus protecting JAVA executable program

Country Status (1)

Country Link
CN (1) CN103413073B (en)

Cited By (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103902859A (en) * 2013-12-25 2014-07-02 武汉安天信息技术有限责任公司 Code protecting method and system based on hook technology in JAVA
CN104866740A (en) * 2014-02-25 2015-08-26 北京娜迦信息科技发展有限公司 Static analysis preventing method and device for files
CN105183490A (en) * 2015-10-16 2015-12-23 百度在线网络技术(北京)有限公司 Method and device for migrating offline processing logic to real-time processing frame
CN105404794A (en) * 2014-09-04 2016-03-16 腾讯科技(深圳)有限公司 Protection method and device of Java application software
CN106096404A (en) * 2016-08-18 2016-11-09 北京深思数盾科技股份有限公司 A kind of data guard method and system
CN106650340A (en) * 2016-11-16 2017-05-10 中国人民解放军国防科学技术大学 Binary software protection method by means of dynamic fine-grained code hiding and obfuscating technology
CN106909356A (en) * 2015-12-22 2017-06-30 阿里巴巴集团控股有限公司 The replacement method and device of method in java class
CN107229848A (en) * 2017-06-12 2017-10-03 北京洋浦伟业科技发展有限公司 A kind of code reinforcement means and device
CN107506651A (en) * 2017-07-04 2017-12-22 上海斐讯数据通信技术有限公司 A kind of code encryption method and system
CN108446541A (en) * 2018-02-12 2018-08-24 北京梆梆安全科技有限公司 Source code reinforcement means and device based on finite state machine and semiology analysis
CN108446536A (en) * 2018-02-12 2018-08-24 北京梆梆安全科技有限公司 A kind of source code reinforcement means and device based on semiology analysis and single-point logic
CN108537012A (en) * 2018-02-12 2018-09-14 北京梆梆安全科技有限公司 Source code based on variable and code execution sequence obscures method and device
CN109343855A (en) * 2018-09-29 2019-02-15 清华大学 The program compiling grasping system and method pretended based on instruction
CN110531965A (en) * 2018-05-23 2019-12-03 阿里巴巴集团控股有限公司 A kind of data processing method, program operating method and equipment
CN110866226A (en) * 2019-11-15 2020-03-06 中博信息技术研究院有限公司 JAVA application software copyright protection method based on encryption technology

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101356535A (en) * 2005-11-10 2009-01-28 株式会社Ntt都科摩 A method and apparatus for detecting and preventing unsafe behavior of javascript programs
CN102081546A (en) * 2009-11-30 2011-06-01 国际商业机器公司 Memory optimization of virtual machine code by partitioning extraneous information
CN102708322A (en) * 2012-05-12 2012-10-03 北京深思洛克软件技术股份有限公司 Method for protecting JAVA application programs in Android system
CN102831343A (en) * 2012-07-27 2012-12-19 北京奇虎科技有限公司 Target program processing method, processing device and cloud service equipment

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101356535A (en) * 2005-11-10 2009-01-28 株式会社Ntt都科摩 A method and apparatus for detecting and preventing unsafe behavior of javascript programs
CN102081546A (en) * 2009-11-30 2011-06-01 国际商业机器公司 Memory optimization of virtual machine code by partitioning extraneous information
CN102708322A (en) * 2012-05-12 2012-10-03 北京深思洛克软件技术股份有限公司 Method for protecting JAVA application programs in Android system
CN102831343A (en) * 2012-07-27 2012-12-19 北京奇虎科技有限公司 Target program processing method, processing device and cloud service equipment

Cited By (22)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103902859A (en) * 2013-12-25 2014-07-02 武汉安天信息技术有限责任公司 Code protecting method and system based on hook technology in JAVA
CN104866740A (en) * 2014-02-25 2015-08-26 北京娜迦信息科技发展有限公司 Static analysis preventing method and device for files
CN105404794A (en) * 2014-09-04 2016-03-16 腾讯科技(深圳)有限公司 Protection method and device of Java application software
CN105404794B (en) * 2014-09-04 2019-09-20 腾讯科技(深圳)有限公司 The guard method of Java application software and device
CN105183490A (en) * 2015-10-16 2015-12-23 百度在线网络技术(北京)有限公司 Method and device for migrating offline processing logic to real-time processing frame
CN105183490B (en) * 2015-10-16 2019-07-23 百度在线网络技术(北京)有限公司 Processed offline logic is migrated to the method and apparatus of real-time processing frame
CN106909356A (en) * 2015-12-22 2017-06-30 阿里巴巴集团控股有限公司 The replacement method and device of method in java class
CN106096404B (en) * 2016-08-18 2019-05-21 北京深思数盾科技股份有限公司 A kind of data guard method and system
CN106096404A (en) * 2016-08-18 2016-11-09 北京深思数盾科技股份有限公司 A kind of data guard method and system
CN106650340A (en) * 2016-11-16 2017-05-10 中国人民解放军国防科学技术大学 Binary software protection method by means of dynamic fine-grained code hiding and obfuscating technology
CN106650340B (en) * 2016-11-16 2019-12-06 中国人民解放军国防科学技术大学 binary software protection method adopting dynamic fine-grained code hiding and obfuscating technology
CN107229848A (en) * 2017-06-12 2017-10-03 北京洋浦伟业科技发展有限公司 A kind of code reinforcement means and device
CN107506651A (en) * 2017-07-04 2017-12-22 上海斐讯数据通信技术有限公司 A kind of code encryption method and system
CN108446536A (en) * 2018-02-12 2018-08-24 北京梆梆安全科技有限公司 A kind of source code reinforcement means and device based on semiology analysis and single-point logic
CN108537012A (en) * 2018-02-12 2018-09-14 北京梆梆安全科技有限公司 Source code based on variable and code execution sequence obscures method and device
CN108446541A (en) * 2018-02-12 2018-08-24 北京梆梆安全科技有限公司 Source code reinforcement means and device based on finite state machine and semiology analysis
CN108537012B (en) * 2018-02-12 2021-11-16 北京梆梆安全科技有限公司 Source code obfuscation method and device based on variables and code execution sequence
CN110531965A (en) * 2018-05-23 2019-12-03 阿里巴巴集团控股有限公司 A kind of data processing method, program operating method and equipment
CN109343855A (en) * 2018-09-29 2019-02-15 清华大学 The program compiling grasping system and method pretended based on instruction
CN109343855B (en) * 2018-09-29 2020-12-29 清华大学 Program compiling and grabbing system and method based on instruction camouflage
CN110866226A (en) * 2019-11-15 2020-03-06 中博信息技术研究院有限公司 JAVA application software copyright protection method based on encryption technology
CN110866226B (en) * 2019-11-15 2022-05-24 中博信息技术研究院有限公司 JAVA application software copyright protection method based on encryption technology

Also Published As

Publication number Publication date
CN103413073B (en) 2016-01-20

Similar Documents

Publication Publication Date Title
CN103413075B (en) A kind of method and apparatus of protecting JAVA executable program by virtual machine
CN103413073B (en) A kind of method and apparatus protecting JAVA executable program
CN105683990B (en) Method and apparatus for protecting dynamic base
CN103914637B (en) A kind of executable program encryption method of Android platform
KR101518420B1 (en) Apparatus and method for managing apk file in a android platform
KR101471589B1 (en) Method for Providing Security for Common Intermediate Language Program
CN106096338B (en) A kind of virtualization software guard method obscured with data flow
Balachandran et al. Control flow obfuscation for android applications
CN106126981B (en) Software security means of defence based on the replacement of virtual function table
CN102598017B (en) Improve the system and method for its tamper-proof capabilities of Java bytecode
US8589897B2 (en) System and method for branch extraction obfuscation
CN108363911B (en) Python script obfuscating and watermarking method and device
KR101521765B1 (en) Apparatus For Code Obfuscation Using Indistinguishable Identifier Conversion and Method Thereof
WO2015058620A1 (en) Method and apparatus for generating installation package corresponding to an application and executing application
CN104866734B (en) A kind of guard method of DEX file and device
KR101861341B1 (en) Deobfuscation apparatus of application code and method of deobfuscating application code using the same
US20180129794A1 (en) Method for Protecting Dex File from Decompilation in Android System
KR101234591B1 (en) Method for Anti-Encoding Android by Using Java Native Interface
CN103413076A (en) Block protection method for Android application programs
CN107632832B (en) Dalvik byte code oriented control flow confusion method
CN103065072A (en) Method and device to improve Java software jailbreak difficulty and copyright verification method
JP2016525760A (en) Identify irrelevant code
US8775826B2 (en) Counteracting memory tracing on computing systems by code obfuscation
CN112052433B (en) Virtual protection method, terminal and storage medium for Jar file
CN117150515B (en) Safety protection method for EDA secondary development source code, electronic equipment and storage medium

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C14 Grant of patent or utility model
GR01 Patent grant
C56 Change in the name or address of the patentee
CP03 Change of name, title or address

Address after: 100193 Beijing, Haidian District, East West Road, No. 10, East Hospital, building No. 5, floor 5, layer 510

Patentee after: BEIJING SENSESHIELD TECHNOLOGY Co.,Ltd.

Address before: 100872 room 1706, building 59, Zhongguancun street, Haidian District, Beijing

Patentee before: BEIJING SHENSI SHUDUN TECHNOLOGY Co.,Ltd.

CP01 Change in the name or title of a patent holder
CP01 Change in the name or title of a patent holder

Address after: 100193 5th floor 510, No. 5 Building, East Yard, No. 10 Wangdong Road, Northwest Haidian District, Beijing

Patentee after: Beijing Shendun Technology Co.,Ltd.

Address before: 100193 5th floor 510, No. 5 Building, East Yard, No. 10 Wangdong Road, Northwest Haidian District, Beijing

Patentee before: BEIJING SENSESHIELD TECHNOLOGY Co.,Ltd.