CN103714271A - Contradictory construction method of Java-software watermark-embedding dummy method - Google Patents

Contradictory construction method of Java-software watermark-embedding dummy method Download PDF

Info

Publication number
CN103714271A
CN103714271A CN201310459225.9A CN201310459225A CN103714271A CN 103714271 A CN103714271 A CN 103714271A CN 201310459225 A CN201310459225 A CN 201310459225A CN 103714271 A CN103714271 A CN 103714271A
Authority
CN
China
Prior art keywords
contradiction
java
implanted
empty
software
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
CN201310459225.9A
Other languages
Chinese (zh)
Other versions
CN103714271B (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.)
Nantong University Technology Transfer Center Co ltd
Original Assignee
Nantong University
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 Nantong University filed Critical Nantong University
Priority to CN201310459225.9A priority Critical patent/CN103714271B/en
Publication of CN103714271A publication Critical patent/CN103714271A/en
Application granted granted Critical
Publication of CN103714271B publication Critical patent/CN103714271B/en
Active legal-status Critical Current
Anticipated expiration legal-status Critical

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/16Program or content traceability, e.g. by watermarking

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Multimedia (AREA)
  • Technology Law (AREA)
  • Computer Hardware Design (AREA)
  • Computer Security & Cryptography (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Devices For Executing Special Programs (AREA)

Abstract

A contradictory construction method of a Java-software watermark-embedding dummy method includes calling data with same characteristics in software, coding the data, and performing set calculation on the codes to enable the calculated constant value to be zero and to serve as the value of a contradictory. The contradictory construction method has the advantages that technical measures such as the Java reflection mechanism, dynamic and random generation of 0 and 1 strings and encoding and decoding of positive and inverse codes are combined and utilized organically, so that the dummy method constructed by the contradictory construction method has good stealthiness and is not easy to perceive and discover, and various common attacks, such as semantic conversion attacks, statistics attacks, code increase and decrease attacks and single-step tracking and debugging attacks, to software watermarks can be effectively resisted.

Description

A kind of Java software watermark is implanted the contradiction building method of empty method
Technical field
The present invention relates to the protection of software copyright, relate in particular to the contradiction building method that a kind of Java software watermark is implanted empty method.
Background technology
Software industry is fast development in recent years, has become the great industry every year with hundreds billion of output values.Meanwhile, the bootlegging of software product and the problem of usurping also become very serious, are subject to outer extensive concern in the industry.How protecting the intellecture property of software product, prevent software by bootlegging and usurp, is an important subject of information security field.Software watermark is a technology of the protection software copyright that occurs in recent years; it embeds copyright protection information or authentication information under the prerequisite that does not affect software function in soft work; when software suffers bootlegging or usurps, can carry out by extracting these information the entitlement of certifying software works.
At present, in various software products, with the software of Java language exploitation, occupy very large proportion.Java language has cross-platform portability, easy-to-use, the problem of also bringing program to be easily replicated and to usurp simultaneously.The class file that uses without permission other people to develop in the program that some developers can develop at oneself, also can obtain source file from class file by decompiling, learn the method that other people solve certain problem.Therefore, the copyright protection technology of research and development Java language software is of great practical significance and using value.
About Java Software Watermark, there has been proposed some schemes and algorithm.Wherein, the people such as Akito Monden has proposed a kind of software watermark scheme based on java class file bytecode.Its basic thought is; in the java applet needing protection, implant the method for never carrying out, be called empty method, then in the bytecode of the corresponding class file of this empty method; the operand of instruction is modified or the operational code of instruction is encoded, with this, carry out embed watermark information.The flow process of algorithm as shown in Figure 2.First by certain mode, one or more empty methods are implanted in the Java source program needing protection.So-called empty method refers to, this method reality can not be performed.The Java source program that comprises empty method is compiled to the java class file that obtains being formed by bytecode.In class file, find the corresponding instruction of code of empty method, revise the operational code of the operand of these instructions or these instructions of encoding by certain mode, carrying out embed watermark is copyright information.The extraction of watermark is to realize by the empty method in detection type file and its contained instruction.Because empty method reality is not carried out, can, by certain need to it being programmed or be revised, can not affect the function of original program.
Although at present the algorithm of the propositions such as Akito Monden is had to many further research, the emphasis of research is how in empty method, to embed and extract watermark information, and how empty method is implanted, how to be constructed and effectively make the structure of false knot forever that empty method is not performed not yet relate to.But this problem does not solve, empty method just can not well be hidden, easily under attack, and watermarking algorithm also just cannot really be applied.
 
Summary of the invention
A kind of Java software watermark that the present invention seeks to propose for the unsolved problem of above-mentioned prior art is implanted the contradiction building method of empty method, specifically by following technical scheme, is realized:
Described Java software watermark is implanted the contradiction building method of empty method, comprising:
Call the data that possess common trait in software;
Data described in each are encoded;
The calculating that described coding is set, making the steady state value calculating is zero, and the value using this steady state value as this contradiction.
The further design that described Java software watermark is implanted the contradiction building method of empty method is, described in possess common trait data be the method name in program.
The further design that described Java software watermark is implanted the contradiction building method of empty method is; the described software that calls is to utilize Java reflex mechanism to parse the described method name in the class needing protection, and described method name is stored in a corresponding array.
The further design that described Java software watermark is implanted the contradiction building method of empty method is, described coding is by iteration array and produces the character string that random number forms.
The further design that described Java software watermark is implanted the contradiction building method of empty method is, described coding comprises:
Array described in iteration,
According to each array element, with random function, generate " 0 " or " 1 " character;
By 0,1 character generating by random function be spliced in turn one 0,1 character string, the figure place of described character string is the sum of the described method name that parses.
The further design that described Java software watermark is implanted the contradiction building method of empty method is, the calculating of described setting comprises:
Construct a digital positive and inverse code coding and decoding device;
Described character string is inputed to described digital positive and inverse code scrambler;
Value using the output of positive and inverse code demoder as contradiction.
The further design that described Java software watermark is implanted the contradiction building method of empty method is, at the input end of described positive and inverse code demoder, one identically true formula is set as Rule of judgment.
By technique scheme, can be found out, the present invention utilizes the method name in class to produce one 0,1 string, then this 0,1 string is carried out to Code And Decode, this process is not relevant with any specific code form or their execution sequence, therefore,, even convert by semanteme, change form or the order of code, as long as function is constant, the structure of above-mentioned empty method can not destroyed.
Meanwhile, 0 in the present invention, 1 string produce with random function, and 0,1 string producing during each run is all different, cannot be exhaustive, so statistical dependence information, to find the structure of law discovery void method, thereby is highly resistant to statistical attack and the attack of single step trace debug definitely.
The same with semantic Transformation Attack, increase code intrusion and can not produce any impact to the inventive method.For reducing code intrusion, if deduct the code that is not relevant with the structure of empty method, can not exert an influence to this program; If the process of the code deducting and 0,1 Series Code decoding is relevant, owing to can not correctly carrying out encoding and decoding, will cause program to be made mistakes, cannot normally move, this is also nonsensical for assailant, because assailant's object is to usurp program, if the program of stealing cannot complete predetermined function, just attack, lose meaning and effect.
Therefore, the contradiction building method that the present invention proposes, by adopting Java reflex mechanism, dynamic random to produce the technological means such as 0,1 string, positive and inverse code encoding and decoding, makes it have good disguise, is difficult for being discovered and finding.Can resist the multiple common attack for software watermark simultaneously.
Accompanying drawing explanation
Fig. 1 is the program example operation result schematic diagram that described structure contradiction is implanted empty method.
Fig. 2 is the existing Java Software Watermarking Algorithm process flow diagram based on bytecode.
Embodiment
Below in conjunction with accompanying drawing, the present invention program is elaborated.
It is empty method that contradiction of the present invention is configured to implant a method of never carrying out in the program needing protection.Suppose that the method is dummy (), in order to allow dummy () seem not empty, it is arranged to a condition and call, its general structure is as follows:
If?(condition)
{
dummy();
}
Wherein, condition is an expression formula for vacation forever, and the value of this expression formula is true or 1 never.Because condition sets up never, so method dummy () is performed never.Top priority will build this false expression formula forever of condition exactly.For empty method is not penetrated easily, the contradiction of structure can not be too simple and direct.Otherwise assailant just can be very easy to find the method that this is never carried out by some simple debugging acids, by its deletion or destruction, make the watermark information embedding lose or cannot correctly extract.Therefore the contradiction building should have certain complicacy and rationality, guarantees that again this expression formula at any time all can not set up.
Java software watermark provided by the invention is implanted the contradiction building method of empty method, comprises such step:
Call the data that possess common trait in software;
Data described in each are encoded;
The calculating that described coding is set, the steady state value that makes to calculate is zero and as the value of this contradiction.
The data that possess common trait described in above-mentioned contradiction building method refer to the method name (conventionally all can contain several above methods in the class of an actual java applet) in java applet; and described in call software and refer to the term of execution of program; utilize Java reflex mechanism to parse all method names in the class needing protection, and they are stored in a corresponding array.Realize the code instance following (wherein array is named as methods) of this process:
Class< > class=Class.forName (" class name of claimed java applet ");
Method?[]methods?=?class.getDeclaredMethods();
Described coding in above-mentioned contradiction building method is by iteration array and produces the character string that random number forms, and further, this cataloged procedure comprises:
Iteration array;
According to each array element, with random function, generate " 0 " or " 1 " character;
By 0,1 character generating by random function be spliced in turn one 0,1 character string, the figure place of character string is the sum of contained method name in array.
The code instance of above-mentioned cataloged procedure is as follows:
for(Method?method?:?methods)?{
sb.append(new?Random().nextInt(2));
}
Selection generates 0,1 yard by random function, rather than indirect assignment " 0 " or " 1 ", object is by random function assignment, to have versatility and the disguise of height, even if use single-step debug instrument, also be difficult for finding assignment certainty wherein, can not wake suspicion.
After having encoded, the calculating that 0,1 character string obtaining is set, this calculating comprises: structure one digital positive and inverse code coding and decoding device, character string is inputed to digital positive and inverse code scrambler, result after coding is inputed to positive and inverse code demoder again, and the most decoded result is as the Rule of judgment of contradiction.
Concrete, the information bit using 0,1 string obtained above as positive and inverse code, produces check bit according to information bit.The number of " 1 " in statistics character string, if odd number, the simple repetition that check bit is character string; If even number, check bit is the every negate of character string.By former character string (being information bit) and check bit splicing, just obtain 0,1 character string after positive and inverse code coding.
The process of positive and inverse code decoding is, the first half and the later half of input code character are pressed to exclusive-OR, obtains a synthetic code character.Synthetic code character produces a verification code character thus, if having even number " 1 " in input code character, verification code character is identical with synthetic code character; If there is odd number " 1 " in input code character, get the radix-minus-one complement of synthetic code character as verification code character, everybody of the verification code character finally obtaining is 0 entirely, usings the output of this verification code character as demoder.
Code And Decode process from above-mentioned positive and inverse code, no matter original information bits the figure place of (0,1 string generating by Java reflex mechanism dynamic random) how much and everybody 0,1 how to form, as long as Code And Decode step is correct, the final verification code character producing is that everybody of character string of demoder output is necessarily 0 entirely.
The operation of above-mentioned positive and inverse code Code And Decode is completed by a method respectively, be placed on together another independently in class, and be not interposing at this class, to improve disguise.
Further, at the input end of positive and inverse code demoder, one identically true formula is set as Rule of judgment, can further improve the complicacy of contradiction structure and the disguise of empty method, correlative code is as follows:
String?str=Code.encode(sb.toString());
if(str.contains("0")||str.contains("1")){
str?=?Code.decode(str);
}
Wherein, str represents 0,1 character string, and encode () and decode () carry out the method for positive and inverse code Code And Decode operation to character string.
experiment test embodiment
Inventor has done following experiment test to the inventive method.The class Protected_Class by name of the java applet that in experiment, hypothesis needs protection; wherein contain 5 methods, be respectively func1 () ~ func5 (), its concrete function is separately unimportant in this test; only with print statement, represent, export corresponding method name.Can select any one and empty method in these 5 methods to integrate, utilize the present invention to realize the implantation of empty method, select func5 () herein, corresponding program code is as follows:
package?org.experiment;
import?java.lang.reflect.Method;
import?java.util.ArrayList;
import?java.util.List;
import?java.util.Random;
import?org.util.Code;
Public class Protected_Class{ // protected class
{ //func1 () ~ func5 () is original method in class to public int func1 ()
System.out.println (" func1 "); // output intent name, and line feed
return?1;
}
public?int?func2(){
System.out.println("func2");
return?1;
}
public?int?func3(){
System.out.println("func3");
return?1;
}
public?int?func4(){
System.out.println("func4");
return?1;
}
public?int?func5(){
System.out.println("func5");
return?1;
}
Public void dummy () {/empty method
System.out.println (" dummy "); // inner statement represents with print statement, output intent name
}
{ // the process of implanting empty method completes by a method public void insert_dummy (), is named insert_dummy
List<String>?lst?=?new?ArrayList<String>();
StringBuffer?sb?=?new?StringBuffer();
Class<?>?c?=?Class.forName("org.experiment.Protected_Class");
Method?[]methods?=?c.getDeclaredMethods();
for(Method?method?:?methods)?{
sb.append(new?Random().nextInt(2));
} // above statement is realized by random 0,1 character string that produces of reflex mechanism
System.out.println (" character string of utilizing reflex mechanism to produce at random: "); // test statement, output header
System.out.println (sb.toString ()); // test statement, the random character string producing of output
String str=Code.encode (sb.toString ()); // character string is carried out to positive and inverse code coding
If (str.contains (" 0 ") || str.contains (" 1 ")) { // identically true formula conditional statement
Str=Code.decode (str); // character string is carried out to positive and inverse code decoding
System.out.println (" character string after encoding and decoding: "); // test statement, output header
System.out.println (str); // test statement, the character string after output encoding and decoding
}
If (str.contains (" 1 ")) { // contradiction conditional statement
Dummy (); // call empty method
}else{
System.out.println (" call the method for implanting empty method: "); // test statement, output header
Func5 (); // call func5 ()
}
}
}
The master routine of test is as follows:
package?main;
import?org.experiment;
public?class?Test{
public?void?main(String[]?args)?{
Protected_Class.insert_dummy (); The code of empty method is implanted in // operation
System.out.println (" func5 method is directly called in contrast: "); // test statement, output header
Protected_Class.func5 (); // directly move func5 (), contrast
}
}
What program operation was exported the results are shown in Figure 1.
In diagram result, first func5 of output calls to implant the result that the method insert_dummy () of empty method obtains.Second func5 of output is for directly to call the result that func5 () method obtains, and both are identical, illustrates that empty method dummy () does not carry out, and what reality was carried out is func5 (), and test result is correct.In test, we have also exported original character string and the character string after positive and inverse code Code And Decode producing by Java reflex mechanism dynamic random especially.The former result is 1100100, and string long 7 (original 5 method func1 () ~ func5 () in class, adds two method insert_dummy () and the dummy () of interpolation, and totally 7 methods, therefore be 7) everyly forms by 0 and 1.Character string after encoding and decoding is 0000000, and everybody is 0 entirely, and result is correct.Before mention, 0,1 string producing by Java reflex mechanism is random and generates, every secondary program operation all may be different.We move repeatedly repeatedly to said procedure, although initial 0,1 string producing is different, the result after encoding and decoding is all 0 entirely, program each run, void method dummy () does not all carry out, execution be the method func5 () that program should be carried out, result is correct.
According to above-mentioned design, as long as the statement that calls func5 () in original program is called to insert_dummy () instead.

Claims (7)

1. described in, Java software watermark is implanted the contradiction building method of empty method, comprising:
Call the data that possess common trait in software;
Data described in each are encoded;
The calculating that described coding is set, making the steady state value calculating is zero, and the value using this steady state value as this contradiction.
2. the further design that described in, Java software watermark is implanted the contradiction building method of empty method is, described in possess common trait data be the method name in program.
3. the further design that described in, Java software watermark is implanted the contradiction building method of empty method is; the described software that calls is to utilize Java reflex mechanism to parse the described method name in the class needing protection, and described method name is stored in a corresponding array.
4. the further design that described in, Java software watermark is implanted the contradiction building method of empty method is, described coding is by iteration array and produces the character string that random number forms.
5. the further design that described in, Java software watermark is implanted the contradiction building method of empty method is, described coding comprises:
Array described in iteration,
According to each array element, with random function, generate " 0 " or " 1 " character;
By 0,1 character generating by random function be spliced in turn one 0,1 character string, the figure place of described character string is the sum of the described method name that parses.
6. the further design that described in, Java software watermark is implanted the contradiction building method of empty method is, the calculating of described setting comprises:
Construct a digital positive and inverse code coding and decoding device;
Described character string is inputed to described digital positive and inverse code scrambler;
Value using the output of positive and inverse code demoder as contradiction.
7. the further design that described in, Java software watermark is implanted the contradiction building method of empty method is, at the input end of described positive and inverse code demoder, one identically true formula is set as Rule of judgment.
CN201310459225.9A 2013-09-30 2013-09-30 A kind of Java software watermark implants the contradiction building method of empty method Active CN103714271B (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201310459225.9A CN103714271B (en) 2013-09-30 2013-09-30 A kind of Java software watermark implants the contradiction building method of empty method

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201310459225.9A CN103714271B (en) 2013-09-30 2013-09-30 A kind of Java software watermark implants the contradiction building method of empty method

Publications (2)

Publication Number Publication Date
CN103714271A true CN103714271A (en) 2014-04-09
CN103714271B CN103714271B (en) 2016-10-26

Family

ID=50407237

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201310459225.9A Active CN103714271B (en) 2013-09-30 2013-09-30 A kind of Java software watermark implants the contradiction building method of empty method

Country Status (1)

Country Link
CN (1) CN103714271B (en)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104200139A (en) * 2014-09-12 2014-12-10 南通大学 Method for generating instruction codes in Java software watermark virtualizing method
CN106502781A (en) * 2015-09-08 2017-03-15 北京国双科技有限公司 Character joining method and device
CN108173619A (en) * 2016-12-07 2018-06-15 华为技术有限公司 A kind of information coding method, coding/decoding method and device

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20050262347A1 (en) * 2002-10-25 2005-11-24 Yuji Sato Watermark insertion apparatus and watermark extraction apparatus
US20070172096A1 (en) * 2006-01-24 2007-07-26 Fuji Xerox Co., Ltd. Watermarked image generation apparatus, watermarked image analysis apparatus, watermarked image generation method, medium and computer readable medium
CN102750489A (en) * 2011-04-22 2012-10-24 秦智慧 Software watermark combining dynamic and static algorithms and log recovery watermark technology

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20050262347A1 (en) * 2002-10-25 2005-11-24 Yuji Sato Watermark insertion apparatus and watermark extraction apparatus
US20070172096A1 (en) * 2006-01-24 2007-07-26 Fuji Xerox Co., Ltd. Watermarked image generation apparatus, watermarked image analysis apparatus, watermarked image generation method, medium and computer readable medium
CN102750489A (en) * 2011-04-22 2012-10-24 秦智慧 Software watermark combining dynamic and static algorithms and log recovery watermark technology

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
张立和等: "软件水印综述", 《软件学报》 *
王春红等: "基于字节码的Java软件水印的研究与实现", 《微电子学与计算机》 *

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104200139A (en) * 2014-09-12 2014-12-10 南通大学 Method for generating instruction codes in Java software watermark virtualizing method
CN104200139B (en) * 2014-09-12 2017-11-24 南通大学 The generation method of instruction code in a kind of Java software watermark void method
CN106502781A (en) * 2015-09-08 2017-03-15 北京国双科技有限公司 Character joining method and device
CN108173619A (en) * 2016-12-07 2018-06-15 华为技术有限公司 A kind of information coding method, coding/decoding method and device

Also Published As

Publication number Publication date
CN103714271B (en) 2016-10-26

Similar Documents

Publication Publication Date Title
US10409966B2 (en) Optimizing and protecting software
US10185546B2 (en) Service extraction and application composition
CN105005718B (en) A kind of method that Code obfuscation is realized using Markov chain
CN102136053B (en) Method and device for protecting source code of executable file
US20160357530A1 (en) Method and apparatus for intermediate representation of applications
CN107092518A (en) A kind of Compilation Method for protecting mimicry system of defense software layer safe
CN108363911B (en) Python script obfuscating and watermarking method and device
CN109684794B (en) Code protection virtual machine KVM system realization method, device, computer equipment and storage medium
TW200841209A (en) Obfuscating computer program code
EP3127034A1 (en) Software protection
KR101861341B1 (en) Deobfuscation apparatus of application code and method of deobfuscating application code using the same
CN103177199A (en) Webpage application code protective method and system, and executive speed-up method and system
Chroni et al. Encoding watermark integers as self-inverting permutations
CN101477610A (en) Software watermark process for combined embedding of source code and target code
CN103714271A (en) Contradictory construction method of Java-software watermark-embedding dummy method
CN101504709A (en) Weak software watermark method used for software configuration management
KR101536920B1 (en) Method of Obfuscating Files Based on Advanced RISC Machine Processor
Yang et al. Towards code watermarking with dual-channel transformations
CN116611032A (en) Method, system and storage medium for embedding and extracting software watermark in JAR package
CN101866410A (en) Methods for embedding watermarks in Java software and extracting watermarks from Java software
Chroni et al. Efficient encoding of watermark numbers as reducible permutation graphs
CN104200139B (en) The generation method of instruction code in a kind of Java software watermark void method
Yang et al. SrcMarker: Dual-Channel Source Code Watermarking via Scalable Code Transformations
CN103530536B (en) Method for embedding Java software watermark
CN111400670A (en) Watermark adding method, device, 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
TR01 Transfer of patent right
TR01 Transfer of patent right

Effective date of registration: 20201016

Address after: 226019 No.205, building 6, Nantong University, No.9, Siyuan Road, Nantong City, Jiangsu Province

Patentee after: Center for technology transfer, Nantong University

Address before: 226019 Jiangsu city of Nantong province sik Road No. 9 Institute of electronic and Information Engineering Nantong University

Patentee before: NANTONG University

EE01 Entry into force of recordation of patent licensing contract

Application publication date: 20140409

Assignee: Nantong Zhijia Intelligent Equipment Co.,Ltd.

Assignor: Center for technology transfer, Nantong University

Contract record no.: X2022320000351

Denomination of invention: A Permanent and False Construction Method of Java Software Watermark Implantation Virtual Method

Granted publication date: 20161026

License type: Common License

Record date: 20221210

EE01 Entry into force of recordation of patent licensing contract
CP03 Change of name, title or address

Address after: 226001 No.9, Siyuan Road, Chongchuan District, Nantong City, Jiangsu Province

Patentee after: Nantong University Technology Transfer Center Co.,Ltd.

Address before: 226019 No.205, building 6, Nantong University, No.9, Siyuan Road, Nantong City, Jiangsu Province

Patentee before: Center for technology transfer, Nantong University

CP03 Change of name, title or address
EE01 Entry into force of recordation of patent licensing contract

Application publication date: 20140409

Assignee: Nantong Guanjun Automation Technology Co.,Ltd.

Assignor: Nantong University Technology Transfer Center Co.,Ltd.

Contract record no.: X2023980054513

Denomination of invention: A Permanent False Construction Method for Java Software Watermark Implantation Virtual Method

Granted publication date: 20161026

License type: Common License

Record date: 20231229

EE01 Entry into force of recordation of patent licensing contract