CN117436040B - Opaque predicate-based code confusion method, system and storage medium - Google Patents

Opaque predicate-based code confusion method, system and storage medium Download PDF

Info

Publication number
CN117436040B
CN117436040B CN202311734001.4A CN202311734001A CN117436040B CN 117436040 B CN117436040 B CN 117436040B CN 202311734001 A CN202311734001 A CN 202311734001A CN 117436040 B CN117436040 B CN 117436040B
Authority
CN
China
Prior art keywords
predicate
opaque
constructing
symbol
array
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.)
Active
Application number
CN202311734001.4A
Other languages
Chinese (zh)
Other versions
CN117436040A (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.)
Changshu Institute of Technology
Original Assignee
Changshu Institute of Technology
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 Changshu Institute of Technology filed Critical Changshu Institute of Technology
Priority to CN202311734001.4A priority Critical patent/CN117436040B/en
Publication of CN117436040A publication Critical patent/CN117436040A/en
Application granted granted Critical
Publication of CN117436040B publication Critical patent/CN117436040B/en
Active legal-status Critical Current
Anticipated expiration legal-status Critical

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
    • G06F40/00Handling natural language data
    • G06F40/20Natural language analysis
    • G06F40/268Morphological analysis
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F40/00Handling natural language data
    • G06F40/20Natural language analysis
    • G06F40/279Recognition of textual entities
    • G06F40/284Lexical analysis, e.g. tokenisation or collocates

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Audiology, Speech & Language Pathology (AREA)
  • Software Systems (AREA)
  • Health & Medical Sciences (AREA)
  • Artificial Intelligence (AREA)
  • Computational Linguistics (AREA)
  • General Health & Medical Sciences (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Hardware Design (AREA)
  • Technology Law (AREA)
  • Multimedia (AREA)
  • Devices For Executing Special Programs (AREA)

Abstract

The invention discloses a code confusion method based on opaque predicates, which comprises the following steps: acquiring a basic block set corresponding to codes to be confused in a control flow graph of a program; constructing a predicate basic block set, and inserting redundant basic blocks; constructing an opaque predicate set; and performing opaque predicate reinforcement operation on the predicate basic block after the redundant basic block is inserted by using the opaque predicate. The opaque predicate construction method can not only greatly improve the complexity of the opaque predicate, but also cause missing report when the opaque predicate is detected by symbol execution, thereby effectively resisting symbol execution detection attack.

Description

Opaque predicate-based code confusion method, system and storage medium
Technical Field
The invention belongs to the technical field of software detection, and relates to a code confusion method, a system and a storage medium based on opaque predicates.
Background
In programming, conditional statements are used to choose to execute certain blocks of code or jump to different blocks of code depending on the particular condition, each conditional branch having the possibility of being executed. However, opaque predicates introduce redundant branches to complicate the control flow graph by building branch structures using remarks or contradictions as conditional statements. In actual execution, these redundant branches are never executed, and the instructions in the basic blocks they connect are invalid instructions, simply to increase the difficulty of understanding the program and to confuse the control flow.
Opaque predicate obfuscation is mainly used to protect key codes of programs against reverse analysis and to prevent code theft. Opaque predicates are widely applied to software protection as a code confusion technology, and students have conducted related researches on the opaque predicates, and various construction methods of the opaque predicates are respectively provided from the aspects of residual theory, number theory, chaos theory and the like. The Collberg et al firstly propose a construction method for constructing two opaque predicates, namely an alias construction method and a concurrency construction method, so that the cracking difficulty of the opaque predicates is increased to a certain extent. The method parameterizes predicates to construct more complex predicates, but has the defects of too simple form and poor safety, and Myles show that the safety of constructing the opaque predicates by using secondary residual is poor through experimental tests and evaluation. Yuan Zheng et al propose an opaque predicate construction method based on congruence equations through elementary theory, and the method has more superiority in terms of safety and cost overhead compared with a quadratic residue mode. However, such opaque predicates are easier to filter during the reverse analysis.
At present, most opaque predicate construction technologies focus on research on predicate complexity, and hide predicate internal logic through complex mathematical transformation, so that the predicate has better static reverse analysis resistance. However, when faced with dynamic analysis, the aliasing effects of these traditional opaque predicates are not ideal.
Disclosure of Invention
The invention aims to provide a code confusion method, a system and a storage medium based on opaque predicates, wherein the opaque predicates are constructed by double-array mixed calculation, and the opaque predicate construction method not only can greatly improve the complexity of the opaque predicates, but also can cause missing report when a symbol execution detects the opaque predicates, so that symbol execution detection attack is effectively resisted.
The technical solution for realizing the purpose of the invention is as follows:
a method of opaque predicate-based code obfuscation, comprising the steps of:
s01: acquiring a basic block set corresponding to codes to be confused in a control flow graph of a program;
s02: constructing a predicate basic block set, and inserting redundant basic blocks;
s03: constructing an opaque predicate set;
s04: and performing opaque predicate reinforcement operation on the predicate basic block after the redundant basic block is inserted by using the opaque predicate.
In a preferred technical solution, in the step S02, a predicate basic block set is constructed, and the method for inserting the redundant basic block includes:
s11: respectively inserting conditional predicate expressions into each basic block in the basic block set to construct a predicate basic block set;
s12: constructing a corresponding pluggable redundant basic block set according to the predicate basic block set;
s13: searching corresponding redundant basic blocks in the redundant basic block set, and performing redundant basic block insertion operation on the predicate basic blocks.
In a preferred embodiment, the method for constructing the opaque predicate set in step S03 includes:
s31: constructing a first symbol array, wherein the array elements of the first symbol array take values according to an increasing rule and a 2 times relation;
s32: constructing a second symbol array, wherein the array elements of the second symbol array take values according to an increasing rule and at least 1 multiple relation;
s33: constructing a first symbol variable, wherein the value of the first symbol variable is obtained by carrying out mixed operation on array elements in the first symbol array and array elements in the second symbol array;
s34: constructing a second symbol variable, wherein the value of the second symbol variable is obtained by carrying out mixed operation on array elements in the first symbol array/the second symbol array;
s35: opaque predicates are constructed, the expressions of which are composed of constructed first symbolic variables and second symbolic variables, the expressions of which are unequal expressions, and the expression values of which are permanently false.
In a preferred embodiment, the length of the first symbol array is 8, and the first symbol array a [ ] = {0,2,4,6,8,10,12,14}.
In a preferred embodiment, the length of the second symbol array is 8, and the second symbol array b [ ] = {0,1,2,3,4,5,6,7}.
In a preferred embodiment, the method for constructing the first symbolic variable includes:
constructing a third symbolic variable as a symbolic variable in the protected function, wherein the value of the third symbolic variable is from the integer parameter of the protected function;
dividing 8 by the third symbol variable x to obtain a remainder operation as the subscript of the first symbol array a [ ], dividing 2 by the obtained value to obtain a whole value as the subscript of the first symbol array a [ ], and performing AND operation on the obtained element value and the array element a [7 ];
and performing OR operation on the operation result and the group element b [1], namely y= (a [ (a [ x%8 ])/2 ] & a [7 ])|b1 ], wherein y is a first symbol variable.
In a preferred embodiment, the method for constructing the second symbolic variable includes:
constructing a third symbolic variable as a symbolic variable in the protected function, wherein the value of the third symbolic variable is from the integer parameter of the protected function;
and dividing 8 by the third symbol variable x to obtain remainder operation as the subscript of the array a [ ], and then carrying out addition operation on the obtained element value and the constant 1.
The invention also discloses a code confusion system based on opaque predicates, which comprises:
the basic block acquisition module acquires a basic block set corresponding to codes to be confused in a control flow graph of a program;
the redundant basic block insertion module constructs a predicate basic block set and inserts the redundant basic blocks;
an opaque predicate construction module that constructs an opaque predicate set;
and the code confusion module uses opaque predicates to carry out opaque predicate reinforcement operation on the predicate basic blocks after the redundant basic blocks are inserted.
In a preferred technical solution, the method for constructing the opaque predicate set in the opaque predicate construction module includes:
s31: constructing a first symbol array, wherein the array elements of the first symbol array take values according to an increasing rule and a 2 times relation;
s32: constructing a second symbol array, wherein the array elements of the second symbol array take values according to an increasing rule and at least 1 multiple relation;
s33: constructing a first symbol variable, wherein the value of the first symbol variable is obtained by carrying out mixed operation on array elements in the first symbol array and array elements in the second symbol array;
s34: constructing a second symbol variable, wherein the value of the second symbol variable is obtained by carrying out mixed operation on array elements in the first symbol array/the second symbol array;
s35: opaque predicates are constructed, the expressions of which are composed of constructed first symbolic variables and second symbolic variables, the expressions of which are unequal expressions, and the expression values of which are permanently false.
The invention also discloses a computer storage medium, on which a computer program is stored, which when executed implements the opaque predicate-based code obfuscation method described above.
Compared with the prior art, the invention has the remarkable advantages that:
the invention uses the symbol variable and the double-symbol array, and performs mixed operation to construct the opaque predicate through the elements in the symbol variable and the double-symbol array, and the opaque predicate construction method not only can greatly improve the complexity of the opaque predicate, but also can cause the missing report when the symbol execution detects the opaque predicate, thereby effectively resisting the symbol execution detection attack.
The method can greatly improve the strength of opaque predicates and effectively increase the elasticity of the opaque predicates against dynamic reverse analysis of programs.
Drawings
FIG. 1 is a flow chart of a method of opaque predicate-based code obfuscation of the present embodiment;
fig. 2 is a schematic block diagram of a code obfuscation system based on opaque predicates according to the present embodiment.
Detailed Description
The principle of the invention is as follows: the invention uses the symbol variable and the double-symbol array, and performs mixed operation to construct the opaque predicate through the elements in the symbol variable and the double-symbol array, and the opaque predicate construction method not only can greatly improve the complexity of the opaque predicate, but also can cause the missing report when the symbol execution detects the opaque predicate, thereby effectively resisting the symbol execution detection attack.
Example 1:
as shown in fig. 1, a code obfuscation method based on opaque predicates includes the steps of:
s01: acquiring a basic block set corresponding to codes to be confused in a control flow graph of a program;
s02: constructing a predicate basic block set, and inserting redundant basic blocks;
s03: constructing an opaque predicate set;
s04: and performing opaque predicate reinforcement operation on the predicate basic block after the redundant basic block is inserted by using the opaque predicate.
In a preferred embodiment, the method for constructing the predicate basic block set and inserting the redundant basic block in step S02 includes:
s11: respectively inserting conditional predicate expressions into each basic block in the basic block set to construct a predicate basic block set;
s12: constructing a corresponding pluggable redundant basic block set according to the predicate basic block set;
s13: searching corresponding redundant basic blocks in the redundant basic block set, and performing redundant basic block insertion operation on the predicate basic blocks.
In a preferred embodiment, the method for constructing the opaque predicate set in step S03 includes:
s31: constructing a first symbol array, wherein the array elements of the first symbol array take values according to an increasing rule and a 2 times relation;
s32: constructing a second symbol array, wherein the array elements of the second symbol array take values according to an increasing rule and at least 1 multiple relation;
s33: constructing a first symbol variable, wherein the value of the first symbol variable is obtained by carrying out mixed operation on array elements in the first symbol array and array elements in the second symbol array;
s34: constructing a second symbol variable, wherein the value of the second symbol variable is obtained by carrying out mixed operation on array elements in the first symbol array/the second symbol array;
s35: opaque predicates are constructed, the expressions of which are composed of constructed first symbolic variables and second symbolic variables, the expressions of which are unequal expressions, and the expression values of which are permanently false.
In a preferred embodiment, the first symbol array has a length of 8, and the first symbol array a [ ] = {0,2,4,6,8,10,12,14}.
In a preferred embodiment, the second symbol array has a length of 8, and the second symbol array b [ ] = {0,1,2,3,4,5,6,7}.
In a preferred embodiment, the method of constructing the first symbolic variable includes:
constructing a third symbolic variable as a symbolic variable in the protected function, wherein the value of the third symbolic variable is from the integer parameter of the protected function;
dividing 8 by the third symbol variable x to obtain a remainder operation as the subscript of the first symbol array a [ ], dividing 2 by the obtained value to obtain a whole value as the subscript of the first symbol array a [ ], and performing AND operation on the obtained element value and the array element a [7 ];
and performing OR operation on the operation result and the group element b [1], namely y= (a [ (a [ x%8 ])/2 ] & a [7 ])|b1 ], wherein y is a first symbol variable.
In a preferred embodiment, the method of constructing the second symbolic variable comprises:
constructing a third symbolic variable as a symbolic variable in the protected function, wherein the value of the third symbolic variable is from the integer parameter of the protected function;
and dividing 8 by the third symbol variable x to obtain remainder operation as the subscript of the array a [ ], and then carrying out addition operation on the obtained element value and the constant 1.
In another embodiment, a computer storage medium has a computer program stored thereon that, when executed, implements the opaque predicate-based code obfuscation method described above.
In another embodiment, as shown in FIG. 2, a code obfuscation system based on opaque predicates, includes:
the basic block acquisition module 10 acquires a basic block set corresponding to codes to be confused in a control flow graph of a program;
a redundant basic block insertion module 20 for constructing a predicate basic block set and inserting a redundant basic block;
an opaque predicate construction module 30 that constructs an opaque predicate set;
the code obfuscation module 40 performs an opaque predicate hardening operation on the predicate basic block after the redundant basic block is inserted using an opaque predicate.
Specifically, the workflow of the opaque predicate-based code obfuscation system is described below by taking a preferred embodiment as an example:
the method specifically comprises the following steps:
1. and constructing a program control flow graph according to the program before confusion.
2. Traversing a program control flow diagram, and selecting a basic block set corresponding to codes needing confusion protection in a program on the basis of analyzing the program control flow structure
3. For basic block setIs inserted with conditional predicate expressions +.>Constructing a predicate basic block set ++>
4. For predicate basic block setConstructing corresponding insertable redundant basic block set +.>
5. For each of the attributesPredicate basic block +.>Searching for corresponding redundancy baseThe block performs the operation of inserting the redundant basic block: />
6. For predicate basic block after inserting redundant basic blockOpaque predicate hardening operations are performed:constructing a confusing program execution flow, wherein +.>An opaque predicate hardening method is represented.
7. Returning to the obfuscated program.
The invention uses the symbolic variable and the double-symbolic array, and constructs the opaque predicate through the mixed operation of the elements in the symbolic variable and the double-symbolic array, and the constructed algorithm is described as follows.
(1) The shaping parameter p of the protected function is read.
(2) A symbolic variable x is defined and p is assigned to the defined symbolic variable, e.g. "int x=p".
(3) Defining a symbol array a [ ] with array length of 8, assigning size to the symbol array and initializing the number of arrays. The array elements are valued according to the relation of increasing rule and 2 times, and the values of the array elements are a [ ] = {0,2,4,6,8,10,12,14}, respectively.
(4) Defining a symbol array b [ ] with array length of 8, assigning size to symbol array and initializing number of arrays. The array elements are valued according to the relation of increasing rule and 1 multiple, and the values are b [ ] = {0,1,2,3,4,5,6,7}, respectively.
(5) Defining a symbol variable y, wherein y is one of conditions for constructing opaque predicates, the construction of y needs to be specifically operated according to the sizes, the numbers and the rules of array element values of symbol arrays a and b, namely 'y= (a [ (a [ x%8 ])/2 ] & a [7 ])|b1 ]', the construction of y comprises the steps that the symbol variable x is divided by 8 to be used as a subscript of an array a [ ], the obtained value is divided by 2 to be used as a subscript of the array a [ ], the obtained element value is subjected to AND operation with an array element a [7], and finally, an operation result and the array element b [1] are subjected to OR operation.
(6) Defining a symbol variable z, wherein z is another condition for constructing an opaque predicate, and the construction of z needs to be specifically operated according to the size, number and rule of array element values of the symbol array a, namely 'z=a [ x%8] +1', wherein the construction of z comprises the operation of the symbol variable x as a subscript of the array, the acquired value is taken as the subscript of the array, and finally, the mixed operation is carried out between the acquired element value and the array element. The construction of z includes that the symbol variable x is divided by 8 to be used as the subscript of the array a [ ], and then the obtained element value and the constant 1 are added.
(7) Constructing a permanent false opaque predicate according to the jump relation of the program, wherein the opaque predicate needs to use y constructed in the step (5) and z constructed in the step (6). Since z is a variable that is always equivalent to y, the construction of an opaque predicate requires that y be connected with equivalent z with unequal conditions, so that the opaque predicate is permanently false, i.e., "y |=z". Thus, the symbolic execution engine cannot handle the symbolic memory, it will generate an incorrect constraint model and incorrectly identify the predicate as a normal predicate.
The technical scheme of the invention is described below by taking a function as a research object.
Specific examples of the construction based on the above primitive functions according to the opaque predicate construction algorithm are as follows:
in the above code, y |=z is an opaque predicate, and the opaque predicate is permanently false.
Dead code is inserted in the false branches to build false branches and complicate the program control flow in conjunction with opaque predicates that are constant in condition.
The foregoing examples are preferred embodiments of the present invention, but the embodiments of the present invention are not limited to the foregoing examples, and any other changes, modifications, substitutions, combinations, and simplifications that do not depart from the spirit and principles of the present invention should be made therein and are intended to be equivalent substitutes within the scope of the present invention.

