CN104200137A - Method for guaranteeing self-security of JAVA program - Google Patents

Method for guaranteeing self-security of JAVA program Download PDF

Info

Publication number
CN104200137A
CN104200137A CN201410447116.XA CN201410447116A CN104200137A CN 104200137 A CN104200137 A CN 104200137A CN 201410447116 A CN201410447116 A CN 201410447116A CN 104200137 A CN104200137 A CN 104200137A
Authority
CN
China
Prior art keywords
class file
jvm
java
structuring
algorithm
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
CN201410447116.XA
Other languages
Chinese (zh)
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.)
Chengdu Westone Information Industry Inc
Original Assignee
Chengdu Westone Information Industry Inc
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 Chengdu Westone Information Industry Inc filed Critical Chengdu Westone Information Industry Inc
Priority to CN201410447116.XA priority Critical patent/CN104200137A/en
Publication of CN104200137A publication Critical patent/CN104200137A/en
Pending legal-status Critical Current

Links

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/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
    • 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/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45504Abstract machines for programme code execution, e.g. Java virtual machine [JVM], interpreters, emulators

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Multimedia (AREA)
  • Technology Law (AREA)
  • Computer Hardware Design (AREA)
  • Computer Security & Cryptography (AREA)
  • Storage Device Security (AREA)

Abstract

The invention provides a method for guaranteeing the self-security of a JAVA program. GM algorithms SM2 and SM3 are used for signing a CLASS file of the JAVA, then a GM algorithm SM4 is used for encrypting the CLASS file, and the CLASS file is effectively prevented from being decompiled and tampered maliciously. The method can effectively protect the JAVA program, and the self-security is high. According to the encrypted CLASS file, a JAVA source program corresponding to the CLASS file can not be decompiled by any decompiling tools. For the signed CLASS file, any illegal change to the signed CLASS file can be timely found and is prevented from operating, attacks made by maliciously modifying codes are prevented, and the security level of the JAVA program is greatly improved.

Description

A kind of protection JAVA program inherently safe method
Technical field
The invention belongs to password and field of information security technology, relate generally to a kind of protection JAVA program inherently safe method.
Background technology
What after JAVA compilation of source code, generate is a kind of very easily by the bytecode of decompiling, and code and source code after decompiling almost do not have difference.Therefore some important information are just likely illegally accessed, and distort even JAVA program and also become very simple.Therefore protect the security of JAVA program self just to become important and necessary.
It is below professional technique terminological interpretation involved in the present invention.
JAVA: being a kind of cross-platform object-oriented explanation type programming language, is in the java applet design language of release in May nineteen ninety-five and the general name of Java platform (being JavaSE, JavaEE, JavaME) by Sun MicroSystems company.
JAVA bytecode: compiling forms through JAVA compilation tool by JAVA source code, and it can only move in JAVA virtual machine.Different from the local object code after the compiling of the language such as C/C++ and assembly language, in Java bytecode, still retain many semantic informations, as method name, name variable, call relation etc.This bytecode is very easily by decompiling, and code and source code after decompiling almost do not have difference.
CLASS file: the file of depositing JAVA bytecode.
JVM:JAVA virtual machine, is specifically designed to the bytecode of explaining and moving JAVA.
JNI: refer to Java local interface (Java Native Interface).It is a part of JDK, is used to Java that local code interface is provided.The Java code that JNI makes to operate on JAVA virtual machine can call the application program and the storehouse that use other Languages to write.
JVMTI:Java virtual machine tool interface (JVM Tool Interface) is the local programming interface that Java virtual machine provides, and is JVMPI(Java Virtual Machine Profiler Interface) and JVMDI(Java Virtual Machine Debug Interface) renewal version.The JVMTI client of utilizing can monitor JVM state and control JVM implementation.User can be by the agentLib parameter of JVM to JVM registration JVMTI client.
Hashing algorithm: refer to a class one-way cipher algorithm, i.e. one of this class algorithm irreversible mapping from prescribed paper to ciphertext part.Only have ciphering process, there is no decrypting process, hash algorithm can be fixed the input of random length the output of length after conversion simultaneously.This characteristic of unidirectional of hash algorithm and output data length because of fixed feature makes it can generating messages or " fingerprint " of data block.Therefore have a wide range of applications in fields such as data cryptogram agreement, digital signature, integrated authentications.
SM2: the one of asymmetric cryptographic algorithm is to be worked out by Password Management office of country of China, and the commercial algorithm of issuing in Dec, 2010.It is more safer than RSA Algorithm, arithmetic speed is also faster, in China's commercial cipher system, is used to replace RSA Algorithm.
SM3: the one of hashing algorithm is to be worked out by Password Management office of country of China, and in the commercial algorithm of issuing in Dec, 2010.For digital signature and checking, the generation of message authentication code and the generation of checking and random number of cipher application, can meet the demand for security of multiple cipher application.
SM4: the one of symmetric block cipher algorithm, worked out by Password Management office of country of China, and the commercial algorithm of issuing in March, 2012.The block length of this algorithm is 128 bits, and key length is 128 bits.Cryptographic algorithm and key schedule all adopt 32 to take turns nonlinear iteration structure.Decipherment algorithm is identical with the structure of cryptographic algorithm, the just use reversed in order of round key, and decryption round key is the contrary suitable of encryption round key.
Summary of the invention
For addressing the above problem, the invention provides a kind of protection JAVA program inherently safe method and comprise following steps:
Step 1: JAVA source program is compiled as to structuring CLASS file;
Step 2: structuring CLASS file is signed and encrypted.The structuring CLASS file of JAVA standard is converted to ciphertext CLASS file;
Step 3: ciphertext CLASS file is decrypted and obtains structuring CLASS file;
Step 4: structuring CLASS file is carried out to signature verification, and while signing by checking, JAVA bytecode is sent in JVM and moves.
Further, described step 1 is specially: with SM2 algorithm and SM3 algorithm, the byte code files of JAVA program is signed, signature value and CLASS file are according to fixed format merged in a file, obtain structuring CLASS file.
Further, described step 2 adopts SM4 algorithm to be encrypted CLASS file.
Further, described step 3 adopts SM4 algorithm to be decrypted and to obtain structuring CLASS file ciphertext CLASS.
Further, described step 4 is specially: from structuring CLASS file, take out signature value and JAVA bytecode carries out signature verification, while only having signature by checking, JAVA bytecode just can be sent in JVM and move.
Further, in step 4, be not inhibited in the operation alarm log information that also logging program has been tampered in JVM by the structuring CLASS file of signature verification.
Further, in step 4, in JVM, the step of operating structure CLASS file is specially:
Step a: start JVM;
Step b: monitor CLASS file load events to JVM registration;
Step c: be a call back function of CLASS file load events registration;
Steps d: the CLASS file to ciphertext in call back function is decrypted and signature verification.
Further, in step 4, adopting the client of JVMTI to bring in realization automatically real-time in the time that JVM loads CLASS file is the bytecode of JAVA standard by ciphertext CLASS file decryption; Described JVMTI client is compiled into a dynamic link library, and imports JVM in the time starting JVM; While adopting JVM to start, the Agent_OnLoad function that calls JVMTI client is carried out to initialization to JVMIT client.
Further, in step 4, in Agent_OnLoad function, can utilize SetEventNotificationMode to monitor CLASS file load events to JVM registration, utilize SetEventCallbacks function to articulate a call back function for CLASS file load events, in the time that JVM loads CLASS file, this call back function will be called.
Further, in step 4, in call back function, ciphertext CLASS file is decrypted and signature verification process, first with SM4 algorithm, ciphertext CLASS is decrypted, obtain structuring CLASS file, then from structuring CLASS file, take out signature value and JAVA bytecode carries out signature verification.
The present invention has following beneficial effect:
1.CLASS file is used the close SM4 algorithm for encryption of state, can effectively prevent that JAVA program is by decompiling, guarantees that important information is not illegally accessed.
2. adopt the close SM2 algorithm of state and SM3 algorithm signature, can prevent from utilizing the merit of malicious modification code initiation to hit.
3. keep the cross-platform characteristic of JAVA, the JNI using in the present invention and JVMTI are the standard techniques that JVM provides, with platform independence, JVMTI client and JNI call back function can be realized on the platform of JVM supporting, in this way can keep the cross-platform characteristic of JAVA.
4. adopt the close algorithm of state sign and encrypt, security is higher.
Brief description of the drawings
Fig. 1 is the method for the invention process flow diagram.
Fig. 2 is the structural representation of structuring CLASS file.
Embodiment
The present invention proposes a kind of state close algorithm protection JAVA program inherently safe method that adopts.
The design concept of the method is: first with the close algorithm SM2 of state and SM3, the CLASS file of JAVA is signed, then CLASS file is encrypted with the close algorithm SM4 of state, effectively prevent that CLASS file from being distorted by decompiling and malice.
As shown in Figure 1, the present invention includes following steps:
Step 1: adopt SM2 and SM3 algorithm to sign to the CLASS file of JAVA program, signature value and CLASS file are according to fixed format merged in a file, obtain structuring CLASS file.
As shown in Figure 2, the structure of structuring CLASS file is: be followed successively by signature value length (8 byte), JAVA bytecode signature value, JAVA bytecode.Described signature value is obtained by SM2 and SM3 algorithm.
Step 2: thus the ciphertext CLASS file that finally can externally issue obtained with SM4 algorithm for encryption structuring CLASS file.
Step 3: ciphertext CLASS file is decrypted and signature verification, is converted into the structuring CLASS file of the standard that JVM can identify;
The ciphertext CLASS file obtaining in step 2 can not directly be loaded and move by JVM, therefore need to before program operation, be decrypted and signature verification this ciphertext CLASS file, is converted into the normal structure CLASS file that JVM can identify.
Step 4: take out signature value and JAVA bytecode carries out signature verification from structuring CLASS file, while only having signature by checking, JAVA bytecode just can be sent in JVM and move.For not by signature verification, will be prohibited the alarm log information that operation logging program be tampered.
Automatically ciphertext CLASS file is decrypted and signature verification in order to realize before program operation, the present invention has adopted the JVMTI technology of JAVA standard and JNI technology to realize.
By known to the analysis of JNI and JVMTI, the DLL (dynamic link library) of utilizing JVMTI framework to provide, can capture JVM and load the event of CLASS file, and can be call back function of this event registration.In other words, namely can, in the time that JVM loads CLASS file, carry out self-defining function by this mechanism, complete self-defining operation.So the present invention adopts JVMTI technology to write a JVMTI client and brings in realization automatic real-time bytecode that is JAVA standard by ciphertext CLASS deciphering in the time of JAVA virtual load CLASS.This JVMTI client need to be compiled into a dynamic link library, and imports JVM into by agentlib parameter in the time starting JVM.
JVM carries out initialization by the Agent_OnLoad function that calls client to JVMIT client while startup.In Agent_OnLoad function, can utilize SetEventNotificationMode to monitor CLASS file load events to JVM registration, utilize SetEventCallbacks function to articulate a call back function that adopts JNI technology to write for CLASS file load events.In the time that JVM loads CLASS file, this call back function will be called like this.
In call back function, encrypt file CLASS file is decrypted and signature verification process, first with SM4 algorithm, ciphertext CLASS is decrypted, obtain structuring CLASS file.From structuring CLASS file, take out signature value again and JAVA bytecode carries out signature verification, when signature is during by checking, JAVA bytecode is loaded in JVM and is moved.If signature, by checking, will be prohibited to load and operation, and the alarm log information that has been tampered of logging program.Because JVMTI client and JNI call back function are all local codes, and deciphering is what in the internal memory of JVM, to complete, can in local file system, not retain the bytecode after deciphering, and the security of decrypting process is higher.
The present invention has following beneficial effect:
1.CLASS file is used the close SM4 algorithm for encryption of state, can effectively prevent that JAVA program is by decompiling, guarantees that important information is not illegally accessed.
2. adopt the close SM2 algorithm of state and SM3 algorithm signature, can prevent from utilizing the merit of malicious modification code initiation to hit.
3. keep the cross-platform characteristic of JAVA, the JNI using in the present invention and JVMTI are the standard techniques that JVM provides, with platform independence, JVMTI client and JNI call back function can be realized on the platform of JVM supporting, in this way can keep the cross-platform characteristic of JAVA.
4. adopt the close algorithm of state sign and encrypt, security is higher.
In sum, the JAVA program of protecting according to method of the present invention, himself security is higher.Through the CLASS file of encrypting, any decompiling instrument all can not decompiling goes out the JAVA source program of its correspondence; Through the CLASS file of signature, it is carried out to a bit illegal change and all will immediately be found and forbid operation, prevent from utilizing the merit of malicious modification code initiation to hit.The level of security of JAVA program self is greatly improved.

Claims (10)

1. a kind of protection JAVA program inherently safe method, is characterized in that, comprises following steps:
Step 1: JAVA source program is compiled as to structuring CLASS file;
Step 2: structuring CLASS file is signed and encrypted.The structuring CLASS file of JAVA standard is converted to ciphertext CLASS file;
Step 3: ciphertext CLASS file is decrypted and obtains structuring CLASS file;
Step 4: structuring CLASS file is carried out to signature verification, and while signing by checking, JAVA bytecode is sent in JVM and moves.
2. protection JAVA program inherently safe method as claimed in claim 1; it is characterized in that; described step 1 is specially: the byte code files of JAVA program is signed with SM2 algorithm and SM3 algorithm; signature value and CLASS file are according to fixed format merged in a file, obtain structuring CLASS file.
3. protection JAVA program inherently safe method as claimed in claim 1, is characterized in that, described step 2 adopts SM4 algorithm to be encrypted CLASS file.
4. protection JAVA program inherently safe method as claimed in claim 1, is characterized in that, described step 3 adopts SM4 algorithm to be decrypted and to obtain structuring CLASS file ciphertext CLASS.
5. protection JAVA program inherently safe method as claimed in claim 1; it is characterized in that; described step 4 is specially: from structuring CLASS file, take out signature value and JAVA bytecode carries out signature verification, while only having signature by checking, JAVA bytecode just can be sent in JVM and move.
6. protection JAVA program inherently safe method as claimed in claim 5, is characterized in that, in step 4, is not inhibited in the operation alarm log information that also logging program has been tampered in JVM by the structuring CLASS file of signature verification.
7. protection JAVA program inherently safe method as claimed in claim 5, is characterized in that, in step 4, in JVM, the step of operating structure CLASS file is specially:
Step a: start JVM;
Step b: monitor CLASS file load events to JVM registration;
Step c: be a call back function of CLASS file load events registration;
Steps d: the CLASS file to ciphertext in call back function is decrypted and signature verification.
8. protection JAVA program inherently safe method as claimed in claim 7, is characterized in that, in step 4, adopting the client of JVMTI to bring in realization automatically real-time in the time that JVM loads CLASS file is the bytecode of JAVA standard by ciphertext CLASS file decryption; Described JVMTI client is compiled into a dynamic link library, and imports JVM in the time starting JVM; While adopting JVM to start, the Agent_OnLoad function that calls JVMTI client is carried out to initialization to JVMIT client.
9. protection JAVA program inherently safe method as claimed in claim 8; it is characterized in that; in step 4; in Agent_OnLoad function, can utilize SetEventNotificationMode to monitor CLASS file load events to JVM registration; utilize SetEventCallbacks function to articulate a call back function for CLASS file load events; in the time that JVM loads CLASS file, this call back function will be called.
10. protection JAVA program inherently safe method as claimed in claim 1; it is characterized in that; in step 4; in call back function, ciphertext CLASS file is decrypted and signature verification process; first with SM4 algorithm, ciphertext CLASS is decrypted; obtain structuring CLASS file, then from structuring CLASS file, take out signature value and JAVA bytecode carries out signature verification.
CN201410447116.XA 2014-09-04 2014-09-04 Method for guaranteeing self-security of JAVA program Pending CN104200137A (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201410447116.XA CN104200137A (en) 2014-09-04 2014-09-04 Method for guaranteeing self-security of JAVA program

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201410447116.XA CN104200137A (en) 2014-09-04 2014-09-04 Method for guaranteeing self-security of JAVA program

Publications (1)

Publication Number Publication Date
CN104200137A true CN104200137A (en) 2014-12-10

Family

ID=52085430

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201410447116.XA Pending CN104200137A (en) 2014-09-04 2014-09-04 Method for guaranteeing self-security of JAVA program

Country Status (1)

Country Link
CN (1) CN104200137A (en)

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104504311A (en) * 2015-01-19 2015-04-08 炫彩互动网络科技有限公司 Safe SDK production and operation method
CN106650342A (en) * 2016-11-29 2017-05-10 北京握奇智能科技有限公司 Jar packet strengthening method and system
CN107038371A (en) * 2015-07-29 2017-08-11 腾讯科技(深圳)有限公司 A kind of processing method of executable file, device, device and system
CN109325343A (en) * 2018-09-17 2019-02-12 北京深思数盾科技股份有限公司 Java applet executes method and device
CN110210188A (en) * 2019-06-04 2019-09-06 武汉神算云信息科技有限责任公司 Code encryption method, apparatus, equipment and storage medium under Spring frame
CN111273916A (en) * 2018-12-04 2020-06-12 北京京东金融科技控股有限公司 Algorithmic heat deployment method, apparatus, computer system and medium

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20070005155A1 (en) * 2003-08-28 2007-01-04 Yoshinori Aoki Database system, information acquisition enabled/disabled inspectiion system, information acquisition method, and program
CN102043932A (en) * 2010-12-31 2011-05-04 中国航空工业集团公司第六三一研究所 Method for preventing Java program from being decompiled
CN103390125A (en) * 2013-07-19 2013-11-13 丁贤根 Design method for safe and mobile storage controller authorized and encrypted/decrypted by wireless terminal
CN103777912A (en) * 2014-01-27 2014-05-07 珠海赛纳打印科技股份有限公司 Imaging equipment as well as safe imaging method and imaging system thereof
CN103995992A (en) * 2014-05-28 2014-08-20 全联斯泰克科技有限公司 Method and device for protecting software
CN104008351A (en) * 2014-05-06 2014-08-27 武汉天喻信息产业股份有限公司 System, method and device for Windows application program integrity checking

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20070005155A1 (en) * 2003-08-28 2007-01-04 Yoshinori Aoki Database system, information acquisition enabled/disabled inspectiion system, information acquisition method, and program
CN102043932A (en) * 2010-12-31 2011-05-04 中国航空工业集团公司第六三一研究所 Method for preventing Java program from being decompiled
CN103390125A (en) * 2013-07-19 2013-11-13 丁贤根 Design method for safe and mobile storage controller authorized and encrypted/decrypted by wireless terminal
CN103777912A (en) * 2014-01-27 2014-05-07 珠海赛纳打印科技股份有限公司 Imaging equipment as well as safe imaging method and imaging system thereof
CN104008351A (en) * 2014-05-06 2014-08-27 武汉天喻信息产业股份有限公司 System, method and device for Windows application program integrity checking
CN103995992A (en) * 2014-05-28 2014-08-20 全联斯泰克科技有限公司 Method and device for protecting software

Cited By (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104504311A (en) * 2015-01-19 2015-04-08 炫彩互动网络科技有限公司 Safe SDK production and operation method
CN107038371A (en) * 2015-07-29 2017-08-11 腾讯科技(深圳)有限公司 A kind of processing method of executable file, device, device and system
CN106650342A (en) * 2016-11-29 2017-05-10 北京握奇智能科技有限公司 Jar packet strengthening method and system
CN106650342B (en) * 2016-11-29 2023-06-23 北京握奇智能科技有限公司 Jar package reinforcement method and system
CN109325343A (en) * 2018-09-17 2019-02-12 北京深思数盾科技股份有限公司 Java applet executes method and device
CN109325343B (en) * 2018-09-17 2021-08-10 北京深思数盾科技股份有限公司 Java program execution method and device
CN111273916A (en) * 2018-12-04 2020-06-12 北京京东金融科技控股有限公司 Algorithmic heat deployment method, apparatus, computer system and medium
CN110210188A (en) * 2019-06-04 2019-09-06 武汉神算云信息科技有限责任公司 Code encryption method, apparatus, equipment and storage medium under Spring frame

Similar Documents

Publication Publication Date Title
CN104298932B (en) A kind of call method and device of SO files
US20210056546A1 (en) Pos system with white box encryption key sharing
TW201812638A (en) Storage design method of blockchain encrypted radio frequency chip
CN104200137A (en) Method for guaranteeing self-security of JAVA program
CN103378971B (en) A kind of data encryption system and method
CN103701829B (en) A kind of off-line resolves the method for DPAPI encryption data
CN107786331B (en) Data processing method, device, system and computer readable storage medium
CN109784007B (en) Byte code encryption method, byte code decryption method and terminal
CN105450620A (en) Information processing method and device
CN105184181B (en) File encryption method, file decryption method and file encryption device
CN110889696A (en) Storage method, device, equipment and medium for alliance block chain secret key based on SGX technology
CN111639306A (en) Offline software authorization method, device, equipment and storage medium
CN101957903A (en) Method and device for protecting class files
CN111656345B (en) Software module enabling encryption in container files
CN106452771B (en) JCE calls the method and device of the built-in RSA key operation of cipher card realization
CN113010856A (en) Dynamic asymmetric encryption and decryption JavaScript code obfuscation method and system
CN103971034A (en) Method and device for protecting Java software
CN112100582A (en) Method for protecting software distribution security by applying strong symmetric encryption
WO2023240866A1 (en) Cipher card and root key protection method therefor, and computer readable storage medium
WO2020078804A1 (en) Puf based securing of device update
Park et al. A methodology for the decryption of encrypted smartphone backup data on android platform: A case study on the latest samsung smartphone backup system
CN109510702A (en) A method of it key storage based on computer characteristic code and uses
CN105574441A (en) Embedded firmware protection method and device
Lee et al. Security issues on the CNG cryptography library (Cryptography API: Next Generation)
CN113722741A (en) Data encryption method and device and data decryption method and device

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
RJ01 Rejection of invention patent application after publication
RJ01 Rejection of invention patent application after publication

Application publication date: 20141210