WO2021027367A1 - 代码混淆方法、装置、计算机设备和存储介质 - Google Patents

代码混淆方法、装置、计算机设备和存储介质 Download PDF

Info

Publication number
WO2021027367A1
WO2021027367A1 PCT/CN2020/093622 CN2020093622W WO2021027367A1 WO 2021027367 A1 WO2021027367 A1 WO 2021027367A1 CN 2020093622 W CN2020093622 W CN 2020093622W WO 2021027367 A1 WO2021027367 A1 WO 2021027367A1
Authority
WO
WIPO (PCT)
Prior art keywords
code
logic
target
syntax tree
syntax
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.)
Ceased
Application number
PCT/CN2020/093622
Other languages
English (en)
French (fr)
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.)
Ping An Technology Shenzhen Co Ltd
Original Assignee
Ping An Technology Shenzhen 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 Ping An Technology Shenzhen Co Ltd filed Critical Ping An Technology Shenzhen Co Ltd
Publication of WO2021027367A1 publication Critical patent/WO2021027367A1/zh
Anticipated expiration legal-status Critical
Ceased legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/40Transformation of program code
    • G06F8/41Compilation
    • G06F8/43Checking; Contextual analysis
    • G06F8/433Dependency analysis; Data or control flow analysis
    • G06F8/434Pointers; Aliasing
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/36Prevention of errors by analysis, debugging or testing of software
    • G06F11/3604Analysis of software for verifying properties of programs
    • G06F11/3612Analysis of software for verifying properties of programs by runtime analysis

Definitions

  • This application relates to the field of data security technology, in particular to a code obfuscation method, device, computer equipment and storage medium.
  • the inventor realizes that the current obfuscation of codes is only obfuscation of code elements in the code, such as simple character addition, character deletion, character rewriting, etc.
  • the obfuscated code is also very easy to be cracked and has insufficient security performance.
  • a code obfuscation method includes:
  • a target code corresponding to the code to be confused is generated.
  • a code obfuscation device includes:
  • the first receiving module is configured to receive the code to be confused, perform code analysis on the code to be confused, and obtain a syntax tree corresponding to the code to be confused;
  • the first traversal module is used to traverse the syntax tree to obtain the first syntax logic of the syntax tree
  • the first adjustment module is configured to obtain the corresponding first logic confusion rule according to the type of the first grammatical logic, adjust the first grammatical logic according to the first logic confusion rule, and adjust the first grammatical logic according to the adjusted first grammatical logic Get the adjusted target syntax tree;
  • the first code generation module is configured to generate the target code corresponding to the code to be confused according to the adjusted target syntax tree.
  • a computer device includes a memory and a processor, the memory stores a computer program, and when the processor executes the computer program, the following steps are implemented:
  • a target code corresponding to the code to be confused is generated.
  • a computer-readable storage medium having a computer program stored thereon, and when the computer program is executed by a processor, the following steps are implemented:
  • a target code corresponding to the code to be confused is generated.
  • the code obfuscation method, device, computer equipment and storage medium mentioned above firstly need to obtain the syntax tree corresponding to the code. After receiving the code to be obfuscated, the corresponding syntax tree needs to be parsed.
  • the first syntax logic of the syntax tree is to obtain the adjusted target syntax tree; according to the adjusted target syntax tree, the target code corresponding to the code to be obfuscated is generated, and the target code is the obfuscated code, so as to change the syntax of the code to be obfuscated The purpose of logic. Compared with the traditional obfuscation of code elements in the code, the security of the obfuscated code is improved.
  • Figure 1 is an application scenario diagram of a code obfuscation method in an embodiment
  • FIG. 2 is a schematic flowchart of a code obfuscation method in an embodiment
  • FIG. 3 is a schematic flowchart of a code backup method in an embodiment
  • Figure 4 is a structural block diagram of a code obfuscation device in an embodiment
  • Fig. 5 is an internal structure diagram of a computer device in an embodiment.
  • the code obfuscation method provided in this application can be applied to the application environment as shown in FIG. 1.
  • the terminal 102 communicates with the server 104 through the network.
  • the server 104 analyzes the code to be obfuscated to obtain the syntax tree corresponding to the code; the server 104 traverses the obtained syntax tree to obtain the first syntax logic of the syntax tree; the server 104 obtains The first logic confusion rule corresponding to the type of the first grammatical logic, the first grammatical logic of the grammar tree is adjusted through the first logic confusion rule, and the adjusted target grammar tree is obtained; the server 104 generates and waits according to the adjusted target grammar tree.
  • the target code corresponding to the obfuscated code may be, but is not limited to, various personal computers, notebook computers, smart phones, tablet computers, and portable wearable devices.
  • the server 104 may be implemented as an independent server or a server cluster composed of multiple servers.
  • a code obfuscation method is provided. Taking the method applied to the server 104 in FIG. 1 as an example for description, the method includes the following steps:
  • Step 202 Receive the code to be confused, perform code analysis on the code to be confused, and obtain a syntax tree corresponding to the code to be confused.
  • the code to be obfuscated may be some code that needs to be encrypted and protected in plain text, such as the JavaScript code on the browser, the original code of a technology owned by a company or an individual, and so on.
  • the server receives the code to be obfuscated, in order to protect the code and prevent it from being directly compiled and stolen, the code needs to be obfuscated.
  • the server After obtaining the code to be obfuscated, the server performs code analysis on the obfuscated code.
  • the code analysis refers to The code string is passed through the parsing step to form a syntax tree, which can include two parts: word segmentation and semantic analysis. Word segmentation can split the code string into the code data of different units.
  • the code data of each unit can correspond to the subsequent syntax tree.
  • node data such as various function codes or other types of codes in the code
  • semantic analysis can analyze the relationship between the data of each unit on the basis of the word segmentation result.
  • the server After the server performs code analysis, it obtains the result of code analysis: the relationship between the grammatical unit array and the grammatical unit array, and subsequently obtains the corresponding syntax tree.
  • the relationship between the data and the data of each unit is mapped to the nodes of the syntax tree model.
  • Logical syntax tree Logical syntax tree.
  • Step 204 traverse the syntax tree to obtain the first syntax logic of the syntax tree.
  • traversal is used to access various nodes on the syntax tree.
  • various related attributes of the syntax tree can be obtained, such as the number of nodes in the syntax tree, the size of the nodes, the order of the nodes, the role of the corresponding code, etc.
  • the first syntax logic can represent the functions that can be realized by running the code to be confused corresponding to the syntax tree, and the server obtains the first syntax logic of the syntax tree by traversing the syntax tree corresponding to the code to be confused.
  • Step 206 Obtain the corresponding first logic confusion rule according to the type of the first grammar logic, adjust the first grammatical logic through the first logic confusion rule, and obtain the adjusted target grammar tree according to the adjusted first grammatical logic.
  • the first logic obfuscation rule can be a method of adjusting the first grammatical logic and the logic of code running under the premise that the execution result of the original code to be obfuscated remains unchanged, where the first logic obfuscation rule can be Obtained from the type of the first grammatical logic, including but not limited to the method of changing the order of grammatical logic, merging and dividing grammatical logic, etc.
  • the target grammar tree is the grammar tree corresponding to the code to be confused after being adjusted by the first grammatical logic After obtaining the first logic confusion rule, the server adjusts the first grammatical logic of the grammar tree through the first logic confusion rule.
  • the adjustment method can be such as: when the first grammatical logic is a type that contains multiple independent functions, the first logic confusion rule When changing the order of grammatical logic, adjust the order of grammatical logic through the first logic confusion rule.
  • the grammatical logic of the corresponding code of the grammar tree can realize the three independent functions of A, B, and C. Then the order of grammatical logic can be adjusted.
  • the function implemented by the corresponding code is adjusted to A, C, B or C, B, A, etc., and the sequence is adjusted without affecting the execution result of the syntax tree to obtain the adjusted target syntax tree.
  • Step 208 Generate a target code corresponding to the code to be confused according to the adjusted target syntax tree.
  • the target code is a code string for which code obfuscation has been completed for the code to be obfuscated.
  • the server obtains the adjusted target syntax tree, it generates a code string corresponding to the adjusted syntax tree according to the syntax tree generation method.
  • the specific generation method can traverse the adjusted syntax tree through the traversal method again, and then Generate the corresponding target code according to the traversal result.
  • the server analyzes the code to be obfuscated to obtain the syntax tree corresponding to the code; traverses the obtained syntax tree to obtain the first syntax logic of the syntax tree; A first logic confusion rule corresponding to the type of grammatical logic, the first grammatical logic of the grammar tree is adjusted through the first logic confusion rule to obtain the adjusted target grammar tree; according to the adjusted target grammar tree, the corresponding code to be confused is generated
  • the target code so as to achieve the purpose of changing the grammatical logic of the code to be confused.
  • the security of obfuscated code is improved.
  • backing up the obfuscated code includes:
  • Step 302 Obtain a preset logical confusion rule, the preset logical confusion rule includes a first logical confusion rule and a second logical confusion rule, and the second logical confusion rule is obtained according to the preset logical confusion rule and the first logical confusion rule.
  • the second logic obfuscation rule can be a preset logic obfuscation rule capable of logically obfuscating the first grammatical logic on the premise that the execution result of the original code to be obfuscated remains unchanged, except for the first logic obfuscation rule Other confusion rules.
  • the server After adjusting the syntax tree corresponding to the obfuscated code through the first logical obfuscation rule, the server obtains the preset logical obfuscation rule, and obtains the second logical obfuscation rule according to the preset logical obfuscation rule and the first logical obfuscation rule.
  • Step 304 Adjust the first syntax logic of the syntax tree according to the second logic confusion rule to obtain the adjusted backup syntax tree.
  • the server adjusts the first grammatical logic of the grammar tree through the second logic obfuscation rule on the premise that the execution result of the original code to be obfuscated remains unchanged.
  • the adjustment method can be, for example, : When the second logic confusion rule is a combination of grammatical logic, the grammatical logic is merged through the second logic confusion rule.
  • the grammatical logic of the corresponding code of the grammar tree can realize the three independent functions of A, B, and C, then the grammatical logic
  • the merging of the corresponding code can adjust the function implemented by the corresponding code to A, D (B plus C) or E (A plus B), C, etc., and adjust the sequence without affecting the execution result of the syntax tree to obtain the adjusted Back up the syntax tree.
  • Step 306 Generate a backup code corresponding to the code to be obfuscated according to the adjusted backup syntax tree.
  • the server After the server obtains the adjusted backup syntax tree, it generates the code corresponding to the adjusted backup syntax tree according to the generation method of the syntax tree.
  • the specific generation method can traverse the adjusted backup syntax again through the traversal method. Tree, and then generate the corresponding code string according to the traversal result, which is the backup code for which the code obfuscation has been completed.
  • Step 308 Store the backup code, and when it is detected that the security level of the target code reaches the preset risk level, replace the target code with the backup code.
  • the security level of the target code reaching the preset risk level may mean that after the server detects that the target code has a hidden risk, the security level of the target code is raised to a risky level, where the hidden risk may include the existence of the target code being cracked The traces of, the traces of being copied, etc.
  • the server obtains the backup code after the obfuscation of the code is completed the backup code is saved, and when it is detected that the security level of the target code adjusted by the first logic obfuscation rule reaches the preset risk level, because the target code and the backup code are used
  • the same kind of code to be obfuscated is obtained through code logic obfuscation. If the execution result is the same, the target code can be replaced with the backup code.
  • the code obfuscation method after obtaining the adjusted syntax tree, can also obtain the second logic confusion rule in addition to the first logic confusion rule, and adjust the grammatical logic through the second logic confusion rule to obtain the code to be confused. Corresponding backup code, and replace the target code with the backup code when the security level of the target code is at risk, which further improves the security of code obfuscation.
  • the code obfuscation method may further include: obtaining the adjustment strategy of the first syntax logic according to the code to be obfuscated and the target code, and adjust the strategy Stored in association with the target code; when an execution error occurs during the operation of the target code, the target code is used to query the associated adjustment strategy and restore the target code according to the adjustment strategy.
  • the server After the server generates the target code corresponding to the code to be obfuscated, it establishes an association relationship between the target code and the adjustment strategy, and stores the two in association.
  • the adjustment strategy can be obtained from the code to be obfuscated before adjustment and the target code after adjustment.
  • the adjustment strategy can be: sequence obfuscation of the functions of the unobfuscated code.
  • the target code can be reversed by the adjustment strategy, which can be specifically:
  • the target code is subjected to code parsing operations to obtain the corresponding syntax tree, and then the syntax tree of the target code is adjusted inversely through the adjustment strategy, and finally the initial code to be confused is generated through the adjusted syntax tree, which is the code The result of the restoration.
  • the target code when an execution error of the target code is detected, the target code is restored through the associated adjustment strategy, which can restore the code to an unobfuscated state in time when the code has an error, and then re-obfuscate the code. Keep the code safe.
  • the code obfuscation method associates the adjustment strategy with the target code and stores it, it may further include: obtaining the code type of the target code, and storing the code type in association with the adjustment strategy; receiving the unsecured code, and querying the corresponding unsecured code
  • the code type of the unsecured code is analyzed to obtain the syntax tree corresponding to the unsecured code, and the syntax tree corresponding to the unsecured code is traversed to obtain the second syntax logic corresponding to the unsecured code; when the code type of the unsecured code When it matches the code type of the target code, the associated adjustment strategy is queried through the code type of the target code, and the second grammatical logic is adjusted through the adjustment strategy.
  • the code types can be classified according to the characteristic attributes of the codes, and the characteristic attributes of the codes of different categories are different.
  • the codes can be divided into sequence codes, interval codes, and mnemonic codes, but in fact they are not in the field.
  • the code will have more classification situations.
  • the second syntax logic is the unsecured code received subsequently.
  • the syntax tree is obtained through code analysis, and then the syntax logic of the corresponding syntax tree is obtained by traversing the syntax tree.
  • Unsecured code is a new code string that needs to be kept confidential after the server obtains the target code by obfuscation of the obfuscated code.
  • the server associates the target code with the adjustment strategy and stores the two in association.
  • Classify the code get the code type of the target code, establish an association relationship between the code type and the adjustment strategy, and store it in association.
  • the subsequent server receives the unsecured code, it can query whether the code type corresponding to the unsecured code matches the code type of the target code. When the two code types match, you can directly pass the code type of the target code and the adjustment strategy. Correspondence, obtain the adjustment strategy, and then adjust the second grammatical logic corresponding to the unsecured code through the adjustment strategy.
  • the second syntax corresponding to the unsecured code is directly adjusted through the adjustment strategy corresponding to the target code type.
  • the logic is adjusted, which saves the time for searching the corresponding logic obfuscation rules for the code to be kept secret, and improves the efficiency of code obfuscation.
  • the code obfuscation method further includes: obtaining the original code file corresponding to the code to be obfuscated; creating a new blank code file, mapping the original code file, the code to be obfuscated, and the target code into the blank code file; replacing the blank with the target code Obtain the obfuscated code file of the original code file in the code file.
  • the original code file may be a code file of the original address corresponding to the code to be obfuscated.
  • the original code file contains the code to be obfuscated. For example, if the original code file is 100 lines of code, the code to be obfuscated may be lines 30 to 50.
  • Significant code is a file newly created by the server that has no data storage for the time being and is used for subsequent code storage.
  • the server After the server obtains the target code after the obfuscated code is obfuscated, it can also obtain the original code file corresponding to the obfuscated code and create a new blank code File, the original code file, the code to be confused, and the target code are mapped to the blank code file.
  • the blank code file contains the original code file, the code to be confused, and the target code. Replace the code to be confused in the original code file with the target code ,
  • the blank code file after replacement contains other codes and target codes except the code to be obfuscated in the original code file, which is the obfuscated code file.
  • the server obtains the original code file of the code to be obfuscated, and replaces the code to be obfuscated in the original code file with the target code, so that the original code file after the code obfuscation can be directly obtained, which saves the manual search and replacement of the code. Steps to save time.
  • the server after receiving the code to be obfuscated, the server obtains the syntax tree corresponding to the code to be obfuscated, and adjusts the syntax logic of the syntax tree according to the first syntax logic, and according to the adjusted target grammar The tree generates the object code corresponding to the code to be obfuscated.
  • the JavaScript code visible in a certain browser needs to be kept secret, the code needs to be obfuscated, then the JavaScript code is parsed to obtain the syntax tree corresponding to the code, and the syntax logic of the syntax tree is obtained by traversing the syntax tree, for example, syntax
  • the grammatical logic of the tree can be "page jump", "page refresh”, "return to the previous page” 3 functions, then the corresponding first logic confusion rule can be adjusted to adjust the order of the 3 functions, for example, it can be adjusted to "page”
  • the target code is generated according to the adjusted syntax tree.
  • the target code is the code after the code obfuscation of the JavaScript code. .
  • a code obfuscation device including: a first receiving module 402, a first traversal module 404, a first adjustment module 406, and a first code generation module 408, wherein:
  • the first receiving module 402 is configured to receive the code to be confused, perform code analysis on the code to be confused, and obtain a syntax tree corresponding to the code to be confused.
  • the first traversal module 404 is used to traverse the syntax tree to obtain the first syntax logic of the syntax tree.
  • the first adjustment module 406 is configured to obtain the corresponding first logical confusion rule according to the type of the first grammatical logic, adjust the first grammatical logic through the first logical confusion rule, and obtain the adjusted target according to the adjusted first grammatical logic Syntax tree.
  • the first code generation module 408 is configured to generate the target code corresponding to the code to be obfuscated according to the adjusted target syntax tree.
  • the apparatus may further include:
  • the first acquisition module is used to acquire preset logic confusion rules
  • the preset logic confusion rules include a first logic confusion rule and a second logic confusion rule
  • the second logic confusion rule is acquired according to the preset logic confusion rule and the first logic confusion rule.
  • the second adjustment module is used to adjust the first grammar logic of the grammar tree according to the second logic confusion rule to obtain the adjusted backup grammar tree.
  • the second code generation module is used to generate the backup code corresponding to the code to be obfuscated according to the adjusted backup syntax tree.
  • the first storage module is used to store the backup code, and when detecting that the security level of the target code reaches the preset risk level, replace the target code with the backup code.
  • the apparatus may further include:
  • the second storage module is used to obtain the adjustment strategy of the first syntax logic according to the code to be confused and the target code, and store the adjustment strategy and the target code in association.
  • the restoration module is used to query the associated adjustment strategy through the target code when an execution error occurs during the operation of the target code, and restore the target code according to the adjustment strategy.
  • the apparatus may further include:
  • the second obtaining module is used to obtain the code type of the target code, and store the code type in association with the adjustment strategy.
  • the second receiving module is used to receive the unsecured code and query the code type corresponding to the secret code.
  • the second traversal module is used to perform code analysis on the unsecured code to obtain the syntax tree corresponding to the unsecured code, and traverse the syntax tree corresponding to the unsecured code to obtain the second syntax logic corresponding to the unsecured code.
  • the third adjustment module is used to query the associated adjustment strategy through the code type of the target code when the code type of the unsecured code matches the code type of the target code, and adjust the second syntax logic through the adjustment strategy.
  • the apparatus may further include:
  • the third obtaining module is used to obtain the original code file corresponding to the code to be obfuscated.
  • the new module is used to create a new blank code file, and map the original code file, the code to be confused, and the target code to the blank code file.
  • the replacement module is used to replace the to-be-obfuscated code of the original code file in the blank code file with the target code to obtain the obfuscated code file.
  • Each module in the above code obfuscation device can be implemented in whole or in part by software, hardware, and a combination thereof.
  • the foregoing modules may be embedded in the form of hardware or independent of the processor in the computer device, or may be stored in the memory of the computer device in the form of software, so that the processor can call and execute the operations corresponding to the foregoing modules.
  • a computer device is provided.
  • the computer device may be a server, and its internal structure diagram may be as shown in FIG. 5.
  • the computer equipment includes a processor, a memory, a network interface and a database connected through a system bus. Among them, the processor of the computer device is used to provide calculation and control capabilities.
  • the memory of the computer device includes a non-volatile storage medium and an internal memory.
  • the non-volatile storage medium stores an operating system, a computer program, and a database.
  • the internal memory provides an environment for the operation of the operating system and computer programs in the non-volatile storage medium.
  • the computer equipment database is used to store code data.
  • the network interface of the computer device is used to communicate with an external terminal through a network connection.
  • the computer program is executed by the processor to realize a code obfuscation method.
  • FIG. 5 is only a block diagram of a part of the structure related to the solution of the present application, and does not constitute a limitation on the computer device to which the solution of the present application is applied.
  • the specific computer device may Including more or fewer parts than shown in the figure, or combining some parts, or having a different arrangement of parts.
  • a computer device including a memory and a processor, the memory stores a computer program, and when the processor executes the computer program, the following steps are implemented: receiving the code to be obfuscated, analyzing the code to be obfuscated, and obtaining The syntax tree corresponding to the code to be confused; traverse the syntax tree to obtain the first syntax logic of the syntax tree; obtain the corresponding first logic confusion rule according to the type of the first syntax logic, and adjust the first grammar through the first logic confusion rule Logic, obtain the adjusted target syntax tree according to the adjusted first syntax logic; generate the target code corresponding to the code to be confused according to the adjusted target syntax tree.
  • the processor may further include: obtaining a preset logic confusion rule, the preset logic
  • the confusion rule includes the first logic confusion rule and the second logic confusion rule.
  • the second logic confusion rule is obtained according to the preset logic confusion rule and the first logic confusion rule; the first grammatical logic of the syntax tree is adjusted according to the second logic confusion rule, Obtain the adjusted backup syntax tree; generate the backup code corresponding to the code to be obfuscated according to the adjusted backup syntax tree; store the backup code, and when the security level of the target code reaches the preset risk level, replace the target code with Backup code.
  • the processor may further include: obtaining the first syntax logic according to the code to be obfuscated and the target code. Adjust the strategy and store the adjustment strategy in association with the target code; when the target code has an execution error during the operation, the target code is used to query the associated adjustment strategy and restore the target code according to the adjustment strategy.
  • the processor may further include: acquiring the code type of the target code, and storing the code type in association with the adjustment strategy; receiving unsecured code , Query the code type corresponding to the unsecured code; perform code analysis on the unsecured code to obtain the syntax tree corresponding to the unsecured code, and traverse the syntax tree corresponding to the unsecured code to obtain the second syntax logic corresponding to the unsecured code;
  • the associated adjustment strategy is inquired through the code type of the target code, and the second syntax logic is adjusted through the adjustment strategy.
  • the processor further implements the following steps when executing the computer program: obtaining the original code file corresponding to the code to be obfuscated; creating a new blank code file, and mapping the original code file, the code to be obfuscated, and the target code into the blank code file; The code to be obfuscated in the original code file in the blank code file is replaced by the target code to obtain the obfuscated code file.
  • a computer-readable storage medium may be non-volatile or volatile, and has a computer program stored thereon.
  • the computer program is executed by a processor, The following steps are implemented: receive the code to be confused, analyze the code to be confused, and obtain the syntax tree corresponding to the code to be confused; traverse the syntax tree to obtain the first syntax logic of the syntax tree; obtain the corresponding according to the type of the first syntax logic According to the first logic confusion rule, the first grammatical logic is adjusted through the first logic confusion rule, and the adjusted target syntax tree is obtained according to the adjusted first grammatical logic; the target corresponding to the code to be confused is generated according to the adjusted target syntax tree Code.
  • the computer program after the computer program is executed by the processor to obtain the adjusted target grammar tree according to the adjusted first grammatical logic, it may further include: obtaining a preset logic confusion rule, the preset The logic confusion rule includes the first logic confusion rule and the second logic confusion rule.
  • the second logic confusion rule is obtained according to the preset logic confusion rule and the first logic confusion rule; the first grammatical logic of the syntax tree is adjusted according to the second logic confusion rule , Get the adjusted backup syntax tree; generate the backup code corresponding to the code to be obfuscated according to the adjusted backup syntax tree; store the backup code, and replace the target code when the security level of the target code reaches the preset risk level For the backup code.
  • the computer program after the computer program is executed by the processor to generate the target code corresponding to the code to be obfuscated according to the adjusted target syntax tree, it may further include: obtaining the first syntax logic according to the code to be obfuscated and the target code
  • the adjustment strategy is to store the adjustment strategy in association with the target code; when the target code has an execution error during operation, the associated adjustment strategy is queried through the target code, and the target code is restored according to the adjustment strategy.
  • the computer program after the computer program is executed by the processor and the adjustment strategy is stored in association with the target code, it may further include: obtaining the code type of the target code, and storing the code type in association with the adjustment strategy; receiving unconfidential Code, query the code type corresponding to the unsecured code; perform code analysis on the unsecured code to obtain the syntax tree corresponding to the unsecured code, and traverse the syntax tree corresponding to the unsecured code to obtain the second syntax logic corresponding to the unsecured code; When the code type of the unsecured code matches the code type of the target code, the associated adjustment strategy is inquired through the code type of the target code, and the second syntax logic is adjusted through the adjustment strategy.
  • the following steps are also implemented: obtain the original code file corresponding to the code to be obfuscated; create a new blank code file, and map the original code file, the code to be obfuscated, and the object code into the blank code file ; Replace the code to be obfuscated in the original code file in the blank code file with the target code to obtain the obfuscated code file.
  • Non-volatile memory may include read-only memory (ROM), programmable ROM (PROM), electrically programmable ROM (EPROM), electrically erasable programmable ROM (EEPROM), or flash memory.
  • Volatile memory may include random access memory (RAM) or external cache memory.
  • RAM is available in many forms, such as static RAM (SRAM), dynamic RAM (DRAM), synchronous DRAM (SDRAM), double data rate SDRAM (DDRSDRAM), enhanced SDRAM (ESDRAM), synchronous chain Channel (Synchlink) DRAM (SLDRAM), memory bus (Rambus) direct RAM (RDRAM), direct memory bus dynamic RAM (DRDRAM), and memory bus dynamic RAM (RDRAM), etc.

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • Quality & Reliability (AREA)
  • Stored Programmes (AREA)

Abstract

一种代码混淆方法、装置、计算机设备和存储介质,涉及数据安全技术领域。所述方法包括:接收待混淆代码,对待混淆代码进行代码解析,得到与待混淆代码对应的语法树(202);对语法树进行遍历,得到语法树的第一语法逻辑(204);根据第一语法逻辑的类型获取对应的第一逻辑混淆规则,通过第一逻辑混淆规则调整第一语法逻辑,根据调整后的第一语法逻辑得到调整后的目标语法树(206);根据调整后的目标语法树生成与待混淆代码对应的目标代码(208)。采用该方法能够提高混淆后的代码的安全性。

Description

代码混淆方法、装置、计算机设备和存储介质
本申请要求于2019年8月13日提交中国专利局、申请号为CN201910746038.6,发明名称为“代码混淆方法、装置、计算机设备和存储介质”的中国专利申请的优先权,其全部内容通过引用结合在本申请中。
技术领域
本申请涉及数据安全技术领域,特别是涉及一种代码混淆方法、装置、计算机设备和存储介质。
背景技术
随着计算机技术的发展,与代码相关的技术也渗透到工作生活的方方面面,公司和个人在工作和生活中对代码的依赖也在渐渐提高,对代码进行保护的安全意识也在逐渐增强,因此会对直接以明文的形式呈现的代码进行混淆,起到保护代码的作用。
发明人意识到目前对代码的混淆都仅仅只是对代码中的代码元素进行混淆,比如简单的字符添加、字符删减、字符改写等等,混淆后的代码也十分容易被破解,安全性能不够。
技术问题
基于此,有必要针对上述技术问题,提供一种能够提高混淆代码安全性的代码混淆方法、装置、计算机设备和存储介质。
技术解决方案
一种代码混淆方法,所述方法包括:
接收待混淆代码,对所述待混淆代码进行代码解析,得到与所述待混淆代码对应的语法树;
对所述语法树进行遍历,得到所述语法树的第一语法逻辑;
根据所述第一语法逻辑的类型获取对应的第一逻辑混淆规则,通过所述第一逻辑混淆规则调整所述第一语法逻辑,根据调整后的第一语法逻辑得到调整后的目标语法树;
根据所述调整后的目标语法树生成与所述待混淆代码对应的目标代码。
一种代码混淆装置,所述装置包括:
第一接收模块,用于接收待混淆代码,对所述待混淆代码进行代码解析,得到与所述待混淆代码对应的语法树;
第一遍历模块,用于对所述语法树进行遍历,得到所述语法树的第一语法逻辑;
第一调整模块,用于根据所述第一语法逻辑的类型获取对应的第一逻辑混淆规则后,通过所述第一逻辑混淆规则调整所述第一语法逻辑,根据调整后的第一语法逻辑得到调整后的目标语法树;
第一代码生成模块,用于根据所述调整后的目标语法树生成与所述待混淆代码对应的目标代码。
一种计算机设备,包括存储器和处理器,所述存储器存储有计算机程序,所述处理器执行所述计算机程序时实现如下步骤:
接收待混淆代码,对所述待混淆代码进行代码解析,得到与所述待混淆代码对应的语法树;
对所述语法树进行遍历,得到所述语法树的第一语法逻辑;
根据所述第一语法逻辑的类型获取对应的第一逻辑混淆规则,通过所述第一逻辑混淆规则调整所述第一语法逻辑,根据调整后的第一语法逻辑得到调整后的目标语法树;
根据所述调整后的目标语法树生成与所述待混淆代码对应的目标代码。
一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现如下步骤:
接收待混淆代码,对所述待混淆代码进行代码解析,得到与所述待混淆代码对应的语法树;
对所述语法树进行遍历,得到所述语法树的第一语法逻辑;
根据所述第一语法逻辑的类型获取对应的第一逻辑混淆规则,通过所述第一逻辑混淆规则调整所述第一语法逻辑,根据调整后的第一语法逻辑得到调整后的目标语法树;
根据所述调整后的目标语法树生成与所述待混淆代码对应的目标代码。
有益效果
上述代码混淆方法、装置、计算机设备和存储介质,为了提高代码混淆的安全性,首先需要获取代码对应的语法树,在接收到待混淆代码后,得到对应的语法树需要对待混淆代码进行代码解析,得到与代码对应的语法树;其次对得到的语法树进行遍历,得到语法树的第一语法逻辑;获取与第一语法逻辑的类型对应的第一逻辑混淆规则,通过第一逻辑混淆规则调整语法树的第一语法逻辑,得到调整后的目标语法树;根据调整后的目标语法树生成与待混淆代码对应的目标代码,目标代码即为混淆后的代码,从而达到改变待混淆代码的语法逻辑的目的。与传统的对代码中的代码元素进行混淆相比,提高了混淆后的代码的安全性。
附图说明
图1为一个实施例中代码混淆方法的应用场景图;
图2为一个实施例中代码混淆方法的流程示意图;
图3为一个实施例中代码备份方法的流程示意图;
图4为一个实施例中代码混淆装置的结构框图;
图5为一个实施例中计算机设备的内部结构图。
本发明的最佳实施方式
为了使本申请的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本申请进行进一步详细说明。应当理解,此处描述的具体实施例仅仅用以解释本申请,并不用于限定本申请。
本申请提供的代码混淆方法,可以应用于如图1所示的应用环境中。其中,终端102通过网络与服务器104进行通信。服务器104在接收终端102上传的待混淆代码后,对待混淆代码进行代码解析,得到与代码对应的语法树;服务器104对得到的语法树进行遍历,得到语法树的第一语法逻辑;服务器104获取与第一语法逻辑的类型对应的第一逻辑混淆规则,通过第一逻辑混淆规则调整语法树的第一语法逻辑,得到调整后的目标语法树;服务器104根据调整后的目标语法树生成与待混淆代码对应的目标代码。其中,终端102可以但不限于是各种个人计算机、笔记本电脑、智能手机、平板电脑和便携式可穿戴设备,服务器104可以用独立的服务器或者是多个服务器组成的服务器集群来实现。
本发明的实施方式
在一个实施例中,如图2所示,提供了一种代码混淆方法,以该方法应用于图1中的服务器104为例进行说明,包括以下步骤:
步骤202,接收待混淆代码,对待混淆代码进行代码解析,得到与待混淆代码对应的语法树。
具体地,待混淆代码可以是一些需要进行加密保护的,以明文形式存在的代码,比如浏览器上的JavaScript代码,公司或个人拥有的技术的原代码等等。服务器在接收到待混淆代码后,为了保护代码,防止代码被直接编译盗取,需要对代码进行代码混淆,服务器在获取待混淆代码后,对待混淆代码进行代码解析,其中,代码解析指的是将代码的字符串通过解析步骤,形成语法树,可以包含分词与语义分析两个部分,分词可以将代码字符串分割成各个不同单元的代码数据,各个单元的代码数据可以对应后续语法树中的节点数据,比如代码中的各种功能代码或者其他类型代码,语义分析可以在分词结果的基础上分析各个单元的数据之间的关系。服务器在进行代码解析后,得到代码解析的结果:语法单元数组以及语法单元数组之间的关系,后续得到对应的语法树可以通过新建空白的语法树的模型,将代码解析的结果,各个单元的数据以及各单元数据之间的关系映射到语法树模型的节点中,构成语法树模型的节点的数据以及节点之间的相互关系,映射结束后,可以得到与待混淆代码对应的表征原代码语法逻辑的语法树。
步骤204,对语法树进行遍历,得到语法树的第一语法逻辑。
具体地,遍历用于对语法树上的各个节点进行访问,通过对语法树遍历可以得到语法树各种相关属性,比如语法树的节点数量、节点大小、节点先后、对应的代码的作用等等,第一语法逻辑可以表征语法树对应的待混淆代码运行能够实现的功能,服务器通过对待混淆代码对应的语法树遍历,得到语法树的第一语法逻辑。
步骤206,根据第一语法逻辑的类型获取对应的第一逻辑混淆规则,通过第一逻辑混淆规则调整第一语法逻辑,根据调整后的第一语法逻辑得到调整后的目标语法树。
具体地,第一逻辑混淆规则可以为保证原本的待混淆代码的执行结果不变的前提下,只是对第一语法逻辑,及代码运行的逻辑进行调整的方法,其中,第一逻辑混淆规则可以由第一语法逻辑的类型获取,包括但不限于语法逻辑的顺序变更、语法逻辑的合并与分割等方法,目标语法树是与待混淆代码对应的语法树经过第一语法逻辑调整后的语法树,服务器获取第一逻辑混淆规则后,通过第一逻辑混淆规则调整语法树的第一语法逻辑,调整的方法可以比如:当第一语法逻辑为包含多种独立功能的类型,第一逻辑混淆规则为语法逻辑的顺序变更的规则时,通过第一逻辑混淆规则调整语法逻辑的顺序,比如语法树对应代码的语法逻辑能够实现A、B、C三种独立功能,则调整语法逻辑的顺序可以将对应的代码实现的功能调整为A、C、B或者C、B、A等,在不影响语法树执行结果的前提下对顺序进行调整,得到调整后的目标语法树。
步骤208,根据调整后的目标语法树生成与待混淆代码对应的目标代码。
具体地,目标代码是待混淆代码已经完成代码混淆的代码字符串。在服务器得到调整后的目标语法树后,根据语法树的生成方法,生成与调整后的语法树对应的代码字符串,具体的生成方法可以再次通过遍历的方法,遍历调整后的语法树,然后根据遍历结果生成对应的目标代码。
上述代码混淆方法中,服务器在接收到待混淆代码后,对待混淆代码进行代码解析,得到与代码对应的语法树;对得到的语法树进行遍历,得到语法树的第一语法逻辑;获取与第一语法逻辑的类型对应的第一逻辑混淆规则,通过第一逻辑混淆规则调整语法树的第一语法逻辑,得到调整后的目标语法树;根据调整后的目标语法树生成与待混淆代码对应的目标代码,从而达到改变待混淆代码的语法逻辑的目的。与传统的对代码中的代码元素进行混淆相比,提高了混淆代码安全性。
在一个实施例中,如图3所示,代码混淆方法中,对混淆后的代码进行备份,包括:
步骤302,获取预设的逻辑混淆规则,预设的逻辑混淆规则包含第一逻辑混淆规则和第二逻辑混淆规则,根据预设的逻辑混淆规则以及第一逻辑混淆规则获取第二逻辑混淆规则。
具体地,第二逻辑混淆规则可以为保证原本的待混淆代码的执行结果不变的前提下,能够对第一语法逻辑进行逻辑混淆的预设的逻辑混淆规则中,除了第一逻辑混淆规则以外的其他混淆规则。服务器在通过第一逻辑混淆规则对待混淆代码对应的语法树进行调整后,获取预设的逻辑混淆规则,并根据预设的逻辑混淆规则以及第一逻辑混淆规则获取第二逻辑混淆规则。
步骤304,根据第二逻辑混淆规则调整语法树的第一语法逻辑,得到调整后的备份语法树。
具体地,服务器获取第二逻辑混淆规则后,在保证原本的待混淆代码的执行结果不变的前提下,通过第二逻辑混淆规则对语法树的第一语法逻辑进行调整,调整的方法可以比如:当第二逻辑混淆规则为语法逻辑的合并的规则时,通过第二逻辑混淆规则将语法逻辑合并,比如语法树对应代码的语法逻辑能够实现A、B、C三种独立功能,则语法逻辑的合并可以将对应的代码实现的功能调整为A、D(B加C)或者E(A加B)、C等,在不影响语法树执行结果的前提下对顺序进行调整,得到调整后的备份语法树。
步骤306,根据调整后的备份语法树生成与待混淆代码对应的备份代码。
具体地,在服务器得到调整后的备份语法树后,根据语法树的生成方法,生成与调整后的备份语法树对应的代码,具体的生成方法可以再次通过遍历的方法,遍历调整后的备份语法树,然后根据遍历结果生成对应的代码字符串,即为已经完成代码混淆的备份代码。
步骤308,存储备份代码,并在检测当目标代码的安全等级达到预设的风险等级时,替换目标代码为备份代码。
具体地,目标代码的安全等级达到预设的风险等级可以为服务器检测到目标代码存在风险隐患后,将目标代码的安全等级上升到存在风险的等级,其中,风险隐患可以包括目标代码存在被破解的痕迹、被拷贝的痕迹等等。在服务器待代码进行混淆结束得到备份代码后,将备份代码保存,并且在检测到经过第一逻辑混淆规则调整得到的目标代码的安全等级达到预设的风险等级时,因为目标代码与备份代码使用同种待混淆代码通过代码逻辑混淆得到的,其执行结果相同的关系,可以用备份代码替换目标代码。
上述代码混淆方法中,代码混淆方法在得到调整后的语法树后,还可以获取除第一逻辑混淆规则之外的第二逻辑混淆规则,并通过第二逻辑混淆规则调整语法逻辑得到待混淆代码对应的备份代码,并在目标代码的安全等级出现风险时用备份代码代替目标代码,更进一步提升了代码混淆的安全性。
在一个实施例中,代码混淆方法根据调整后的目标语法树生成与待混淆代码对应的目标代码之后,还可以包括:根据待混淆代码与目标代码得到第一语法逻辑的调整策略,将调整策略与目标代码关联存储;当目标代码在运行过程中出现执行错误时,通过目标代码查询关联的调整策略,根据调整策略还原目标代码。
具体地,服务器在生成与待混淆代码对应的目标代码之后,将目标代码与调整策略建立关联关系,并将两者关联存储,调整策略可以根据调整前的待混淆代码与调整后的目标代码得到,比如调整策略可以为:对未混淆代码的功能进行顺序混淆,服务器检测到目标代码在运行过程中出现执行错误时,可以通过调整策略对目标代码进行代码混淆的逆向操作,具体可以为:当目标代码出现执行错误时,将目标代码进行代码解析操作得到对应的语法树,然后通过调整策略的逆向调整目标代码的语法树,最后通过调整后的语法树生成初始的待混淆代码,即为代码还原的结果。
本实施例中,在检测到目标代码出现执行错误时,通过关联的调整策略对目标代码进行代码还原,能够在代码出现错误时及时的对代码还原到未混淆状态,然后重新对代码进行混淆,保护代码的安全。
在一个实施例中,代码混淆方法将调整策略与目标代码关联存储之后,还可以包括:获取目标代码的代码类型,并将代码类型与调整策略关联存储;接收未保密代码,查询未保密代码对应的代码类型;对未保密代码进行代码解析得到未保密代码对应的语法树,并对未保密代码对应的语法树进行遍历,得到未保密代码对应的第二语法逻辑;当未保密代码的代码类型与目标代码的代码类型匹配时,通过目标代码的代码类型查询关联的调整策略,并通过调整策略对第二语法逻辑进行调整。
具体地,代码类型可以根据代码的特征属性进行分类,不同分类的代码的特征属性各不相同,比如按照功能分类,代码可以分为顺序码、区间码、助忆码,但实际上在领域不同时,代码会有更多的分类情况,第二语法逻辑为后续接收到的未保密代码,通过代码解析得到语法树,然后对语法树遍历得到的对应的语法树的语法逻辑。未保密代码是服务器在对待混淆代码进行代码混淆得到目标代码后,后续接收到的需要进行保密的新的代码字符串,服务器在将目标代码与调整策略建立关联关系,并将两者关联存储之后,对代码进行分类,得到目标代码的代码类型,将代码类型与调整策略建立关联关系并关联存储。在后续服务器接收到未保密代码时,则可以查询未保密代码对应的代码类型是否与目标代码的代码类型匹配,当两者的代码类型匹配时,可以直接通过目标代码的代码类型与调整策略的对应关系,获取调整策略,然后通过调整策略对未保密代码对应的第二语法逻辑进行调整。
本实施例中,在后续接收到未保密代码时,检测到未保密代码对应的代码类型与目标代码的代码类型匹配时,直接通过目标代码类型对应的调整策略对未保密代码对应的第二语法逻辑进行调整,节省了待保密代码重新查找对应的逻辑混淆规则的时间,提高了代码混淆的效率。
在一个实施例中,代码混淆方法还包括:获取待混淆代码对应的原代码文件;新建空白代码文件,将原代码文件、待混淆代码、目标代码映射到空白代码文件中;通过目标代码替换空白代码文件中原代码文件的待混淆代码,得到混淆代码文件。
具体地,原代码文件可以为待混淆代码对应的原地址的代码文件,原代码文件包含待混淆代码,比如原代码文件为100行代码,则待混淆代码可以为其中的第30行至50行重要性较高的代码。空白代码文件是服务器新建的暂时没有数据存储的,用于后续存储代码的文件,在服务器得到待混淆代码混淆后的目标代码后,还可以获取待混淆代码对应的原代码文件,并新建空白代码文件,将原代码文件、待混淆代码、目标代码映射到空白代码文件中,此时空白代码文件中包含原代码文件、待混淆代码、目标代码,用目标代码代替原代码文件中的待混淆代码,代替后空白代码文件包含原代码文件除待混淆代码以外的其他代码、目标代码,即为混淆代码文件。
本实施例中,服务器获取待混淆代码的原代码文件,并将原代码文件中的待混淆代码替换为目标代码,这样能够直接得到代码混淆后的原代码文件,节省了人工查找代码并替换的步骤,节省了时间。
在一个实施例中,上述代码混淆方法,服务器在接收到待混淆代码后,获取待混淆代码对应的语法树,并根据第一语法逻辑对语法树进行语法逻辑的调整,根据调整后的目标语法树生成与待混淆代码对应的目标代码。举例说明,需要对某浏览器中可见的JavaScript代码进行保密时,需要对代码进行代码混淆,则解析JavaScript代码,得到代码对应的语法树,对语法树遍历得到语法树的语法逻辑,比如,语法树的语法逻辑可以为“页面跳转”、“页面刷新”、“返回上一页”3个功能,则对应的第一逻辑混淆规则可以为调整3个功能的排序,比如可以调整为“页面刷新”、“返回上一页”、“页面跳转”3个功能,在得到调整后的语法树后,根据调整后的语法树生成目标代码,目标代码即为JavaScript代码进行代码混淆后的代码。
应该理解的是,虽然图2、图3的流程图中的各个步骤按照箭头的指示依次显示,但是这些步骤并不是必然按照箭头指示的顺序依次执行。除非本文中有明确的说明,这些步骤的执行并没有严格的顺序限制,这些步骤可以以其它的顺序执行。而且,图2、图3中的至少一部分步骤可以包括多个子步骤或者多个阶段,这些子步骤或者阶段并不必然是在同一时刻执行完成,而是可以在不同的时刻执行,这些子步骤或者阶段的执行顺序也不必然是依次进行,而是可以与其它步骤或者其它步骤的子步骤或者阶段的至少一部分轮流或者交替地执行。与传统的对代码中的代码元素进行混淆相比,提高了混淆代码安全性。
在一个实施例中,如图4所示,提供了一种代码混淆装置,包括:第一接收模块402、第一遍历模块404、第一调整模块406和第一代码生成模块408,其中:
第一接收模块402,用于接收待混淆代码,对待混淆代码进行代码解析,得到与待混淆代码对应的语法树。
第一遍历模块404,用于对语法树进行遍历,得到语法树的第一语法逻辑。
第一调整模块406,用于根据第一语法逻辑的类型获取对应的第一逻辑混淆规则后,通过第一逻辑混淆规则调整第一语法逻辑,根据调整后的第一语法逻辑得到调整后的目标语法树。
第一代码生成模块408,用于根据调整后的目标语法树生成与待混淆代码对应的目标代码。
在一个实施例中,装置还可以包括:
第一获取模块,用于获取预设的逻辑混淆规则,预设的逻辑混淆规则包含第一逻辑混淆规则和第二逻辑混淆规则,根据预设的逻辑混淆规则以及第一逻辑混淆规则获取第二逻辑混淆规则。
第二调整模块,用于根据第二逻辑混淆规则调整语法树的第一语法逻辑,得到调整后的备份语法树。
第二代码生成模块,用于根据调整后的备份语法树生成与待混淆代码对应的备份代码。
第一存储模块,用于存储备份代码,并在检测当目标代码的安全等级达到预设的风险等级时,替换目标代码为备份代码。
在一个实施例中,装置还可以包括:
第二存储模块,用于根据待混淆代码与目标代码得到第一语法逻辑的调整策略,将调整策略与目标代码关联存储。
还原模块,用于当目标代码在运行过程中出现执行错误时,通过目标代码查询关联的调整策略,根据调整策略还原目标代码。
在一个实施例中,装置还可以包括:
第二获取模块,用于获取目标代码的代码类型,并将代码类型与调整策略关联存储。
第二接收模块,用于接收未保密代码,查询为保密代码对应的代码类型。
第二遍历模块,用于对未保密代码进行代码解析得到未保密代码对应的语法树,并对未保密代码对应的语法树进行遍历,得到未保密代码对应的第二语法逻辑。
第三调整模块,用于当未保密代码的代码类型与目标代码的代码类型匹配时,通过目标代码的代码类型查询关联的调整策略,并通过调整策略对第二语法逻辑进行调整。
在一个实施例中,装置还可以包括:
第三获取模块,用于获取待混淆代码对应的原代码文件。
新建模块,用于新建空白代码文件,将原代码文件、待混淆代码、目标代码映射到空白代码文件中。
替换模块,用于通过目标代码替换空白代码文件中原代码文件的待混淆代码,得到混淆代码文件。
关于代码混淆装置的具体限定可以参见上文中对于代码混淆方法的限定,在此不再赘述。上述代码混淆装置中的各个模块可全部或部分通过软件、硬件及其组合来实现。上述各模块可以硬件形式内嵌于或独立于计算机设备中的处理器中,也可以以软件形式存储于计算机设备中的存储器中,以便于处理器调用执行以上各个模块对应的操作。
在一个实施例中,提供了一种计算机设备,该计算机设备可以是服务器,其内部结构图可以如图5所示。该计算机设备包括通过系统总线连接的处理器、存储器、网络接口和数据库。其中,该计算机设备的处理器用于提供计算和控制能力。该计算机设备的存储器包括非易失性存储介质、内存储器。该非易失性存储介质存储有操作系统、计算机程序和数据库。该内存储器为非易失性存储介质中的操作系统和计算机程序的运行提供环境。该计算机设备的数据库用于存储代码数据。该计算机设备的网络接口用于与外部的终端通过网络连接通信。该计算机程序被处理器执行时以实现一种代码混淆方法。
本领域技术人员可以理解,图5中示出的结构,仅仅是与本申请方案相关的部分结构的框图,并不构成对本申请方案所应用于其上的计算机设备的限定,具体的计算机设备可以包括比图中所示更多或更少的部件,或者组合某些部件,或者具有不同的部件布置。
在一个实施例中,提供了一种计算机设备,包括存储器和处理器,该存储器存储有计算机程序,该处理器执行计算机程序时实现以下步骤:接收待混淆代码,对待混淆代码进行代码解析,得到与待混淆代码对应的语法树;对语法树进行遍历,得到语法树的第一语法逻辑;根据第一语法逻辑的类型获取对应的第一逻辑混淆规则,通过第一逻辑混淆规则调整第一语法逻辑,根据调整后的第一语法逻辑得到调整后的目标语法树;根据调整后的目标语法树生成与待混淆代码对应的目标代码。
在一个实施例中,处理器执行计算机程序时所实现的根据调整后的第一语法逻辑得到调整后的目标语法树之后,还可以包括:获取预设的逻辑混淆规则,所述预设的逻辑混淆规则包含第一逻辑混淆规则和第二逻辑混淆规则,根据预设的逻辑混淆规则以及第一逻辑混淆规则获取第二逻辑混淆规则;根据第二逻辑混淆规则调整语法树的第一语法逻辑,得到调整后的备份语法树;根据调整后的备份语法树生成与待混淆代码对应的备份代码;存储备份代码,并在检测当目标代码的安全等级达到预设的风险等级时,替换目标代码为备份代码。
在一个实施例中,处理器执行计算机程序时所实现的根据调整后的目标语法树生成与待混淆代码对应的目标代码之后,还可以包括:根据待混淆代码与目标代码得到第一语法逻辑的调整策略,将调整策略与目标代码关联存储;当目标代码在运行过程中出现执行错误时,通过目标代码查询关联的调整策略,根据调整策略还原目标代码。
在一个实施例中,处理器执行计算机程序时所实现的将调整策略与目标代码关联存储之后,还可以包括:获取目标代码的代码类型,并将代码类型与调整策略关联存储;接收未保密代码,查询未保密代码对应的代码类型;对未保密代码进行代码解析得到未保密代码对应的语法树,并对未保密代码对应的语法树进行遍历,得到未保密代码对应的第二语法逻辑;当未保密代码的代码类型与目标代码的代码类型匹配时,通过目标代码的代码类型查询关联的调整策略,并通过调整策略对第二语法逻辑进行调整。
在一个实施例中,处理器执行计算机程序时还实现以下步骤:获取待混淆代码对应的原代码文件;新建空白代码文件,将原代码文件、待混淆代码、目标代码映射到空白代码文件中;通过目标代码替换空白代码文件中原代码文件的待混淆代码,得到混淆代码文件。
在一个实施例中,提供了一种计算机可读存储介质,所述计算机可读存储介质可以是非易失性,也可以是易失性,其上存储有计算机程序,计算机程序被处理器执行时实现以下步骤:接收待混淆代码,对待混淆代码进行代码解析,得到与待混淆代码对应的语法树;对语法树进行遍历,得到语法树的第一语法逻辑;根据第一语法逻辑的类型获取对应的第一逻辑混淆规则,通过第一逻辑混淆规则调整第一语法逻辑,根据调整后的第一语法逻辑得到调整后的目标语法树;根据调整后的目标语法树生成与待混淆代码对应的目标代码。
在一个实施例中,计算机程序被处理器执行时所实现的根据调整后的第一语法逻辑得到调整后的目标语法树之后,还可以包括:获取预设的逻辑混淆规则,所述预设的逻辑混淆规则包含第一逻辑混淆规则和第二逻辑混淆规则,根据预设的逻辑混淆规则以及第一逻辑混淆规则获取第二逻辑混淆规则;根据第二逻辑混淆规则调整语法树的第一语法逻辑,得到调整后的备份语法树;根据调整后的备份语法树生成与待混淆代码对应的备份代码;存储备份代码,并在检测当目标代码的安全等级达到预设的风险等级时,替换目标代码为备份代码。
在一个实施例中,计算机程序被处理器执行时所实现的根据调整后的目标语法树生成与待混淆代码对应的目标代码之后,还可以包括:根据待混淆代码与目标代码得到第一语法逻辑的调整策略,将调整策略与目标代码关联存储;当目标代码在运行过程中出现执行错误时,通过目标代码查询关联的调整策略,根据调整策略还原目标代码。
在一个实施例中,计算机程序被处理器执行时所实现的将调整策略与目标代码关联存储之后,还可以包括:获取目标代码的代码类型,并将代码类型与调整策略关联存储;接收未保密代码,查询未保密代码对应的代码类型;对未保密代码进行代码解析得到未保密代码对应的语法树,并对未保密代码对应的语法树进行遍历,得到未保密代码对应的第二语法逻辑;当未保密代码的代码类型与目标代码的代码类型匹配时,通过目标代码的代码类型查询关联的调整策略,并通过调整策略对第二语法逻辑进行调整。
在一个实施例中,计算机程序被处理器执行时还实现以下步骤:获取待混淆代码对应的原代码文件;新建空白代码文件,将原代码文件、待混淆代码、目标代码映射到空白代码文件中;通过目标代码替换空白代码文件中原代码文件的待混淆代码,得到混淆代码文件。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的计算机程序可存储于一非易失性计算机可读取存储介质中,该计算机程序在执行时,可包括如上述各方法的实施例的流程。其中,本申请所提供的各实施例中所使用的对存储器、存储、数据库或其它介质的任何引用,均可包括非易失性和/或易失性存储器。非易失性存储器可包括只读存储器(ROM)、可编程ROM(PROM)、电可编程ROM(EPROM)、电可擦除可编程ROM(EEPROM)或闪存。易失性存储器可包括随机存取存储器(RAM)或者外部高速缓冲存储器。作为说明而非局限,RAM以多种形式可得,诸如静态RAM(SRAM)、动态RAM(DRAM)、同步DRAM(SDRAM)、双数据率SDRAM(DDRSDRAM)、增强型SDRAM(ESDRAM)、同步链路(Synchlink) DRAM(SLDRAM)、存储器总线(Rambus)直接RAM(RDRAM)、直接存储器总线动态RAM(DRDRAM)、以及存储器总线动态RAM(RDRAM)等。
以上实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。
以上所述实施例仅表达了本申请的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对发明专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本申请构思的前提下,还可以做出若干变形和改进,这些都属于本申请的保护范围。因此,本申请专利的保护范围应以所附权利要求为准。

Claims (20)

  1. 一种代码混淆方法,其中,所述方法包括:
    接收待混淆代码,对所述待混淆代码进行代码解析,得到与所述待混淆代码对应的语法树;
    对所述语法树进行遍历,得到所述语法树的第一语法逻辑;
    根据所述第一语法逻辑的类型获取对应的第一逻辑混淆规则,通过所述第一逻辑混淆规则调整所述第一语法逻辑,根据调整后的第一语法逻辑得到调整后的目标语法树;
    根据所述调整后的目标语法树生成与所述待混淆代码对应的目标代码。
  2. 根据权利要求1所述的方法,其中,所述根据调整后的第一语法逻辑得到调整后的目标语法树之后,还包括:
    获取预设的逻辑混淆规则,所述预设的逻辑混淆规则包含所述第一逻辑混淆规则和第二逻辑混淆规则,根据所述预设的逻辑混淆规则以及第一逻辑混淆规则获取所述第二逻辑混淆规则;
    根据所述第二逻辑混淆规则调整所述语法树的第一语法逻辑,得到调整后的备份语法树;
    根据所述调整后的备份语法树生成与所述待混淆代码对应的备份代码;
    存储所述备份代码,并在检测当所述目标代码的安全等级达到预设的风险等级时,替换所述目标代码为所述备份代码。
  3. 根据权利要求1所述的方法,其中,所述根据所述调整后的目标语法树生成与所述待混淆代码对应的目标代码之后,还包括:
    根据所述待混淆代码与所述目标代码得到所述第一语法逻辑的调整策略,将所述调整策略与所述目标代码关联存储;
    当所述目标代码在运行过程中出现执行错误时,通过所述目标代码查询关联的所述调整策略,根据所述调整策略还原所述目标代码。
  4. 根据权利要求3所述的方法,其中,所述将所述调整策略与所述目标代码关联存储之后,还包括:
    获取所述目标代码的代码类型,并将所述代码类型与所述调整策略关联存储;
    接收未保密代码,查询所述未保密代码对应的代码类型;
    对所述未保密代码进行代码解析得到所述未保密代码对应的语法树,并对所述未保密代码对应的语法树进行遍历,得到所述未保密代码对应的第二语法逻辑;
    当所述未保密代码的代码类型与所述目标代码的代码类型匹配时,通过所述目标代码的代码类型查询关联的所述调整策略,并根据所述调整策略对所述第二语法逻辑进行调整。
  5. 根据权利要求1所述的方法,其中,所述方法还包括:
    获取所述待混淆代码对应的原代码文件;
    新建空白代码文件,将所述原代码文件、待混淆代码、目标代码映射到所述空白代码文件中;
    通过所述目标代码替换所述空白代码文件中原代码文件的待混淆代码,得到混淆代码文件。
  6. 一种代码混淆装置,其中,所述装置包括:
    第一接收模块,用于接收待混淆代码,对所述待混淆代码进行代码解析,得到与所述待混淆代码对应的语法树;
    第一遍历模块,用于对所述语法树进行遍历,得到所述语法树的第一语法逻辑;
    第一调整模块,用于根据所述第一语法逻辑的类型获取对应的第一逻辑混淆规则后,通过所述第一逻辑混淆规则调整所述第一语法逻辑,根据调整后的第一语法逻辑得到调整后的目标语法树;
    第一代码生成模块,用于根据所述调整后的目标语法树生成与所述待混淆代码对应的目标代码。
  7. 根据权利要求6所述的装置,其中,所述装置包括:
    第一获取模块,用于获取预设的逻辑混淆规则,所述预设的逻辑混淆规则包含所述第一逻辑混淆规则和第二逻辑混淆规则,根据所述预设的逻辑混淆规则以及第一逻辑混淆规则获取所述第二逻辑混淆规则;
    第二调整模块,用于根据所述第二逻辑混淆规则调整所述语法树的第一语法逻辑,得到调整后的备份语法树;
    第二代码生成模块,用于根据所述调整后的备份语法树生成与所述待混淆代码对应的备份代码;
    第一存储模块,用于存储所述备份代码,并在检测当所述目标代码的安全等级达到预设的风险等级时,替换所述目标代码为所述备份代码。
  8. 根据权利要求6所述的装置,其中,所述装置包括:
    第二存储模块,用于根据所述待混淆代码与所述目标代码得到所述第一语法逻辑的调整策略,将所述调整策略与所述目标代码关联存储;
    还原模块,用于当所述目标代码在运行过程中出现执行错误时,通过所述目标代码查询关联的所述调整策略,根据所述调整策略还原所述目标代码。
  9. 根据权利要求8所述的装置,其中,所述装置包括:
    第二获取模块,用于获取所述目标代码的代码类型,并将所述代码类型与所述调整策略关联存储;
    第二接收模块,用于接收未保密代码,查询所述未保密代码对应的代码类型;
    第二遍历模块,用于对所述未保密代码进行代码解析得到所述未保密代码对应的语法树,并对所述未保密代码对应的语法树进行遍历,得到所述未保密代码对应的第二语法逻辑;
    第三调整模块,用于当所述未保密代码的代码类型与所述目标代码的代码类型匹配时,通过所述目标代码的代码类型查询关联的所述调整策略,并根据所述调整策略对所述第二语法逻辑进行调整。
  10. 根据权利要求6所述的装置,其中,所述装置还包括:
    第三获取模块,用于获取所述待混淆代码对应的原代码文件;
    新建模块,用于新建空白代码文件,将所述原代码文件、待混淆代码、目标代码映射到所述空白代码文件中;
    替换模块,用于通过所述目标代码替换所述空白代码文件中原代码文件的待混淆代码,得到混淆代码文件。
  11. 一种计算机设备,包括存储器和处理器,所述存储器存储有计算机程序,其中,所述处理器执行所述计算机程序时实现如下步骤:
    接收待混淆代码,对所述待混淆代码进行代码解析,得到与所述待混淆代码对应的语法树;
    对所述语法树进行遍历,得到所述语法树的第一语法逻辑;
    根据所述第一语法逻辑的类型获取对应的第一逻辑混淆规则,通过所述第一逻辑混淆规则调整所述第一语法逻辑,根据调整后的第一语法逻辑得到调整后的目标语法树;
    根据所述调整后的目标语法树生成与所述待混淆代码对应的目标代码。
  12. 根据权利要求11所述的计算机设备,其中,所述处理器执行所述计算机程序时,在所述根据调整后的第一语法逻辑得到调整后的目标语法树之后,还实现如下步骤:
    获取预设的逻辑混淆规则,所述预设的逻辑混淆规则包含所述第一逻辑混淆规则和第二逻辑混淆规则,根据所述预设的逻辑混淆规则以及第一逻辑混淆规则获取所述第二逻辑混淆规则;
    根据所述第二逻辑混淆规则调整所述语法树的第一语法逻辑,得到调整后的备份语法树;
    根据所述调整后的备份语法树生成与所述待混淆代码对应的备份代码;
    存储所述备份代码,并在检测当所述目标代码的安全等级达到预设的风险等级时,替换所述目标代码为所述备份代码。
  13. 根据权利要求11所述的计算机设备,其中,所述处理器执行所述计算机程序时,在所述根据所述调整后的目标语法树生成与所述待混淆代码对应的目标代码之后,还实现如下步骤:
    根据所述待混淆代码与所述目标代码得到所述第一语法逻辑的调整策略,将所述调整策略与所述目标代码关联存储;
    当所述目标代码在运行过程中出现执行错误时,通过所述目标代码查询关联的所述调整策略,根据所述调整策略还原所述目标代码。
  14. 根据权利要求13所述的计算机设备,其中,所述处理器执行所述计算机程序时,在所述将所述调整策略与所述目标代码关联存储之后,还实现如下步骤:
    获取所述目标代码的代码类型,并将所述代码类型与所述调整策略关联存储;
    接收未保密代码,查询所述未保密代码对应的代码类型;
    对所述未保密代码进行代码解析得到所述未保密代码对应的语法树,并对所述未保密代码对应的语法树进行遍历,得到所述未保密代码对应的第二语法逻辑;
    当所述未保密代码的代码类型与所述目标代码的代码类型匹配时,通过所述目标代码的代码类型查询关联的所述调整策略,并根据所述调整策略对所述第二语法逻辑进行调整。
  15. 根据权利要求11所述的计算机设备,其中,所述处理器执行所述计算机程序时,还实现如下步骤:
    获取所述待混淆代码对应的原代码文件;
    新建空白代码文件,将所述原代码文件、待混淆代码、目标代码映射到所述空白代码文件中;
    通过所述目标代码替换所述空白代码文件中原代码文件的待混淆代码,得到混淆代码文件。
  16. 一种计算机可读存储介质,其上存储有计算机程序,其中,所述计算机程序被处理器执行时实现如下步骤:
    接收待混淆代码,对所述待混淆代码进行代码解析,得到与所述待混淆代码对应的语法树;
    对所述语法树进行遍历,得到所述语法树的第一语法逻辑;
    根据所述第一语法逻辑的类型获取对应的第一逻辑混淆规则,通过所述第一逻辑混淆规则调整所述第一语法逻辑,根据调整后的第一语法逻辑得到调整后的目标语法树;
    根据所述调整后的目标语法树生成与所述待混淆代码对应的目标代码。
  17. 根据权利要求16所述的计算机可读存储介质,其中,所述计算机程序被处理器执行时,在所述根据调整后的第一语法逻辑得到调整后的目标语法树之后,还实现如下步骤:
    获取预设的逻辑混淆规则,所述预设的逻辑混淆规则包含所述第一逻辑混淆规则和第二逻辑混淆规则,根据所述预设的逻辑混淆规则以及第一逻辑混淆规则获取所述第二逻辑混淆规则;
    根据所述第二逻辑混淆规则调整所述语法树的第一语法逻辑,得到调整后的备份语法树;
    根据所述调整后的备份语法树生成与所述待混淆代码对应的备份代码;
    存储所述备份代码,并在检测当所述目标代码的安全等级达到预设的风险等级时,替换所述目标代码为所述备份代码。
  18. 根据权利要求16所述的计算机可读存储介质,其中,所述计算机程序被处理器执行时,在所述根据所述调整后的目标语法树生成与所述待混淆代码对应的目标代码之后,还实现如下步骤:
    根据所述待混淆代码与所述目标代码得到所述第一语法逻辑的调整策略,将所述调整策略与所述目标代码关联存储;
    当所述目标代码在运行过程中出现执行错误时,通过所述目标代码查询关联的所述调整策略,根据所述调整策略还原所述目标代码。
  19. 根据权利要求18所述的计算机可读存储介质,其中,所述计算机程序被处理器执行时,在所述将所述调整策略与所述目标代码关联存储之后,还实现如下步骤:
    获取所述目标代码的代码类型,并将所述代码类型与所述调整策略关联存储;
    接收未保密代码,查询所述未保密代码对应的代码类型;
    对所述未保密代码进行代码解析得到所述未保密代码对应的语法树,并对所述未保密代码对应的语法树进行遍历,得到所述未保密代码对应的第二语法逻辑;
    当所述未保密代码的代码类型与所述目标代码的代码类型匹配时,通过所述目标代码的代码类型查询关联的所述调整策略,并根据所述调整策略对所述第二语法逻辑进行调整。
  20. 根据权利要求16所述的计算机可读存储介质,其中,所述计算机程序被处理器执行时,还实现如下步骤:
    获取所述待混淆代码对应的原代码文件;
    新建空白代码文件,将所述原代码文件、待混淆代码、目标代码映射到所述空白代码文件中;
    通过所述目标代码替换所述空白代码文件中原代码文件的待混淆代码,得到混淆代码文件。
PCT/CN2020/093622 2019-08-13 2020-05-30 代码混淆方法、装置、计算机设备和存储介质 Ceased WO2021027367A1 (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
CN201910746038.6 2019-08-13
CN201910746038.6A CN110647329B (zh) 2019-08-13 2019-08-13 代码混淆方法、装置、计算机设备和存储介质

Publications (1)

Publication Number Publication Date
WO2021027367A1 true WO2021027367A1 (zh) 2021-02-18

Family

ID=69009560

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/CN2020/093622 Ceased WO2021027367A1 (zh) 2019-08-13 2020-05-30 代码混淆方法、装置、计算机设备和存储介质

Country Status (2)

Country Link
CN (1) CN110647329B (zh)
WO (1) WO2021027367A1 (zh)

Families Citing this family (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110647329B (zh) * 2019-08-13 2024-07-30 平安科技(深圳)有限公司 代码混淆方法、装置、计算机设备和存储介质
CN111274057B (zh) * 2020-01-13 2021-07-06 北京字节跳动网络技术有限公司 一种内存泄露链路的处理方法、装置、介质和电子设备
CN112269566B (zh) * 2020-11-03 2022-09-02 支付宝(杭州)信息技术有限公司 脚本生成处理方法、装置、设备及系统
CN113094031B (zh) * 2021-03-16 2024-02-20 上海晓途网络科技有限公司 因子生成方法、装置、计算机设备和存储介质
CN113158147B (zh) * 2021-03-24 2022-12-09 中国人民解放军战略支援部队信息工程大学 一种基于母体融合的代码混淆方法
CN114546402A (zh) * 2022-02-21 2022-05-27 未鲲(上海)科技服务有限公司 基于java的结构化数据重构方法、装置、设备及存储介质
CN117349803B (zh) * 2023-12-06 2024-03-19 浙江大学 代码解混淆方法、装置、电子设备及计算机可读存储介质

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20100185818A1 (en) * 2009-01-21 2010-07-22 Lanping Sheng Resource pool managing system and signal processing method
CN108710787A (zh) * 2018-03-26 2018-10-26 江苏通付盾信息安全技术有限公司 代码混淆方法及装置、计算设备、计算机存储介质
CN109033764A (zh) * 2017-06-09 2018-12-18 腾讯科技(深圳)有限公司 反混淆处理方法及终端、计算机设备
CN110647329A (zh) * 2019-08-13 2020-01-03 平安科技(深圳)有限公司 代码混淆方法、装置、计算机设备和存储介质

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8176337B2 (en) * 2008-03-12 2012-05-08 Apple Inc. Computer object code obfuscation using boot installation
CN104992083B (zh) * 2015-07-09 2018-02-16 广州视源电子科技股份有限公司 应用程序的代码混淆方法和系统
CN105354449B (zh) * 2015-11-04 2018-08-21 北京鼎源科技有限公司 一种面向Lua语言的加扰混淆方法和解密方法
CN108182358B (zh) * 2017-12-28 2020-09-29 江苏通付盾信息安全技术有限公司 文件保护方法、装置、计算设备及计算机存储介质
CN108595921B (zh) * 2018-03-22 2020-11-13 北京奇艺世纪科技有限公司 一种源代码中字符串的混淆方法和装置
CN109614772B (zh) * 2018-11-20 2021-02-02 江苏通付盾信息安全技术有限公司 基于应用安装包文件的代码转换方法及装置

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20100185818A1 (en) * 2009-01-21 2010-07-22 Lanping Sheng Resource pool managing system and signal processing method
CN109033764A (zh) * 2017-06-09 2018-12-18 腾讯科技(深圳)有限公司 反混淆处理方法及终端、计算机设备
CN108710787A (zh) * 2018-03-26 2018-10-26 江苏通付盾信息安全技术有限公司 代码混淆方法及装置、计算设备、计算机存储介质
CN110647329A (zh) * 2019-08-13 2020-01-03 平安科技(深圳)有限公司 代码混淆方法、装置、计算机设备和存储介质

Also Published As

Publication number Publication date
CN110647329B (zh) 2024-07-30
CN110647329A (zh) 2020-01-03

Similar Documents

Publication Publication Date Title
WO2021027367A1 (zh) 代码混淆方法、装置、计算机设备和存储介质
CN106295388B (zh) 一种数据脱敏方法和装置
WO2020233219A1 (zh) 异常问题的定位方法、装置、设备及计算机可读存储介质
TWI616762B (zh) 動態資料遮罩方法以及資料庫系統
CN104156365B (zh) 一种文件的监控方法、装置及系统
WO2020253061A1 (zh) 页面生成方法、装置、计算机设备和存储介质
US10171471B2 (en) Evidence-based role based access control
WO2017087074A1 (en) Systems and methods for anonymizing log entries
WO2019144549A1 (zh) 漏洞测试方法、装置、计算机设备和存储介质
CN112506481A (zh) 业务数据交互方法、装置、计算机设备和存储介质
CN114116268A (zh) Flink SQL语句的校验方法、装置、计算机设备和存储介质
CN104408366A (zh) 基于插装技术的安卓应用程序权限使用行为跟踪方法
CN111143399B (zh) 数据处理方法、装置、存储介质和计算机设备
CN112528201A (zh) 调用第三方平台的方法、装置、计算机设备和存储介质
CN120744952A (zh) 一种深度学习大模型的加密防护方法及系统
CN112016122B (zh) 网页数据处理方法、装置、计算机设备及存储介质
US20260111549A1 (en) Detecting and preventing harmful generative image outputsusing digitalsignatures
CN117459327A (zh) 一种云数据透明加密保护方法、系统及装置
US20070088635A1 (en) Determining policy compliance based on existing compliance results
US20230195928A1 (en) Detection and protection of personal data in audio/video calls
CN113946804B (zh) 一种源代码的混淆方法和装置
CN116861473A (zh) 数据动静态结合脱敏实现方法
CN108848165B (zh) 业务请求处理方法、装置、计算机设备和存储介质
CN108133026B (zh) 一种多数据的处理方法、系统及存储介质
TW201714113A (zh) 資料去識別化系統及其方法

Legal Events

Date Code Title Description
121 Ep: the epo has been informed by wipo that ep was designated in this application

Ref document number: 20853325

Country of ref document: EP

Kind code of ref document: A1

NENP Non-entry into the national phase

Ref country code: DE

122 Ep: pct application non-entry in european phase

Ref document number: 20853325

Country of ref document: EP

Kind code of ref document: A1