Claims (8)

1. A method of code obfuscation based on opaque predicates, comprising the steps of:
s01: acquiring a basic block set corresponding to codes to be confused in a control flow graph of a program;
s02: constructing a predicate basic block set, and inserting redundant basic blocks;
s03: constructing an opaque predicate set; the method for constructing the opaque predicate set comprises the following steps:
s31: constructing a first symbol array, wherein the array elements of the first symbol array take values according to an increasing rule and a 2 times relation;
s32: constructing a second symbol array, wherein the array elements of the second symbol array take values according to an increasing rule and at least 1 multiple relation;
s33: constructing a first symbol variable, wherein the value of the first symbol variable is obtained by carrying out mixed operation on array elements in the first symbol array and array elements in the second symbol array;
s34: constructing a second symbol variable, wherein the value of the second symbol variable is obtained by carrying out mixed operation on array elements in the first symbol array/the second symbol array;
s35: constructing opaque predicates, wherein the expressions of the opaque predicates are composed of constructed first symbolic variables and second symbolic variables, the expressions of the opaque predicates are unequal expressions, and the expression values of the opaque predicates are permanently false;
s04: and performing opaque predicate reinforcement operation on the predicate basic block after the redundant basic block is inserted by using the opaque predicate.
2. The opaque predicate-based code obfuscation method according to claim 1, wherein the constructing a predicate basic block set in step S02, the inserting redundant basic blocks includes:
s11: respectively inserting conditional predicate expressions into each basic block in the basic block set to construct a predicate basic block set;
s12: constructing a corresponding pluggable redundant basic block set according to the predicate basic block set;
s13: searching corresponding redundant basic blocks in the redundant basic block set, and performing redundant basic block insertion operation on the predicate basic blocks.
3. The opaque predicate-based code obfuscation method of claim 1, wherein the first symbol array has a length of 8, and the first symbol array a [ ] = {0,2,4,6,8,10,12,14}.
4. The opaque predicate-based code obfuscation method of claim 1, wherein the second symbol array has a length of 8, and the second symbol array b [ ] = {0,1,2,3,4,5,6,7}.
5. The opaque predicate-based code obfuscation method of claim 1, wherein the method of constructing the first symbol variable includes:
constructing a third symbolic variable as a symbolic variable in the protected function, wherein the value of the third symbolic variable is from the integer parameter of the protected function;
dividing 8 by the third symbol variable x to obtain a remainder operation as the subscript of the first symbol array a [ ], dividing 2 by the obtained value to obtain a whole value as the subscript of the first symbol array a [ ], and performing AND operation on the obtained element value and the array element a [7 ];
and performing OR operation on the operation result and the group element b [1], namely y= (a [ (a [ x%8 ])/2 ] & a [7 ])|b1 ], wherein y is a first symbol variable.
6. The opaque predicate-based code obfuscation method of claim 1, wherein the method of constructing the second symbolic variable includes:
constructing a third symbolic variable as a symbolic variable in the protected function, wherein the value of the third symbolic variable is from the integer parameter of the protected function;
and dividing 8 by the third symbol variable x to obtain remainder operation as the subscript of the array a [ ], and then carrying out addition operation on the obtained element value and the constant 1.
7. A code obfuscation system based on opaque predicates, comprising:
the basic block acquisition module acquires a basic block set corresponding to codes to be confused in a control flow graph of a program;
the redundant basic block insertion module constructs a predicate basic block set and inserts the redundant basic blocks;
an opaque predicate construction module that constructs an opaque predicate set; the method for constructing the opaque predicate set comprises the following steps:
s31: constructing a first symbol array, wherein the array elements of the first symbol array take values according to an increasing rule and a 2 times relation;
s32: constructing a second symbol array, wherein the array elements of the second symbol array take values according to an increasing rule and at least 1 multiple relation;
s33: constructing a first symbol variable, wherein the value of the first symbol variable is obtained by carrying out mixed operation on array elements in the first symbol array and array elements in the second symbol array;
s34: constructing a second symbol variable, wherein the value of the second symbol variable is obtained by carrying out mixed operation on array elements in the first symbol array/the second symbol array;
s35: constructing opaque predicates, wherein the expressions of the opaque predicates are composed of constructed first symbolic variables and second symbolic variables, the expressions of the opaque predicates are unequal expressions, and the expression values of the opaque predicates are permanently false;
and the code confusion module uses opaque predicates to carry out opaque predicate reinforcement operation on the predicate basic blocks after the redundant basic blocks are inserted.
8. A computer storage medium having stored thereon a computer program, which when executed implements the opaque predicate-based code obfuscation method of any of claims 1-6.
CN202311734001.4A 2023-12-18 2023-12-18 Opaque predicate-based code confusion method, system and storage medium Active CN117436040B (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202311734001.4A CN117436040B (en) 2023-12-18 2023-12-18 Opaque predicate-based code confusion method, system and storage medium

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202311734001.4A CN117436040B (en) 2023-12-18 2023-12-18 Opaque predicate-based code confusion method, system and storage medium

Publications (2)

Publication Number Publication Date
CN117436040A CN117436040A (en) 2024-01-23
CN117436040B true CN117436040B (en) 2024-04-12

Family

ID=89551822

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202311734001.4A Active CN117436040B (en) 2023-12-18 2023-12-18 Opaque predicate-based code confusion method, system and storage medium

Country Status (1)

Country Link
CN (1) CN117436040B (en)

Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108446536A (en) * 2018-02-12 2018-08-24 北京梆梆安全科技有限公司 A kind of source code reinforcement means and device based on semiology analysis and single-point logic
CN108446542A (en) * 2018-02-12 2018-08-24 南京梆梆信息科技有限公司 A kind of source code based on semiology analysis obscures method and device
CN108537012A (en) * 2018-02-12 2018-09-14 北京梆梆安全科技有限公司 Source code based on variable and code execution sequence obscures method and device
CN109409036A (en) * 2018-09-19 2019-03-01 苏州创旅天下信息技术有限公司 Control stream based on redundant code obscures method and device, storage medium and terminal
CN112733193A (en) * 2021-01-22 2021-04-30 福州大学 Auditable anonymity predicate retrieval system and method based on time control
CN115017516A (en) * 2022-06-02 2022-09-06 电子科技大学 Fuzzy test method based on symbolic execution
CN116126335A (en) * 2022-11-21 2023-05-16 中国人民解放军战略支援部队信息工程大学 Opaque predicate code confusion device and method based on floating point number type conversion and operation

Patent Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108446536A (en) * 2018-02-12 2018-08-24 北京梆梆安全科技有限公司 A kind of source code reinforcement means and device based on semiology analysis and single-point logic
CN108446542A (en) * 2018-02-12 2018-08-24 南京梆梆信息科技有限公司 A kind of source code based on semiology analysis obscures method and device
CN108537012A (en) * 2018-02-12 2018-09-14 北京梆梆安全科技有限公司 Source code based on variable and code execution sequence obscures method and device
CN109409036A (en) * 2018-09-19 2019-03-01 苏州创旅天下信息技术有限公司 Control stream based on redundant code obscures method and device, storage medium and terminal
CN112733193A (en) * 2021-01-22 2021-04-30 福州大学 Auditable anonymity predicate retrieval system and method based on time control
CN115017516A (en) * 2022-06-02 2022-09-06 电子科技大学 Fuzzy test method based on symbolic execution
CN116126335A (en) * 2022-11-21 2023-05-16 中国人民解放军战略支援部队信息工程大学 Opaque predicate code confusion device and method based on floating point number type conversion and operation

Also Published As

Publication number Publication date
CN117436040A (en) 2024-01-23

Similar Documents

Publication Publication Date Title
Warga Optimal control of differential and functional equations
Berman Relationship between density and deterministic complexity of MP-complete languages
Larson The stationary tower: Notes on a course by W. Hugh Woodin
Aydin et al. On the new sequence spaces which include the spaces c0 and c
Huang et al. Self-stabilizing depth-first token circulation on networks
CN104079304B (en) For handling the device and method of data
Yu et al. Symbolic string verification: Combining string analysis and size analysis
CN107632832B (en) Dalvik byte code oriented control flow confusion method
CN117436040B (en) Opaque predicate-based code confusion method, system and storage medium
Valk On the computational power of extended Petri nets
CN107437005A (en) A kind of Code obfuscation method and device based on the opaque predicate of chaos
Slaman et al. Algebraic aspects of the computably enumerable degrees.
Hirokawa et al. A new and formalized proof of abstract completion
Huffman A purely definitional universal domain
Kirchner Schematization of infinite sets of rewrite rules. Application to the divergence of completion processes
Zhou Symmetric graphs and flag graphs
Baier et al. The algebraic mu-calculus and MTBDDs
Dunaev Complexity of a special deobfuscation problem
Stanat A homomorphism theorem for weighted context-free grammars
Varpaaniemi On computing symmetries and stubborn sets
CN103399982A (en) Digital hardware circuit logical error diagnosis mechanism
CN117270878B (en) Constraint condition extraction method and device for program variables in program execution path
Mukund et al. Symbolic bisimulation using tabled constraint logic programming
CN114780920A (en) Non-size-constraint opaque predicate construction method and system and storage medium
Langille et al. Sequential vs. parallel complexity in simple gene assembly

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant