CN112256275A - Code obfuscation method, device, electronic device and medium - Google Patents

Code obfuscation method, device, electronic device and medium Download PDF

Info

Publication number
CN112256275A
CN112256275A CN202011141687.2A CN202011141687A CN112256275A CN 112256275 A CN112256275 A CN 112256275A CN 202011141687 A CN202011141687 A CN 202011141687A CN 112256275 A CN112256275 A CN 112256275A
Authority
CN
China
Prior art keywords
function
built
character string
source code
constant
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
CN202011141687.2A
Other languages
Chinese (zh)
Other versions
CN112256275B (en
Inventor
丁保增
王赛
王聪
吴烨
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Beijing ByteDance Network Technology Co Ltd
Original Assignee
Beijing ByteDance Network Technology Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Beijing ByteDance Network Technology Co Ltd filed Critical Beijing ByteDance Network Technology Co Ltd
Priority to CN202011141687.2A priority Critical patent/CN112256275B/en
Publication of CN112256275A publication Critical patent/CN112256275A/en
Application granted granted Critical
Publication of CN112256275B publication Critical patent/CN112256275B/en
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/40Transformation of program code
    • G06F8/41Compilation
    • G06F8/42Syntactic analysis
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/602Providing cryptographic facilities or services
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/64Protecting data integrity, e.g. using checksums, certificates or signatures

Abstract

The embodiment of the disclosure provides a code obfuscation method, a code obfuscation device, electronic equipment and a medium. The method comprises the following steps: the method comprises the steps of obtaining a source code file of a target application program, wherein the source code file comprises a preset built-in function, and the built-in function is used for selecting constant character strings to be confused in the source code file; determining a constant character string to be confused selected in the built-in function as a target constant character string in the process of compiling the source code file; and performing confusion processing on the target constant character string. The embodiment of the disclosure reduces the volume of the application program, improves the performance of the application program, and improves the user experience.

Description

Code obfuscation method, device, electronic device and medium
Technical Field
The present disclosure relates to the field of computer security technologies, and in particular, to a code obfuscation method, apparatus, electronic device, and medium.
Background
In the process of reversely cracking the application program, the reverse personnel usually need to locate the position of the key function, so how to protect the application program and increase the attack cost of the reverse personnel becomes an important problem.
In the prior art, source codes of an application program can be obfuscated to protect the application program and improve attack cost of reverse personnel. However, after the source code of the application program is obfuscated, the decrypted code needs to be inserted in an inline manner, which may increase the volume of the application program, and meanwhile, in the operation process, the obfuscated source code needs to be decrypted, which consumes a long time, affects the performance of the application program, and the user experience is poor.
Disclosure of Invention
The disclosure provides a code obfuscation method, a code obfuscation device, an electronic device and a medium, which can solve the technical problems of large size and poor performance of an application program.
In a first aspect, a code obfuscation method is provided, the method comprising:
acquiring a source code file of a target application program, wherein the source code file comprises a preset built-in function, and the built-in function is used for selecting a constant character string to be confused in the source code file;
in the process of compiling the source code file, determining a constant character string to be confused selected in a built-in function as a target constant character string;
and performing confusion processing on the target constant character string.
In a second aspect, there is provided a code obfuscation apparatus, comprising:
the system comprises an acquisition module, a processing module and a processing module, wherein the acquisition module is used for acquiring a source code file of a target application program, the source code file comprises a preset built-in function, and the built-in function is used for selecting a constant character string to be confused in the source code file;
the determining module is used for determining the constant character string to be confused selected in the built-in function as a target constant character string in the process of compiling the source code file;
and the confusion module is used for carrying out confusion processing on the target constant character string.
In a third aspect, an electronic device is provided, which includes:
one or more processors;
a memory;
one or more application programs, wherein the one or more application programs are stored in the memory and configured to be executed by the one or more processors, the one or more programs configured to: and executing the corresponding operation according to the code obfuscation method shown in the first aspect.
In a fourth aspect, there is provided a computer readable medium having stored thereon a computer program which, when executed by a processor, implements the code obfuscation method of the first aspect.
The technical scheme provided by the disclosure has the following beneficial effects:
the method comprises the steps of obtaining a source code file of a target application program, wherein the source code file comprises a preset built-in function, the built-in function is used for selecting a constant character string to be obfuscated in the source code file, and in the process of compiling the source code file, the constant character string to be obfuscated selected in the built-in function is determined to serve as a target constant character string, and obfuscating the target constant character string. Because the target constant character strings in the built-in function of the source code file are subjected to obfuscation processing, the code amount needing to be obfuscated can be reduced, on one hand, codes needing to be inserted for decryption are reduced, the size of an application program is reduced, on the other hand, the time consumption of the decryption process is reduced during operation, the performance of the application program is improved, and the user experience is improved.
Drawings
The above and other features, advantages and aspects of various embodiments of the present disclosure will become more apparent by referring to the following detailed description when taken in conjunction with the accompanying drawings. Throughout the drawings, the same or similar reference numbers refer to the same or similar elements. It should be understood that the drawings are schematic and that elements and features are not necessarily drawn to scale.
Fig. 1 is a schematic flowchart of a code obfuscation method according to an embodiment of the present disclosure;
fig. 2 is a schematic structural diagram of a code obfuscating apparatus according to an embodiment of the present disclosure;
fig. 3 is a schematic structural diagram of an electronic device according to an embodiment of the present disclosure.
Detailed Description
Embodiments of the present disclosure will be described in more detail below with reference to the accompanying drawings. While certain embodiments of the present disclosure are shown in the drawings, it is to be understood that the present disclosure may be embodied in various forms and should not be construed as limited to the embodiments set forth herein, but rather are provided for a more thorough and complete understanding of the present disclosure. It should be understood that the drawings and embodiments of the disclosure are for illustration purposes only and are not intended to limit the scope of the disclosure.
It should be understood that the various steps recited in the method embodiments of the present disclosure may be performed in a different order, and/or performed in parallel. Moreover, method embodiments may include additional steps and/or omit performing the illustrated steps. The scope of the present disclosure is not limited in this respect.
The term "include" and variations thereof as used herein are open-ended, i.e., "including but not limited to". The term "based on" is "based, at least in part, on". The term "one embodiment" means "at least one embodiment"; the term "another embodiment" means "at least one additional embodiment"; the term "some embodiments" means "at least some embodiments". Relevant definitions for other terms will be given in the following description.
It should be noted that the terms "first", "second", and the like in the present disclosure are only used for distinguishing the devices, modules or units, and are not used for limiting the devices, modules or units to be different devices, modules or units, and also for limiting the sequence or interdependence relationship of the functions executed by the devices, modules or units.
It is noted that references to "a", "an", and "the" modifications in this disclosure are intended to be illustrative rather than limiting, and that those skilled in the art will recognize that "one or more" may be used unless the context clearly dictates otherwise.
The names of messages or information exchanged between devices in the embodiments of the present disclosure are for illustrative purposes only, and are not intended to limit the scope of the messages or information.
The following describes the technical solutions of the present disclosure and how to solve the above technical problems in specific embodiments. The following several specific embodiments may be combined with each other, and details of the same or similar concepts or processes may not be repeated in some embodiments. Embodiments of the present disclosure will be described below with reference to the accompanying drawings.
The embodiment of the present disclosure provides a code obfuscating method, which may be executed by an electronic device, where the electronic device may be a terminal device such as a mobile terminal, a desktop computer, a notebook computer, or the like, or a server, as shown in fig. 1, and the method includes steps S101 to S103.
Step S101, acquiring a source code file of the target application program.
The source code file comprises a pre-configured built-in function, and the built-in function is used for selecting constant character strings to be obfuscated in the source code file.
In the embodiment of the present disclosure, a compiler may be preset in the electronic device, and the compiler executes step S101 to step S103.
The compiler may be a bottom-Level Virtual Machine (LLVM), the LLVM includes a compiler front end and a compiler back end, the compiler front end is Clang, and may perform lexical and syntactic analysis on a source code file to generate an Abstract Syntax Tree (AST), and convert the AST into an Intermediate Representation (IR), and the compiler back end may convert the IR into a binary code, that is, an executable program corresponding to the source code file.
In the embodiment of the present disclosure, at least one built-in function preconfigured in the source code file may be the same function, or may be a different function. For example, the function name of at least one built-in function may be __ build _ str _ object. Of course, any two of the at least one built-in function may be the same function or different functions, for example, the function names of the built-in functions may be different.
It should be noted that, the classification is performed according to the function name of at least one built-in function, and various types of built-in functions may be predefined in the compiler. In particular, various types of built-in functions may be predefined in the compiler front-end. For example, the following built-in function is predefined in Clang:
BUILTIN(__builtin_str_obfuscation,"c*c*","")
wherein, the BUILTIN characterization function __ BUILTIN _ str _ obfustation is a built-in function of the compiler; __ build _ str _ object is the function name of the built-in function; "c × c" characterizes the type of the input parameter of the function __ build _ str _ obfuscation as char, and the type of the return value is also char; "" characterizes the attribute of the function __ build _ str _ object, and is set to null here.
Correspondingly, the source code file may also define various built-in functions in advance, for example, the following built-in functions may be defined in advance in the source code file:
char*__builtin_str_obfuscation(char*)
wherein, the first char characterization function __ build _ str _ obfuscation parameter type is char; the second char characterizes __ build _ str _ obfuscation with the returned value type char; __ build _ str _ object is the function name of the built-in function.
By predefining various built-in functions in the source code file, when the source code file is written, the constant character strings to be obfuscated can be protected by using the predefined built-in functions, namely the built-in functions are used for selecting at least one constant character string to be obfuscated in the source code file, so that the obtained source code file comprises at least one built-in function which is configured in advance, and the parameters of the built-in functions comprise at least one constant character string to be obfuscated which is selected in advance from the source code file.
For example, source code that does not use built-in functions to protect constant strings to be obfuscated is as follows:
printf("%s","import_string");
wherein printf is a formatting output function; "% s" indicates that the character string itself is output without conversion; "import _ string" is a constant string to be obfuscated.
The source code for protecting the constant string to be obfuscated by using the built-in function is as follows:
printf("%s",__builtin_str_obfuscation("import_string"))
wherein printf is a formatting output function; "% s" indicates that the character string itself is output without conversion; __ build _ str _ object is the function name of the built-in function; "import _ string" is a constant string to be obfuscated.
Similarly, in the above manner, a built-in function may be called for each constant string to be obfuscated to protect each constant string to be obfuscated by using the built-in function, for example, "import _ string" in the above code is the constant string to be obfuscated.
And step S102, determining the constant character string to be confused selected in the built-in function as a target constant character string in the process of compiling the source code file.
In the embodiment of the disclosure, at least one built-in function in a source code file can be identified first by compiling the source code file, and each target constant character string in the built-in function can be identified for each built-in function.
For example, if the source code file includes printf ("% s", __ build _ str _ animation ("import _ string")), the source code file may be compiled to identify the built-in function __ build _ str _ animation, then identify the constant string "import _ string" to be obfuscated in the built-in function, and use "import _ string" as the target constant string.
In step S103, the target constant string is subjected to obfuscation processing.
In the embodiment of the present disclosure, a preset encryption algorithm may be used to encrypt each target constant string, where the encryption process is also referred to as obfuscation process.
Compared with the prior art, the code obfuscating method includes the steps that a source code file of a target application program is obtained, the source code file comprises a preset built-in function, the built-in function is used for selecting constant character strings to be obfuscated in the source code file, the selected constant character strings to be obfuscated in the built-in function are determined to serve as target constant character strings in the process of compiling the source code file, and obfuscating is conducted on the target constant character strings. Because the target constant character strings in the built-in function of the source code file are subjected to obfuscation processing, the code amount needing to be obfuscated can be reduced, on one hand, codes needing to be inserted for decryption are reduced, the size of an application program is reduced, on the other hand, the time consumption of the decryption process is reduced during operation, the performance of the application program is improved, and the user experience is improved.
In another possible implementation manner of the embodiment of the present application, step S103, performing obfuscation processing on the target constant string may specifically include: encrypting the target constant character string by using the key to obtain ciphertext information; and replacing the target constant character string with ciphertext information.
Specifically, for each target constant string, the target constant string may be encrypted by using a key to obtain ciphertext information, and the obtained ciphertext information may be used to replace the target constant string.
In specific implementation, a storage space may be allocated in the global variable region to store the ciphertext information. The ciphertext information may be represented by the variable global _ ciphertext, the key by the constant _ key, and the target constant string by the variable origin _ text. For each target constant character string, after the target constant character string is encrypted, the original origin _ text can be replaced by the obtained global _ ciphertext, that is, the target constant character string is replaced by the obtained ciphertext information.
Of course, when the target constant string is replaced with the obtained ciphertext information, the decryption function may be inserted first, and then the target constant string may be replaced with the obtained ciphertext information.
In specific implementation, when the original origin _ text is replaced by the obtained global _ ciphertext, a storage space may be allocated in a stack space of a function using the variable origin _ text to store the decrypted plaintext, and the variable local _ plaintext may be used to represent the decrypted plaintext. Inserting a decryption function in or before or after a function using origin _ text, then replacing the use of origin _ text with local _ clear, then deleting origin _ text, and replacing the original local _ clear with the resulting global _ ciphertext, wherein local _ clear is the same as origin _ text.
Correspondingly, when the electronic device wants to run the obfuscated source code file, the electronic device needs to decrypt the ciphertext information by using the key to obtain a decrypted constant character string, and replace the ciphertext information with the decrypted constant character string.
It should be noted that the decryption step may be executed in the electronic device that executes the encryption step, that is, the decryption step may be executed in the execution subject of the embodiment of the present application, and may also be executed in other electronic devices. In other words, after obfuscating the target constant string in the source code file, any electronic device that wants to run the obfuscated source code file needs to perform the decryption step.
During running, each ciphertext message can be decrypted by using the inserted decryption function, so that a decrypted constant character string, namely a target constant character string, is obtained. Specifically, for each ciphertext message, the ciphertext message is decrypted by using the key to obtain a target constant character string, and the ciphertext message is replaced by using the obtained target constant character string.
In a specific implementation, the decryption function may decrypt global _ ciphertext by using the const _ key to obtain the decrypted plaintext, and store the decrypted plaintext into local _ plaintext.
In another possible implementation manner of the embodiment of the present disclosure, the header file of the source code file includes a preconfigured macro function, and the macro function is used to define a built-in function.
In other words, a header file of the source code file defines a macro function corresponding to the built-in function, and parameters of the macro function include at least one constant character string to be obfuscated, which is pre-selected from the source code file.
In the embodiment of the disclosure, the macro function corresponding to the built-in function can be defined in the header file of the source code file, and when the built-in function is used, the macro function can be directly used for protecting the constant character string to be confused. The function is required to be defined in advance when each function in the source code file is used, the built-in function is defined in the header file, the built-in function can be defined only once, codes required by the built-in function are reduced, the volume of the source code file is effectively reduced, the macro function is used for protecting constant character strings to be confused, and calling of the built-in function tends to be simplified.
For example, a header file may be added to the source code file, and the following built-in function may be defined in the header file:
#if__has_builtin(__builtin_str_obfuscation)
#ifndef OBF
#define OBF__builtin_str_obfuscation
#endif
#else
#ifndef OBF
#define OBF
#endif
#endif
as can be known from the definition of the built-in function, the macro function corresponding to the built-in function __ build _ str _ obfuscation is OBF.
When the constant character strings to be obfuscated are protected by the built-in function, the constant character strings to be obfuscated may be protected by the macro function.
For example, for printf ("% s", __ build _ str _ optimization "), the code protects the constant string" import _ string "to be obfuscated using built-in function __ build _ str _ optimization. When a macro function OBF corresponding to a built-in function is defined in a header file of a source code file, the code may be printf ("% s", OBF ("import _ string")), and the macro function OBF is used in the code to protect a constant character string "import _ string" to be obfuscated.
In another possible implementation manner of the embodiment of the present disclosure, in step S102, in the process of compiling the source code file, determining the constant character string to be obfuscated selected from the built-in function may specifically include step S1021 and step S1022.
Step S1021, in the process of compiling the source code file, an abstract syntax tree is obtained, and each node in the abstract syntax tree represents each function in the source code file.
Step S1022, for each node in the abstract syntax tree, if the node is a node corresponding to the built-in function, determining the constant character string to be obfuscated selected from the built-in function for the node.
In the embodiment of the present disclosure, the compiler front-end may perform compilation processing on a source code file to obtain AST, where AST is an abstract representation of a syntax structure of the source code, and represents the syntax structure of a programming language in a tree form, and each node on the tree represents a structure in the source code. In the embodiment of the disclosure, each node on the AST corresponds to each function in the source code file.
In the embodiment of the present disclosure, in the process of converting AST into IR, each node on AST may be traversed sequentially, and for a currently traversed node, if a function corresponding to the currently traversed node includes a function name of a built-in function, the currently traversed node is a node corresponding to the built-in function, and each constant character string to be obfuscated in the built-in function may be identified.
For example, the function corresponding to the currently traversed node includes the function name __ of the built-in function, and then the currently traversed node is the node corresponding to __ build _ str _ optimization, and each constant string to be obfuscated in __ build _ str _ optimization can be identified, for example, the constant string "import _ string" to be obfuscated in __ build _ str _ optimization can be identified.
In another possible implementation manner of the embodiment of the present disclosure, in step S102, determining the constant character string to be obfuscated selected from the built-in function may specifically include step S1023.
In step S1023, for each built-in function in the at least one built-in function, the constant character string to be obfuscated in the built-in function is identified according to the expression form of the built-in function in the compiling process.
It should be noted that, in step S1023, a specific implementation manner of the constant character string to be obfuscated selected in the determination of the built-in function in step S1022 may also be that the constant character string to be obfuscated in the built-in function is determined, and specifically, the constant character string to be obfuscated in the built-in function may be identified according to an expression form of the built-in function in a compiling process.
Specifically, in step S102, determining the selected constant character string to be obfuscated in the built-in function may specifically include step S1024 and step S1025. Step S1024 and step S1025 may also be a specific implementation manner of "identifying the constant character string to be obfuscated in the built-in function" in step S1023.
Step S1024, if the type of the parameter of the built-in function is a constant expression, determining a target operand from the expression form corresponding to the constant expression of the parameter.
In the embodiment of the present disclosure, if the type of the parameter of the built-in function is a constant expression, the parameter is converted into an expression form corresponding to the constant expression.
In the embodiment of the present disclosure, the constant expression is ConstantExpr, and if the type of the parameter of the built-in function is ConstantExpr, the parameter is converted into an expression form corresponding to ConstantExpr. For example, the parameters may be converted to a representation corresponding to ConstantExpr as shown below:
i8*getelementptr inbounds([7x i8],[7x i8]*@.str,i32 0,i32 0)
the expression form corresponding to ConstantExpr includes three operands, which are @. str, 0 and 0, respectively, and the three operands are [7x i8], [7x i8], i32 and i32, respectively. In the embodiment of the present disclosure, only these three operands and their respective corresponding types may be focused, and the rest are not focused and will not be further described herein.
When a constant string is used in IR, it exists in a form corresponding to the constant expression ConstantExpr.
Further, a target operand may be identified from the translated parameter.
In the embodiment of the present disclosure, for the translated parameter, the target operand may be identified in each operand of the translated parameter.
For example, for i8 × getelementptr entries ([7x i8], [7x i8] × @. str, i 320, i 320), from the three operands of the converted parameter @. str, 0 and 0, the target operand @. str can be identified.
When identifying the target operand from the converted parameter, the operand at a predetermined position in the converted parameter may be used as the target operand, for example, the first operand @. str of the converted parameter may be used as the target operand; the type corresponding to the target operand can also be determined from the types of the operands, and the operand corresponding to the determined type is used as the target operand, for example, the type of the target operand is determined to be [7x i8], [7x i8] from the types [7x i8], [7x i8], i32 and i32 of three operands, so as to determine the operand @.str corresponding to [7x i8], [7x i8] as the target operand; other ways of identifying the target operand may also exist and are not exhaustive.
Step S1025, if the type of the target operand is a global variable, determining a constant character string from the representation corresponding to the global variable of the target operand, as the constant character string to be obfuscated.
In the embodiment of the disclosure, the constant character string to be obfuscated in the built-in function, i.e. the target constant character string, may be determined based on the target operand. Specifically, the method comprises the following steps:
and if the type of the target operand is a global variable, converting the target operand into a representation form corresponding to the global variable.
In the embodiment of the present disclosure, the global variable is GlobalVariable, and if the type of the target operand is GlobalVariable, the target operand is converted into an expression form corresponding to GlobalVariable. For example, the target operand @. str may be converted to the corresponding representation of GlobalVariable as shown below:
@.str=private unnamed_addr constant[7x i8]c"hello\0A\00",align 1
the expression form corresponding to the GlobalVariable is the expression form of the constant character string hello in the IR, and the constant character string exists in the IR in the form of the global variable GlobalVariable.
Further, a target constant string is identified from the translated target operand.
In the embodiment of the present disclosure, the target constant string may be identified from the converted target operand, for example, the target constant string hello may be identified from @.str ═ private unamed _ addr constant [7x i8] c "hello \0A \00", and align 1.
In another possible implementation manner of the embodiment of the present disclosure, the code obfuscating method provided by the embodiment of the present disclosure may further include step S104.
And step S104, after the constant character string to be obfuscated is determined, adding a mark to be obfuscated to the constant character string to be obfuscated.
In the embodiment of the present disclosure, adding a to-be-obfuscated tag to a to-be-obfuscated constant string may be adding an addAttribute to the to-be-obfuscated constant string, that is, the to-be-obfuscated tag may be an obfuscated attribute, where the to-be-obfuscated constant string may also be referred to as a target constant string. Specifically, after each target constant string is identified, a confusion attribute may be added to the target constant string, where the confusion attribute serves as a flag to be confused about the target constant string, and then the parameter of the built-in function is returned.
For example, the obfuscated attribute "str _ obf" may be added to the target constant string hello and parameters of the built-in function returned.
Then, in step S103, the obfuscating process is performed on the target constant string, which may specifically include step S1031.
And step S1031, performing obfuscation processing on the constant character string with the mark to be obfuscated.
In the embodiment of the present disclosure, each target constant string with a mark to be obfuscated may be encrypted, for example, the target constant string with the obfuscation attribute "str _ obf" may be encrypted. The encryption processing method can be described in detail in the related description of the above embodiments, and is not described herein again.
To further understand the technical solution of the present disclosure, the following provides a pseudo code, which is as follows:
if (function is __ build _ str _ obfuscation) containing image
Obtaining the parameters of the function, and storing the parameters into a variable Arg0
if (Arg0 type ConstantExpr) final gesture
Arg0 was converted to the corresponding representation of ConstantExpr and stored in the variable CE.
The first operand of the variable CE is obtained and stored in the variable Op.
if (Op is a global variable) data
And converting the Op into a representation form corresponding to Globalvariable and storing the representation form into a variable GV.
Identify the target constant string from GV and add the obfuscated attribute "str _ obf" }
Return to Arg0}
According to the codes, when the node traversed currently (the node corresponds to a function) is detected to be the node corresponding to the built-in function __ build _ str _ obfustation, namely the function is __ build _ str _ obfustation, the parameter of the function is obtained from the function and stored into the variable Arg0, and the Arg0 is used for representing the parameter of the built-in function; if the type of the Arg0 is ConstantExpr, converting the Arg0 into a corresponding expression form of the ConstantExpr, storing the expression form into a variable CE, representing the converted Arg0 by the CE, acquiring a first operand of the variable CE, storing the first operand into a variable Op, and representing a target operand by the Op; if the type of the Op is global variable GlobalVariable, converting the Op into a representation form corresponding to the GlobalVariable, storing the representation form into a variable GV, representing the converted Op by using the GV, identifying a target constant character string from the GV, adding an confusion attribute 'str _ obf', and returning to Arg 0.
The above method specifically explains the code obfuscation method from the perspective of method steps, and the following introduces a code obfuscation apparatus from the perspective of a virtual module, as follows:
the disclosed embodiment provides a code obfuscation apparatus, as shown in fig. 2, the code obfuscation apparatus 20 may include: an acquisition module 201, a determination module 202, and an obfuscation module 203, wherein,
the obtaining module 201 is configured to obtain a source code file of a target application, where the source code file includes a pre-configured built-in function, and the built-in function is used to select a constant character string to be obfuscated in the source code file.
The determining module 202 is configured to determine, in the process of compiling the source code file, a constant character string to be obfuscated selected in the built-in function as a target constant character string.
And the obfuscating module 203 is used for obfuscating the target constant character string.
In another possible implementation manner of the embodiment of the present disclosure, the determining module 202 is specifically configured to:
in the process of compiling the source code file, acquiring an abstract syntax tree, wherein each node in the abstract syntax tree represents each function in the source code file;
and aiming at each node in the abstract syntax tree, if the node is the node corresponding to the built-in function, determining the constant character string to be confused selected in the built-in function aiming at the node.
In another possible implementation manner of the embodiment of the present disclosure, when determining the constant character string to be obfuscated selected from the built-in function, the determining module 202 is specifically configured to:
when the type of the parameter of the built-in function is a constant expression, determining a target operand from the expression form corresponding to the constant expression of the parameter;
and when the type of the target operand is the global variable, determining the constant character string from the expression form corresponding to the global variable of the target operand, and taking the constant character string as the constant character string to be obfuscated.
In another possible implementation manner of the embodiment of the present disclosure, the code obfuscating apparatus 20 further includes an adding module, wherein,
the adding module is used for adding the constant character string to be obfuscated with the mark to be obfuscated after the constant character string to be obfuscated is determined;
the obfuscation module 203 is specifically configured to:
and carrying out obfuscation processing on the constant character strings with the marks to be obfuscated.
In another possible implementation manner of the embodiment of the present disclosure, the header file of the source code file includes a preconfigured macro function, and the macro function is used to define the built-in function.
In another possible implementation manner of the embodiment of the present disclosure, the obfuscating module 203 is specifically configured to:
encrypting the target constant character string by using the key to obtain ciphertext information;
and replacing the target constant character string with ciphertext information.
The code obfuscating apparatus 20 according to the embodiment of the disclosure may perform the code obfuscating method according to any one of the above embodiments of the disclosure, and the implementation principle is similar, and will not be described herein again.
Compared with the prior art, the code obfuscating device provided by the embodiment of the disclosure performs obfuscation processing on a target constant character string by acquiring a source code file of a target application program, wherein the source code file comprises a pre-configured built-in function, the built-in function is used for selecting a constant character string to be obfuscated in the source code file, and in the process of compiling the source code file, the constant character string to be obfuscated selected in the built-in function is determined and used as the target constant character string. Because the target constant character strings in the built-in function of the source code file are subjected to obfuscation processing, the code amount needing to be obfuscated can be reduced, on one hand, codes needing to be inserted for decryption are reduced, the size of an application program is reduced, on the other hand, the time consumption of the decryption process is reduced during operation, the performance of the application program is improved, and the user experience is improved.
The code obfuscating apparatus of the present disclosure is described above from the perspective of a virtual module, and the electronic device of the present disclosure is described below from the perspective of a physical apparatus.
Referring now to fig. 3, a schematic diagram of an electronic device (e.g., the terminal device or the server of fig. 1) 300 suitable for implementing embodiments of the present disclosure is shown. Wherein, this electronic equipment 300 includes:
one or more processors;
a memory;
one or more application programs, wherein the one or more application programs are stored in the memory and configured to be executed by the one or more processors, the one or more programs configured to: a code obfuscation method shown according to a method embodiment is performed.
The terminal device in the embodiments of the present disclosure may include, but is not limited to, a mobile terminal such as a mobile phone, a notebook computer, a digital broadcast receiver, a PDA (personal digital assistant), a PAD (tablet computer), a PMP (portable multimedia player), a vehicle terminal (e.g., a car navigation terminal), and the like, and a stationary terminal such as a digital TV, a desktop computer, and the like. The electronic device shown in fig. 3 is only an example, and should not bring any limitation to the functions and the scope of use of the embodiments of the present disclosure.
The electronic device includes: a memory and a processor, wherein the processor may be referred to as a processing device 301 described below, and the memory may include at least one of a Read Only Memory (ROM)302, a Random Access Memory (RAM)303, and a storage device 308, which are described below:
as shown in fig. 3, the electronic device 300 may include a processing means (e.g., a central processing unit, a graphics processor, etc.) 301 that may perform various appropriate actions and processes in accordance with a program stored in a Read Only Memory (ROM)302 or a program loaded from a storage means 308 into a Random Access Memory (RAM) 303. In the RAM 303, various programs and data necessary for the operation of the electronic apparatus 300 are also stored. The processing device 301, the ROM 302, and the RAM 303 are connected to each other via a bus 304. An input/output (I/O) interface 305 is also connected to bus 304.
Generally, the following devices may be connected to the I/O interface 305: input devices 306 including, for example, a touch screen, touch pad, keyboard, mouse, camera, microphone, accelerometer, gyroscope, etc.; an output device 307 including, for example, a Liquid Crystal Display (LCD), a speaker, a vibrator, and the like; storage devices 308 including, for example, magnetic tape, hard disk, etc.; and a communication device 309. The communication means 309 may allow the electronic device 300 to communicate wirelessly or by wire with other devices to exchange data. While fig. 3 illustrates an electronic device 300 having various means, it is to be understood that not all illustrated means are required to be implemented or provided. More or fewer devices may alternatively be implemented or provided.
In particular, according to an embodiment of the present disclosure, the processes described above with reference to the flowcharts may be implemented as computer software programs. For example, embodiments of the present disclosure include a computer program product comprising a computer program carried on a non-transitory computer readable medium, the computer program containing program code for performing the method illustrated by the flow chart. In such an embodiment, the computer program may be downloaded and installed from a network through the communication means 309, or installed from the storage means 308, or installed from the ROM 302. The computer program, when executed by the processing device 301, performs the above-described functions defined in the methods of the embodiments of the present disclosure.
It should be noted that the computer readable medium in the present disclosure can be a computer readable signal medium or a computer readable storage medium or any combination of the two. A computer readable storage medium may be, for example, but not limited to, an electronic, magnetic, optical, electromagnetic, infrared, or semiconductor system, apparatus, or device, or any combination of the foregoing. More specific examples of the computer readable storage medium may include, but are not limited to: an electrical connection having one or more wires, a portable computer diskette, a hard disk, a Random Access Memory (RAM), a read-only memory (ROM), an erasable programmable read-only memory (EPROM or flash memory), an optical fiber, a portable compact disc read-only memory (CD-ROM), an optical storage device, a magnetic storage device, or any suitable combination of the foregoing. In the present disclosure, a computer readable storage medium may be any tangible medium that can contain, or store a program for use by or in connection with an instruction execution system, apparatus, or device. In contrast, in the present disclosure, a computer readable signal medium may comprise a propagated data signal with computer readable program code embodied therein, either in baseband or as part of a carrier wave. Such a propagated data signal may take many forms, including, but not limited to, electro-magnetic, optical, or any suitable combination thereof. A computer readable signal medium may also be any computer readable medium that is not a computer readable storage medium and that can communicate, propagate, or transport a program for use by or in connection with an instruction execution system, apparatus, or device. Program code embodied on a computer readable medium may be transmitted using any appropriate medium, including but not limited to: electrical wires, optical cables, RF (radio frequency), etc., or any suitable combination of the foregoing.
In some embodiments, the clients, servers may communicate using any currently known or future developed network Protocol, such as HTTP (HyperText Transfer Protocol), and may interconnect with any form or medium of digital data communication (e.g., a communications network). Examples of communication networks include a local area network ("LAN"), a wide area network ("WAN"), the Internet (e.g., the Internet), and peer-to-peer networks (e.g., ad hoc peer-to-peer networks), as well as any currently known or future developed network.
The computer readable medium may be embodied in the electronic device; or may exist separately without being assembled into the electronic device.
The computer readable medium carries one or more programs which, when executed by the electronic device, cause the electronic device to: the method comprises the steps of obtaining a source code file of a target application program, wherein the source code file comprises a preset built-in function, and the built-in function is used for selecting constant character strings to be confused in the source code file; determining a constant character string to be confused selected in the built-in function as a target constant character string in the process of compiling the source code file; and performing confusion processing on the target constant character string.
Computer program code for carrying out operations for the present disclosure may be written in any combination of one or more programming languages, including but not limited to an object oriented programming language such as Java, Smalltalk, C + +, and conventional procedural programming languages, such as the "C" programming language or similar programming languages. The program code may execute entirely on the user's computer, partly on the user's computer, as a stand-alone software package, partly on the user's computer and partly on a remote computer or entirely on the remote computer or server. In the case of a remote computer, the remote computer may be connected to the user's computer through any type of network, including a Local Area Network (LAN) or a Wide Area Network (WAN), or the connection may be made to an external computer (for example, through the Internet using an Internet service provider).
The flowchart and block diagrams in the figures illustrate the architecture, functionality, and operation of possible implementations of systems, methods and computer program products according to various embodiments of the present disclosure. In this regard, each block in the flowchart or block diagrams may represent a module, segment, or portion of code, which comprises one or more executable instructions for implementing the specified logical function(s). It should also be noted that, in some alternative implementations, the functions noted in the block may occur out of the order noted in the figures. For example, two blocks shown in succession may, in fact, be executed substantially concurrently, or the blocks may sometimes be executed in the reverse order, depending upon the functionality involved. It will also be noted that each block of the block diagrams and/or flowchart illustration, and combinations of blocks in the block diagrams and/or flowchart illustration, can be implemented by special purpose hardware-based systems which perform the specified functions or acts, or combinations of special purpose hardware and computer instructions.
The modules or units described in the embodiments of the present disclosure may be implemented by software or hardware. Where the name of a module or unit does not in some cases constitute a limitation on the unit itself, for example, an acquisition module may also be described as a "module that acquires a source code file of a target application".
The functions described herein above may be performed, at least in part, by one or more hardware logic components. For example, without limitation, exemplary types of hardware logic components that may be used include: field Programmable Gate Arrays (FPGAs), Application Specific Integrated Circuits (ASICs), Application Specific Standard Products (ASSPs), systems on a chip (SOCs), Complex Programmable Logic Devices (CPLDs), and the like.
In the context of this disclosure, a machine-readable medium may be a tangible medium that can contain, or store a program for use by or in connection with an instruction execution system, apparatus, or device. The machine-readable medium may be a machine-readable signal medium or a machine-readable storage medium. A machine-readable medium may include, but is not limited to, an electronic, magnetic, optical, electromagnetic, infrared, or semiconductor system, apparatus, or device, or any suitable combination of the foregoing. More specific examples of a machine-readable storage medium would include an electrical connection based on one or more wires, a portable computer diskette, a hard disk, a Random Access Memory (RAM), a read-only memory (ROM), an erasable programmable read-only memory (EPROM or flash memory), an optical fiber, a portable compact disc read-only memory (CD-ROM), an optical storage device, a magnetic storage device, or any suitable combination of the foregoing.
The disclosed embodiment provides an electronic device, and the electronic device in the disclosed embodiment includes: a memory and a processor; at least one program stored in the memory for execution by the processor, which when executed by the processor, implements: the method comprises the steps of obtaining a source code file of a target application program, wherein the source code file comprises a preset built-in function, the built-in function is used for selecting constant character strings to be obfuscated in the source code file, in the process of compiling the source code file, the constant character strings to be obfuscated selected in the built-in function are determined and used as target constant character strings, and obfuscating the target constant character strings. Because the target constant character strings in the built-in function of the source code file are subjected to obfuscation processing, the code amount needing to be obfuscated can be reduced, on one hand, codes needing to be inserted for decryption are reduced, the size of an application program is reduced, on the other hand, the time consumption of the decryption process is reduced during operation, the performance of the application program is improved, and the user experience is improved.
The electronic device of the present disclosure is described above from the perspective of a physical apparatus, and the computer-readable medium of the present disclosure is described below from the perspective of a medium.
The embodiment of the present disclosure provides a computer-readable medium, on which a computer program is stored, which, when running on a computer, enables the computer to execute the corresponding content in the foregoing method embodiments. Compared with the prior art, the method comprises the steps of obtaining a source code file of a target application program, wherein the source code file comprises a preset built-in function, the built-in function is used for selecting the constant character strings to be confused in the source code file, the constant character strings to be confused selected in the built-in function are determined and used as the target constant character strings in the process of compiling the source code file, and the target constant character strings are obfuscated. Because the target constant character strings in the built-in function of the source code file are subjected to obfuscation processing, the code amount needing to be obfuscated can be reduced, on one hand, codes needing to be inserted for decryption are reduced, the size of an application program is reduced, on the other hand, the time consumption of the decryption process is reduced during operation, the performance of the application program is improved, and the user experience is improved.
According to one or more embodiments of the present disclosure, there is provided a code obfuscation method including:
the method comprises the steps of obtaining a source code file of a target application program, wherein the source code file comprises a preset built-in function, and the built-in function is used for selecting constant character strings to be confused in the source code file;
determining a constant character string to be confused selected in the built-in function as a target constant character string in the process of compiling the source code file;
and performing confusion processing on the target constant character string.
According to one or more embodiments of the present disclosure, the determining a selected constant string to be obfuscated in the built-in function during the compiling of the source code file includes:
in the process of compiling the source code file, acquiring an abstract syntax tree, wherein each node in the abstract syntax tree represents each function in the source code file;
and for each node in the abstract syntax tree, if the node is the node corresponding to the built-in function, determining the constant character string to be confused selected from the built-in function for the node.
According to one or more embodiments of the present disclosure, the determining the constant character string to be obfuscated selected from the built-in function includes:
if the type of the parameter of the built-in function is a constant expression, determining a target operand from an expression form corresponding to the constant expression of the parameter;
and if the type of the target operand is a global variable, determining a constant character string from the expression form corresponding to the global variable of the target operand, and using the constant character string as the constant character string to be confused.
According to one or more embodiments of the present disclosure, the method further comprises:
after determining the constant character string to be obfuscated, adding a mark to be obfuscated to the constant character string to be obfuscated;
then, the obfuscating the target constant string includes:
and carrying out obfuscation processing on the constant character string with the mark to be obfuscated.
According to one or more embodiments of the present disclosure, a pre-configured macro function is included in a header file of the source code file, and the macro function is used for defining the built-in function.
According to one or more embodiments of the present disclosure, the obfuscating the target constant string includes:
encrypting the target constant character string by using a key to obtain ciphertext information;
and replacing the target constant character string with the ciphertext information.
According to one or more embodiments of the present disclosure, there is provided a code obfuscation apparatus including:
the system comprises an acquisition module, a processing module and a processing module, wherein the acquisition module is used for acquiring a source code file of a target application program, the source code file comprises a preset built-in function, and the built-in function is used for selecting constant character strings to be confused in the source code file;
the determining module is used for determining the constant character string to be confused selected in the built-in function as a target constant character string in the process of compiling the source code file;
and the confusion module is used for carrying out confusion processing on the target constant character string.
According to one or more embodiments of the present disclosure, the determining module is specifically configured to:
in the process of compiling the source code file, acquiring an abstract syntax tree, wherein each node in the abstract syntax tree represents each function in the source code file;
and for each node in the abstract syntax tree, if the node is the node corresponding to the built-in function, determining the constant character string to be confused selected from the built-in function for the node.
According to one or more embodiments of the present disclosure, when determining the constant character string to be obfuscated selected from the built-in function, the determining module is specifically configured to:
when the type of the parameter of the built-in function is a constant expression, determining a target operand from an expression form corresponding to the constant expression of the parameter;
and when the type of the target operand is a global variable, determining a constant character string from the expression form corresponding to the global variable of the target operand, wherein the constant character string is used as a constant character string to be obfuscated.
According to one or more embodiments of the present disclosure, the apparatus further comprises:
the adding module is used for adding a to-be-obfuscated mark to the to-be-obfuscated constant character string after the to-be-obfuscated constant character string is determined;
then, the obfuscation module is specifically configured to:
and carrying out obfuscation processing on the constant character string with the mark to be obfuscated.
According to one or more embodiments of the present disclosure, a pre-configured macro function is included in a header file of the source code file, and the macro function is used for defining the built-in function.
According to one or more embodiments of the present disclosure, the obfuscation module is specifically configured to:
encrypting the target constant character string by using a key to obtain ciphertext information;
and replacing the target constant character string with the ciphertext information.
According to one or more embodiments of the present disclosure, there is provided an electronic device including:
one or more processors;
a memory;
one or more applications, wherein the one or more applications are stored in the memory and configured to be executed by the one or more processors, the one or more programs configured to: a code obfuscation method shown according to a method embodiment is performed.
According to one or more embodiments of the present disclosure, there is provided a computer-readable medium having stored thereon a computer program which, when executed by a processor, implements a code obfuscation method as shown in method embodiments.
The foregoing description is only exemplary of the preferred embodiments of the disclosure and is illustrative of the principles of the technology employed. It will be appreciated by those skilled in the art that the scope of the disclosure herein is not limited to the particular combination of features described above, but also encompasses other embodiments in which any combination of the features described above or their equivalents does not depart from the spirit of the disclosure. For example, the above features and (but not limited to) the features disclosed in this disclosure having similar functions are replaced with each other to form the technical solution.
Further, while operations are depicted in a particular order, this should not be understood as requiring that such operations be performed in the particular order shown or in sequential order. Under certain circumstances, multitasking and parallel processing may be advantageous. Likewise, while several specific implementation details are included in the above discussion, these should not be construed as limitations on the scope of the disclosure. Certain features that are described in the context of separate embodiments can also be implemented in combination in a single embodiment. Conversely, various features that are described in the context of a single embodiment can also be implemented in multiple embodiments separately or in any suitable subcombination.
Although the subject matter has been described in language specific to structural features and/or methodological acts, it is to be understood that the subject matter defined in the appended claims is not necessarily limited to the specific features or acts described above. Rather, the specific features and acts described above are disclosed as example forms of implementing the claims.

Claims (9)

1. A code obfuscation method, comprising:
the method comprises the steps of obtaining a source code file of a target application program, wherein the source code file comprises a preset built-in function, and the built-in function is used for selecting constant character strings to be confused in the source code file;
determining a constant character string to be confused selected in the built-in function as a target constant character string in the process of compiling the source code file;
and performing confusion processing on the target constant character string.
2. The method of claim 1, wherein determining the selected constant strings to be obfuscated in the built-in function during the compiling of the source code file comprises:
in the process of compiling the source code file, acquiring an abstract syntax tree, wherein each node in the abstract syntax tree represents each function in the source code file;
and for each node in the abstract syntax tree, if the node is the node corresponding to the built-in function, determining the constant character string to be confused selected from the built-in function for the node.
3. The method of claim 1, wherein determining the selected constant string to be obfuscated in the built-in function comprises:
if the type of the parameter of the built-in function is a constant expression, determining a target operand from an expression form corresponding to the constant expression of the parameter;
and if the type of the target operand is a global variable, determining a constant character string from the expression form corresponding to the global variable of the target operand, and using the constant character string as the constant character string to be confused.
4. The method according to any one of claims 1-3, further comprising:
after determining the constant character string to be obfuscated, adding a mark to be obfuscated to the constant character string to be obfuscated;
then, the obfuscating the target constant string includes:
and carrying out obfuscation processing on the constant character string with the mark to be obfuscated.
5. The method according to any one of claims 1-3, wherein a pre-configured macro function is included in the header file of the source code file, and the macro function is used for defining the built-in function.
6. The method of claim 1, wherein obfuscating the target constant string comprises:
encrypting the target constant character string by using a key to obtain ciphertext information;
and replacing the target constant character string with the ciphertext information.
7. A code obfuscation apparatus, comprising:
the system comprises an acquisition module, a processing module and a processing module, wherein the acquisition module is used for acquiring a source code file of a target application program, the source code file comprises a preset built-in function, and the built-in function is used for selecting constant character strings to be confused in the source code file;
the determining module is used for determining the constant character string to be confused selected in the built-in function as a target constant character string in the process of compiling the source code file;
and the confusion module is used for carrying out confusion processing on the target constant character string.
8. An electronic device, comprising:
one or more processors;
a memory;
one or more applications, wherein the one or more applications are stored in the memory and configured to be executed by the one or more processors, the one or more programs configured to: performing a code obfuscation method as claimed in any one of claims 1 to 6.
9. A computer-readable medium, on which a computer program is stored, which program, when being executed by a processor, is adapted to carry out the code obfuscation method of any one of claims 1 to 6.
CN202011141687.2A 2020-10-22 2020-10-22 Code confusion method, device, electronic equipment and medium Active CN112256275B (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202011141687.2A CN112256275B (en) 2020-10-22 2020-10-22 Code confusion method, device, electronic equipment and medium

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202011141687.2A CN112256275B (en) 2020-10-22 2020-10-22 Code confusion method, device, electronic equipment and medium

Publications (2)

Publication Number Publication Date
CN112256275A true CN112256275A (en) 2021-01-22
CN112256275B CN112256275B (en) 2023-09-29

Family

ID=74263283

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202011141687.2A Active CN112256275B (en) 2020-10-22 2020-10-22 Code confusion method, device, electronic equipment and medium

Country Status (1)

Country Link
CN (1) CN112256275B (en)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113434148A (en) * 2021-06-30 2021-09-24 平安普惠企业管理有限公司 Decryption-preventing client development compiling method and device, electronic equipment and storage medium
CN115048623A (en) * 2022-04-01 2022-09-13 上海任意门科技有限公司 Method, computing device and storage medium for encrypting code
WO2023016481A1 (en) * 2021-08-13 2023-02-16 华为技术有限公司 Data processing method and related apparatus

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106326693A (en) * 2016-08-18 2017-01-11 广州优视网络科技有限公司 Obfuscation method and obfuscation device for application program code
CN110059455A (en) * 2019-04-09 2019-07-26 北京迈格威科技有限公司 Code encryption method, apparatus, electronic equipment and computer readable storage medium
CN110598379A (en) * 2019-09-23 2019-12-20 北京智游网安科技有限公司 Method, system, equipment and storage medium for implementing character string confusion

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106326693A (en) * 2016-08-18 2017-01-11 广州优视网络科技有限公司 Obfuscation method and obfuscation device for application program code
CN110059455A (en) * 2019-04-09 2019-07-26 北京迈格威科技有限公司 Code encryption method, apparatus, electronic equipment and computer readable storage medium
CN110598379A (en) * 2019-09-23 2019-12-20 北京智游网安科技有限公司 Method, system, equipment and storage medium for implementing character string confusion

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113434148A (en) * 2021-06-30 2021-09-24 平安普惠企业管理有限公司 Decryption-preventing client development compiling method and device, electronic equipment and storage medium
CN113434148B (en) * 2021-06-30 2024-03-22 广东迅维信息产业股份有限公司 Decryption-preventing client development compiling method and device, electronic equipment and storage medium
WO2023016481A1 (en) * 2021-08-13 2023-02-16 华为技术有限公司 Data processing method and related apparatus
CN115906014A (en) * 2021-08-13 2023-04-04 华为技术有限公司 Data processing method and related device
CN115048623A (en) * 2022-04-01 2022-09-13 上海任意门科技有限公司 Method, computing device and storage medium for encrypting code

Also Published As

Publication number Publication date
CN112256275B (en) 2023-09-29

Similar Documents

Publication Publication Date Title
US11520912B2 (en) Methods, media, apparatuses and computing devices of user data authorization based on blockchain
CN112256275B (en) Code confusion method, device, electronic equipment and medium
JP6960993B2 (en) Data sharing method between applications and web browser
CN110516462B (en) Method and apparatus for encrypting data
CN110008662B (en) Application program running method and device, electronic equipment and readable storage medium
EP3451627B1 (en) Gateway computer system with intermediate data processing according to rules that are specified by templates
CN109257162A (en) The method and apparatus of Encryption Algorithm whitepack
CN107103211A (en) SDK is sent, using issue, using operation method and device
CN112416303B (en) Software development kit hot repair method and device and electronic equipment
CN111666218B (en) Code auditing method, device, electronic equipment and medium
CN112671717A (en) Method for matching encrypted subscriptions with events
CN110765238A (en) Data encryption query method and device
CN114154123B (en) Encryption protection method applied to Python project
CN109657480A (en) A kind of document handling method, equipment and computer readable storage medium
CN112182603B (en) Anti-crawler method and device
CN114491421A (en) File encryption method, file processing method, file encryption device, file processing device, readable medium and electronic equipment
CN111143355B (en) Data processing method and device
CN111274551B (en) Compiler-based java code protection method and device and electronic equipment
CN110543772A (en) Offline decryption method and device
CN110492998A (en) The method of encryption and decryption data
CN113742774B (en) Data processing method and device, readable medium and electronic equipment
US20240104224A1 (en) Privacy-preserving search using homomorphic encryption
CN110619218B (en) Method and apparatus for generating information
CN109145206A (en) A kind of method, apparatus and equipment/terminal/server that news is shared
CN110858243A (en) Page acquisition method and device for gateway

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
CB02 Change of applicant information
CB02 Change of applicant information

Address after: 100041 B-0035, 2 floor, 3 building, 30 Shixing street, Shijingshan District, Beijing.

Applicant after: Douyin Vision Co.,Ltd.

Address before: 100041 B-0035, 2 floor, 3 building, 30 Shixing street, Shijingshan District, Beijing.

Applicant before: Tiktok vision (Beijing) Co.,Ltd.

Address after: 100041 B-0035, 2 floor, 3 building, 30 Shixing street, Shijingshan District, Beijing.

Applicant after: Tiktok vision (Beijing) Co.,Ltd.

Address before: 100041 B-0035, 2 floor, 3 building, 30 Shixing street, Shijingshan District, Beijing.

Applicant before: BEIJING BYTEDANCE NETWORK TECHNOLOGY Co.,Ltd.

GR01 Patent grant
GR01 Patent grant