CN108932407A - A kind of program safety guard method and device - Google Patents

A kind of program safety guard method and device Download PDF

Info

Publication number
CN108932407A
CN108932407A CN201810493964.2A CN201810493964A CN108932407A CN 108932407 A CN108932407 A CN 108932407A CN 201810493964 A CN201810493964 A CN 201810493964A CN 108932407 A CN108932407 A CN 108932407A
Authority
CN
China
Prior art keywords
function
program
called function
index
look
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
CN201810493964.2A
Other languages
Chinese (zh)
Other versions
CN108932407B (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 Qihoo Technology Co Ltd
Original Assignee
Beijing Qihoo 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 Qihoo Technology Co Ltd filed Critical Beijing Qihoo Technology Co Ltd
Priority to CN201810493964.2A priority Critical patent/CN108932407B/en
Publication of CN108932407A publication Critical patent/CN108932407A/en
Application granted granted Critical
Publication of CN108932407B publication Critical patent/CN108932407B/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

Landscapes

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

Abstract

The invention discloses a kind of program safety guard methods and device, this method to include:M called function is obtained from the source files of program that user edits;The look-up table of functions comprising M called function is established, M is the integer greater than 1;The function call instruction of called function each in M called function is replaced with into table lookup operation instruction, so as to obtain new program file, the table lookup operation instruction from look-up table of functions for obtaining current called function;Generate executable program file corresponding with new program file.

Description

A kind of program safety guard method and device
Technical field
The present invention relates to technical field of software development more particularly to a kind of program safety guard method and devices.
Background technique
The source files of program of high level language becomes executable program file by compiling, executes for machine, and anti- Compiling is its inverse process, executable program file can be obtained readable source files of program by decompiling.Computer software Reverse engineering (Reversepengineering) is also referred to as computer software reduction engineering, just refers to by other people softwares Executable program file carries out work such as " conversed analysis, researchs ", to derive thinking, original used in other people software product The design elements such as reason, structure, algorithm, treatment process, operation method, thus reference when as oneself exploitation software, Huo Zhezhi It connects in the software product for oneself.
Therefore, the software product of user institute independent development is easy to pass through computer software reverse engineering by rival, Decompiling and know thinking used in the software product, principle, structure, algorithm, treatment process, operation method, lead to software Product is imitated, or even is stolen.Therefore, the safety of current software product is not high.
Summary of the invention
The embodiment of the present invention provides a kind of program safety guard method and device, the safety for solving software product be not high The technical issues of.
In a first aspect, the embodiment of the invention provides a kind of program safety guard methods, including:
M called function is obtained from the source files of program that user edits;
The look-up table of functions comprising the M called function is established, M is the integer greater than 1;
The function call instruction of each called function in the M called function is replaced with into table lookup operation instruction, with Make to obtain new program file, the table lookup operation instruction from the look-up table of functions for obtaining current called function;
Generate executable program file corresponding with the new program file.
Optionally, the foundation includes the look-up table of functions of the M called function, including:
The column that the look-up table of functions is corresponded to the single called function, establish the function lookup comprising M column * N row Table, N are the integer greater than 1;
In each column of the look-up table of functions, the index to the called function where the column is established.
Optionally, the M called function of acquisition from the source files of program that user edits, including:
By scanning the source files of program, each called function, Huo Zheman present in the source files of program are obtained The called function of sufficient preset condition.
Optionally, each column in the look-up table of functions establishes the index to the called function where the column, packet It includes:
Column index is distributed to each called function, the column index is for determining the called function in the function The column of look-up table;
Under the column index of each called function, row is established to the called function in the look-up table of functions when forefront Index, the line index are used in the look-up table of functions obtain the called function when forefront.
Optionally, described to distribute column index to each called function, including:
The integer value as column index is distributed for each called function at random;
The column index of each called function is encrypted, the encrypted column rope of each called function is obtained Draw;
For the first decryption function of each encryption column index, first decryption function is used to decrypt each for building The encryption column index obtains column index corresponding with encryption column index.
Optionally, it is described in the look-up table of functions when the called function in forefront establishes line index, including:
N grades of line index are established to the called function when forefront, wherein the line index of current line is the knot of tabling look-up of lastrow Fruit, the corresponding checking result of afterbody line index are the called function when forefront.
Optionally, the described pair of called function for working as forefront establishes N grades of line index, including:
One or more line index in the N grades of line index is encrypted, corresponding encryption row rope is obtained Draw;
For the second decryption function of each encryption line index, second decryption function is used to decrypt each for building The encryption line index, obtains corresponding line index.
Optionally, it replaces with and looks into the function call instruction by each called function in the M called function After table handling instruction, further include:
The table lookup operation instruction of the correspondence look-up table of functions center row is handled as letter of tabling look-up in table lookup operation instruction Several recursive calls;Or
The table lookup operation instruction of the correspondence look-up table of functions center row is handled to table look-up in the instruction of multiple table lookup operations The mutual recursive call of function.
Second aspect, the embodiment of the present invention provide a kind of program safety protective device, including:
Function acquiring unit, for obtaining M called function from the source files of program that user edits;
Look-up table establishes unit, and for establishing the look-up table of functions comprising the M called function, M is whole greater than 1 Number;
Replacement unit is instructed, for replacing the function call instruction of each called function in the M called function For table lookup operation instruction, so as to obtain new program file, the table lookup operation instruction from the look-up table of functions for obtaining Obtain current called function;
File generating unit, for generating executable program file corresponding with the new program file.
Optionally, the look-up table establishes unit, including:
Table subelement is built, for corresponding to a column of the look-up table of functions with the single called function, establishing includes M The look-up table of functions of * N row is arranged, N is the integer greater than 1;
Subelement is indexed, for each column in the look-up table of functions, establishes the rope to the called function where the column Draw.
Optionally, the function acquiring unit, including:
By scanning the source files of program, each called function, Huo Zheman present in the source files of program are obtained The called function of sufficient preset condition.
Optionally, described to index subelement, it is specifically used for:
Column index is distributed to each called function, the column index is for determining the called function in the function The column of look-up table;
Under the column index of each called function, row is established to the called function in the look-up table of functions when forefront Index, the line index are used in the look-up table of functions obtain the called function when forefront.
Optionally, described to index subelement, it is specifically used for:
The integer value as column index is distributed for each called function at random;
The column index of each called function is encrypted, the encrypted column rope of each called function is obtained Draw;
For the first decryption function of each encryption column index, first decryption function is used to decrypt each for building The encryption column index obtains column index corresponding with encryption column index.
Optionally, described to index subelement, it is specifically used for:
N grades of line index are established to the called function when forefront, wherein the line index of current line is the knot of tabling look-up of lastrow Fruit, the corresponding checking result of afterbody line index are the called function when forefront.
Optionally, described to index subelement, it is specifically used for:
One or more line index in the N grades of line index is encrypted, corresponding encryption row rope is obtained Draw;
For the second decryption function of each encryption line index, second decryption function is used to decrypt each for building The encryption line index, obtains corresponding line index.
Optionally, further include table-look-up instruction processing unit, be used for:
The table lookup operation instruction of the correspondence look-up table of functions center row is handled as letter of tabling look-up in table lookup operation instruction Several recursive calls;Or
The table lookup operation instruction of the correspondence look-up table of functions center row is handled to table look-up in the instruction of multiple table lookup operations The mutual recursive call of function.
The third aspect, the embodiment of the present invention provide a kind of computer readable storage medium, are stored thereon with computer program, Step described in any possible implementation in first aspect is realized when the program is executed by processor.
Fourth aspect, the embodiment of the present invention provide a kind of computer equipment, including memory, processor and are stored in storage On device and the computer program that can run on a processor, the processor are realized any in first aspect when executing described program Step described in possible implementation.
The one or more technical solutions provided in the embodiment of the present invention, have at least the following technical effects or advantages:
By obtaining M called function from the source files of program that user edits;Establish the function comprising M called function The function call instruction of each called function in the M called function is replaced with table lookup operation instruction by look-up table, so that New program file is obtained, table lookup operation is instructed for obtaining current called function from look-up table of functions;It generates and new journey The corresponding executable program file of preface part.Direct function call instruction is become to called function in look-up table of functions Table lookup operation instruction, the function call in program can be completely hidden in table, so that the executable program ultimately produced No longer it is direct function call in file, but needs to table look-up just obtain called function, realizes to table look-up with this and call letter Number.And this table look-up calls the mode of function, so that reverse-engineering teacher is difficult to obtain program from decompiling executable program file In find out it is true call function, to improve reverse difficulty, and then improve the safety of software product.
Detailed description of the invention
To describe the technical solutions in the embodiments of the present invention more clearly, make required in being described below to embodiment Attached drawing is briefly described, it should be apparent that, drawings in the following description are some embodiments of the invention, for this For the those of ordinary skill of field, without creative efforts, it can also be obtained according to these attached drawings others Attached drawing.
Fig. 1 is the flow chart of program safety guard method provided in an embodiment of the present invention;
Fig. 2 is the Program modual graph of programmed protection device provided in an embodiment of the present invention;
Fig. 3 is the structural block diagram of computer equipment provided in an embodiment of the present invention.
Specific embodiment
The embodiment of the present invention solves the safety of software product by providing a kind of program safety guard method and device Not high technical problem, general thought are as follows:
M called function is obtained from the source files of program that user edits;Establish the function lookup comprising M called function The function call instruction of called function each in M called function is replaced with table lookup operation instruction, so as to obtain newly by table Program file, table lookup operation are instructed for obtaining current called function from look-up table of functions;It generates and new program file pair The executable program file answered.
Through the above technical solutions, becoming direct function call instruction to called function in look-up table of functions Function call in program, can be completely hidden in table by table lookup operation instruction, so that the executable program text ultimately produced No longer it is direct function call in part, but needs to table look-up just obtain called function, realizes to table look-up with this and call function. And this table look-up calls the mode of function, so that reverse-engineering teacher is difficult to obtain in program from decompiling executable program file Function is really called out, to improve reverse difficulty, and then improves the safety of software product.
The exemplary embodiment that the present invention will be described in more detail below with reference to accompanying drawings.Although showing the present invention in attached drawing Exemplary embodiment, it being understood, however, that may be realized in various forms the present invention without should be by embodiments set forth here It is limited.It is to be able to thoroughly understand the present invention on the contrary, providing these embodiments, and can be by the scope of the present invention It is fully disclosed to those skilled in the art.It should be noted that in the premise not conflicted, it is provided in an embodiment of the present invention each A embodiment can be combined with each other.
The source files of program that user edits generates executable program file by compilation step and link step.It needs to illustrate , step S101~S104 provided in an embodiment of the present invention is exactly to be applied in the compilation step to source files of program progress, Therefore, in the compilation step carried out to source files of program, in addition to steps presented of the present invention, required progress other The prior art can be referred to by handling details, in order to illustrate the succinct of book, herein without repeating.
Refering to what is shown in Fig. 1, program safety guard method provided in an embodiment of the present invention, includes the following steps:
Step S101:M called function is obtained from the source files of program that user edits.
Specifically, obtaining M called function in the source files of program by scanning source files of program.Obtain the source program M called function in file, can be:It obtains each called function present in source files of program or meets preset condition Called function.
For the called function for meeting preset condition, it is customized by letter of transfer to can be user in acquisition source files of program Number belongs to the called function of library function alternatively, obtaining in source files of program, or belongs to the called function of default list.
Step S102, the look-up table of functions comprising the M called function is established, M is the integer greater than 1.
In the specific implementation process, can be the source program for editing user to import in program reinforcement tools, by program plus Gu tool establishes look-up table of functions.
Look-up table of functions is specially the look-up table of functions of M column * N row, and N is the integer greater than 1.
It should be noted that quantity of the columns of look-up table of functions according to acquired called function from source files of program It determines, and the line number of look-up table of functions is at least two rows, because being analyzed every when the line number height of look-up table of functions is more than 1 One objective function difficulty really called is higher.
In the specific implementation process, the realization process of step S102 is:The function is corresponded to the single called function One column of look-up table, establish the look-up table of functions comprising M column * N row, and N is the integer greater than 1;In the every of the look-up table of functions Column establish the index to the called function where the column.
Specifically, by the corresponding column for being stored in look-up table of functions of each called function, thus, look-up table of functions Each column are to being applied to:One homophony function searches the called function that a called function is called.For example, from source 2 called functions are obtained in program file, then the look-up table of functions established is 2 column, for example, main () function successively calls for () function and bar () function, then look-up table of functions is two column, and a column are directed to the calling of for () function, and another column are directed to bar The calling of () function.
In the specific implementation process, the index to the called function where the column is established, it can be there are many embodiment:
It can be:It directly is randomly assigned an index value for each called function, is formed between called function and index value One-to-one direct index relationship, called function is directly found based on index value.And index value can be int value, for example, Index value is random number 1, corresponding called function A;Index value is random number 2, corresponding called function B.But this mode is inverse To difficulty it is lower, in order to improve reverse difficulty, can based on following process realize:
Step 1:Column index is distributed to each called function, the column index is for determining the called function in letter The column of number look-up table.
Specifically, in step 1, the integer value int as column index is distributed for each called function at random.To each The column index of called function is encrypted, and obtains the encryption column index of each called function;Building adds for each described First decryption function of close column index, first decryption function for decrypting each encryption column index, obtain with it is described Encrypt the corresponding integer value as column index of column index.
Column index is encrypted based on any Hash Encryption Algorithm specifically, can be, and the first decryption Function is realized based on corresponding Hash decipherment algorithm.
After step 1, step 2 is then executed:Under the column index of each called function, to the function lookup Called function in table when forefront establishes line index, described in the line index is used in the look-up table of functions obtain when forefront Called function.
In step 2, to when the called function in forefront establishes line index, specifically can be in the look-up table of functions:It is right When the called function in forefront establishes N grades of line index, wherein the line index of current line is the checking result of lastrow, afterbody The corresponding checking result of line index is the called function when forefront.The line number of the series and function look-up table of line index is identical.
It should be noted that being first order line index according to the corresponding checking result of column index, according to first order line index Checking result be the second level grade index, searched based on second level line index, obtain again the line index of next line, successively into Row, until obtaining the checking result of last line, i.e.,:Obtain the called function for being hidden in last line.
In the specific implementation process, in order to improve reverse difficulty, to one or more row rope in the N grades of line index Draw and be encrypted, obtains corresponding encryption line index;Building is directed to the second decryption function of each encryption line index, Second decryption function obtains corresponding line index for decrypting each encryption line index.
Through the above steps 1~2, called function can be found by the table lookup operation of look-up-table function table () each time The line index of respective column and next line in look-up table of functions, until find look-up table of functions work as forefront last Row, and really called function is exactly the last line for being hidden in look-up table of functions.
Line index is encrypted based on any Hash Encryption Algorithm specifically, can be, and the second decryption Function is realized based on corresponding Hash decipherment algorithm.
By the encryption and decryption to line index, the line index of next line can not be directly obtained based on column index, and needs base The line index of next line can be just obtained in corresponding Hash decipherment algorithm, and then can just obtain the line index of last line, in turn Called function can be just obtained, realization, which is tabled look-up, calls function.
After step s 102, step S103 is then executed:By the function of each called function in the M called function Call instruction replaces with table lookup operation instruction, obtains new program file, and the table lookup operation instruction is for from the function Current called function is obtained in look-up table.
It should be noted that table lookup operation instruction is to utilize the instruction of look-up-table function table ().Specifically, table lookup operation Instruction look-up-table function table () used, since step S102 has carried out index encryption/decryption process at least once, so that Table lookup operation instruction look-up-table function table () used is not directly to correspond to each function call by index value, to increase The reverse difficulty of look-up-table function itself is added.
Reverse difficulty in order to further increase, in addition to the first row of look-up table of functions and last line, center row is looked into Table handling instruction processing is the mutual recursive call between the recursive call or multiple look-up-table functions of look-up-table function itself.It is real Now process is specially:The table lookup operation instruction of the correspondence look-up table of functions center row is handled to be looked into table lookup operation instruction The recursive call of table function;Or the table lookup operation instruction of the correspondence look-up table of functions center row is handled as multiple behaviour that table look-up The mutual recursive call of look-up-table function in instructing.
In the following, for including following function call in source files of program:main(){foo();bar();, to step The realization process of S101~S103 is illustrated, and the look-up table of functions of foundation includes two column, and one is classified as to foo () function Index, another index being classified as to bar () function.
Random int value is distributed for foo () function and encrypts the random int value, and obtaining encryption column index is encode_ Rand_1 distributes random int value for foo () function and encrypts the random int value, and obtaining encryption column index is encode_ rand_2.When needing to call foo () function, foo () function place can be indexed based on column index encode_rand_1 It is classified as the first row of look-up table of functions, when needing to call bar () function, can be indexed based on column index encode_rand_2 The secondary series of look-up table of functions is classified as where to bar () function.And establish the line index of foo () function and bar () function.
By original function call instruction { foo ();bar();Table lookup operation of the replacement for being searched in look-up table of functions Instruction, specially:{table(encode_rand_1);table(encode_rand_2);}
The table lookup operation instruction of the correspondence look-up table of functions center row is handled as letter of tabling look-up in table lookup operation instruction Several recursive calls;Or the table lookup operation instruction of the correspondence look-up table of functions center row is handled and is referred to for multiple table lookup operations The mutual recursive call of look-up-table function in order.
Based on above-mentioned realization process, it is as follows to finally obtain new program:
And the look-up table of functions established is as follows:
index_1_1—>encoded_index_2_1 index_1_2—>encoded_index_2_2
index_2_1—>foo() index_2_2—>bar()
After step s 103, it then executes step S104, generate the corresponding executable program of the new program file File.
Specifically, executable program file corresponding with the new program is generated by link step.
It should be noted that technical solution provided in an embodiment of the present invention, can be applied to whitepack reinforcement tools to program Under the scene reinforced, whitepack reinforcement tools are that a kind of pair of program for black box reinforcement tools is tested, added Solid tool, whitepack reinforcement tools be specifically handled in the source program for editing user to be carried out during executable program file , executable program file, that is, binary file (Binary) here.And black box is to the executable program text formed Part handle herein by carried out during executable program file program test, reinforcing process.
It should be noted technical solution as above provided in an embodiment of the present invention, can be applied to soft under kinds of platform The generation of part product (executable program file):ELF file based on Android operation system, based on iPhone operating system Application program, the application program of Apple Computers operating system, the library file of software and load based on linux system, Windows Executable program and DLL (Dynamic Link Library, dynamic link library) file of operating system.It should be noted that Technical solution as above provided in an embodiment of the present invention can collect type based on following execute:X86,X86_64,ARM,ARM64.
Further, reverse difficulty in order to further increase, to increase program security, the embodiment of the present invention is aforementioned Under the premise of implementation process, before obtaining new program, include the following steps:
Firstly, executing step A1:N number of objective function, the source program text are determined from the source files of program that user edits Part is at least made of N number of function, and N is the integer greater than 1.
It should be noted that the source files of program that user edits refers specifically to user according to certain programming language specification The non-compiled code of the most original program of writing, source files of program are readable text file.Usually compiled by high-level language It writes, such as:C language, C Plus Plus, Java language etc., source files of program can be with books or tape or other carriers Form occurs, but the most commonly used format is text file.Also, the function in source files of program is one self-contained complete At the series of instructions of certain correlation function.
Specifically, the source files of program that user edits is made of multiple functions, it may include function in function library, may be used also To include the customized function of user.Source files of program includes principal function and each subfunction, either principal function or son Function, each function have respective function name.
Specifically, step A1 is specially:The source files of program that user edits is scanned, is obtained complete present in the journey of source Portion's function is determined as objective function then by whole functions in scanning source files of program.
Step A1 is specially:It determines whole functions in source files of program, is screened from whole functions of source files of program One or more function out, is determined as objective function.In the specific implementation process, it can be lifted there are many screening rule Example explanation:
Screening rule one:A function list is pre-established, with the letter that can be determined as objective function in function list It is several.Step A1 is specially:Source files of program is scanned, the function name of whole function present in the journey of source is obtained, is judged Whether the function name of each function present in the journey of source is in function list, if there is in function list, it is determined that is mesh Otherwise scalar functions are not objective functions.
Specifically, in the function name that function list is some functions for completing specific function, so as to more targetedly Function call is carried out to obscure.
Screening rule two:Multiple functions are filtered out from whole functions of source files of program at random, are respectively determined as target Function.
Screening rule three:It determines whole functions in source files of program, is filtered out from whole functions of source files of program There is the function of function call, is determined as objective function.
After step A1, step A2 is then executed:Creation can not in each objective function of N number of objective function Up to branch.
It should be noted that unreachable branch be cannot by input be performed path, therefore, it is unreachable in program It will not be performed to when being executed.What it is relative to unreachable branch is up to branch, and being up to branch can quilt under a certain input Therefore the path gone to can be performed to up to the program in branch when actually executing under a certain input.
Specifically, creating unreachable branch in each objective function of N number of objective function, embodiment is as follows:
Condition call statement is created in each objective function, wherein the condition tune in each objective function It include up to branch and the unreachable branch with sentence;In the reachable branch of the condition call statement of each objective function In, the real function that the objective function is written is called.
In the specific implementation process, there may be one or more for the real function calling in each objective function.It needs It is noted that the real function of objective function is called, just refer to:Before source files of program does not pass through program reinforcing just Through existing, the function call of the objective function, i.e.,:The objective function has invoked which function or which function.It is specific and Speech will create an item if there are a real functions to call in the objective function at the objective function function call instruction Part call statement, and the function call instruction called for realizing the real function of the objective function is moved to the condition and is called In the reachable branch of sentence.
In the specific implementation process, condition call statement is created in each objective function, can be:It will be for realizing this The function call instruction that the real function of objective function is called is converted, and obtains calling language for the condition of the objective function Sentence.
Therefore, it if having multiple continuous real functions to call in the objective function, can be created in the objective function A condition call statement is built, is written in the reachable branch of a condition call statement in objective function multiple continuous Real function is called.Multiple condition call statements can also be created, in each condition call statement, one-to-one write-in one is true Real function is called.
Specifically, the condition call statement in each objective function can be:Based on the mathematical expression with unique consequence Formula setting, in the unique consequence for obtaining the mathematic(al) representation, executes the instruction in the reachable branch of the condition call statement, i.e., It executes:For realizing the function call instruction that the real function of the objective function is called, and unreachable point of condition call statement Instruction in branch will not be performed to when actually executing.Therefore, it forms with the condition up to branch and unreachable branch Call statement.
Specifically, in the different target function of N number of objective function, the used mathematic(al) representation with unique consequence Can be identical, a kind of mathematical table can also be therefrom determined at random when being directed to current objective function there are many mathematic(al) representation Up to formula.
In the specific implementation process, mathematic(al) representation used is specially more complicated mathematic(al) representation, is improved reverse Difficulty.
In a specific embodiment, condition call statement can be if sentence, specially:(one has unique knot to if The mathematic(al) representation of fruit) { program block A } else { program block B }.Specifically, the mathematic(al) representation is the boolean with unique consequence Type variable, the if sentence up to branching into executing block A, it is unreachable to branch into executing block B, program block A be for The function call instruction that the real function of the objective function is called.When obtaining unique consequence, the reachable of condition call statement is executed Instruction in branch.Program block B is the added objective function to the calling of other functions, is the target in source files of program The function calling relationship that function is not present, for obscuring the true function calling relationship of the objective function.
In the specific implementation process, it can be each real function calling for objective function, condition tune be respectively created With sentence, it is also possible to call for multiple continuous real functions of objective function, creates a condition call statement.
Real function call relation with existence function A in source files of program is:Function A → calling function B1 calls function B2 is carried out for example:
It can be such as under type:
int A()
{ if (mathematic(al) representation with unique consequence) { to the calling of function B1 } else { to the calling of other functions };
If (mathematic(al) representation with unique consequence) { to the calling of function B2 } else { to other function calls };
It is also possible to such as under type:Int A () if (mathematic(al) representation with unique consequence) to the calling of function B1, To the calling of function B2 } else { to the calling of other functions };
Certainly, in the specific implementation process, condition call statement may be other forms, the programming language of source files of program Speech is different, then the condition call statement used can also be different.
After step A2, step A3 is then executed:The mesh is added in the unreachable branch of each objective function Scalar functions obtain new program to the calling of other functions, other described functions belong to the source files of program.
It should be noted that other functions are for the objective function, other functions are specifically and the objective function Condition call statement reachable branch in the different function of the function that is called, can be with for other functions of the objective function Including the objective function, that is, call the objective function itself.
For example, source files of program includes that function A, function A call function B and function C, function B to call function D, letter Number D calls function E, and there are real function calling in the reachable branch of the condition call statement of objective function A is:Call function B and function C, will be in the reachable branch for the condition call statement for being moved to objective function A to the calling of function B, C.In the mesh In the unreachable branch of the condition call statement of scalar functions A, it can add to one or more the tune in function D, function E With.
Specifically, adding the objective function pair in the unreachable branch of each objective function in step A3 The calling of other functions can be described respectively below there are many embodiment:
Embodiment one:
Following steps are executed respectively to each objective function:The objective function condition call statement can not Up in branch, the objective function is added to the random call of other functions.
Specifically, adding the objective function can to this in the reachable branch of the condition call statement of the objective function The random call of each function different up to function called in branch.
For example, source files of program includes function 1, and function 1 calls function 2,3,4, and function 3 calls function 2,5, function 4 call function 6,7.
Creation condition call statement 1 in objective function 1 (i.e. in function 1), in the reachable branch of the condition call statement 1 Be written with function 1 and call function 2,3,4, added in the unreachable branch of the condition call statement 1 function 1 to function 1,5,6, 7 random call, the creation condition call statement 2 in objective function 3 (i.e. in function 3), in the condition call statement 2 can Function 2,5 is called up to function 3 is written in branch, function 3 is added in the unreachable branch of the condition call statement 2 to function 1,3,4,6,7 random call.The creation condition call statement 3 in objective function 4 (i.e. in function 1) calls language in the condition It is written with function 4 in the reachable branch of sentence 3 and calls function 6,7, function is written in the unreachable branch of the condition call statement 3 The random call of 4 pairs of functions 1,2,3,4,5.
More specifically, random call is called from the reachable branch of the condition call statement of the objective function One or more is randomly selected in the different each function of function, then, write-in is to random selection in unreachable branch The calling of one or more function out.
By embodiment one, it can be written in each objective function and obscure real function calling in the objective function The not executable function calling relationship of logic.
The function that may include in the source files of program edited due to user may be more, in this case, then implements Mode greatly increases the size of code for generating executable program file for a moment, the size of software product is increased, in this regard, providing as follows Embodiment two:
Following steps are executed to each objective function:The source files of program is scanned, determines the source files of program Middle function number;Judge whether function number is greater than default value in the source files of program;If so, in the objective function Condition call statement unreachable branch in, add the objective function to the random call of other functions;Otherwise, described In the unreachable branch of the condition call statement of objective function, the objective function is added to the one-to-one calling of other functions.
By embodiment two, can take into account the executable program file ultimately produced size of code and reverse difficulty.
In above embodiment one, two, which realizes that process can be as to the random calls of other functions Under:
More than one candidate called function is determined from whole functions of the source files of program;In the objective function In the unreachable branch of condition call statement, the objective function is added to the one-to-one of one above candidate called function It calls.
Further, it is called in the candidate called function and the reachable branch of the condition call statement of the objective function Function it is different.
As long as it should be noted that calling language for the candidate called function of the objective function and the condition of the objective function The function that is called is different in reachable the branch of sentence, but can be with other functions (including others targets in N number of objective function Function) in the function that is called it is identical.
More than one candidate called function is determined from whole functions of the source files of program, can there are many mode, It is illustrated separately below:
Mode one, at random from whole functions of the source files of program, selection and the condition of the objective function call language The different function of called function in the reachable branch of sentence is determined as the candidate called function.
Mode two:From whole functions of the source files of program, the function for meeting preset function condition is filtered out, is determined For the candidate called function.For example, User-Defined Functions can be filtered out from whole functions of the source files of program For candidate called function, thus, candidate called function will not be library function, thus increase the difficulty interpreted by reverse-engineering teacher.
In specific implementation process, in order to add the mesh in the unreachable branch of the condition call statement of the objective function One-to-one calling of the scalar functions to one above candidate called function.
The objective function is added to the calling of the candidate called function, specific implementation is as follows:
Firstly, the source files of program edited by scanning user, obtains the function of whole functions in the source files of program Name records the function name of whole functions in the source files of program;The objective function condition call statement it is unreachable Function call instruction is added in branch;From the function name of functions whole in the source files of program, obtains the candidate and adjusted The function name of function;The function name of the candidate called function is written in the function call instruction.
Further, the candidate called function can be to have ginseng function, or without ginseng function, if the candidate Called function is that have ginseng function, is written in the function call instruction after the function name of the candidate called function, also wraps Include following steps:Random Transfer Parameters are generated for the candidate called function;The random Transfer Parameters are written in In the function call instruction.
For example, can be expressed as follows after the random Transfer Parameters are written in the function call instruction:
Int_stdcall function (random Transfer Parameters x, random Transfer Parameters y).
Because the instruction in unreachable branch can't be performed to, what is be written in unreachable branch is directed to institute The Transfer Parameters for stating candidate called function can generate at random, the function without influencing program itself.
Based on the same inventive concept, the embodiment of the invention provides a kind of program safety protective devices, refering to what is shown in Fig. 2, Including:
Function acquiring unit 201, for obtaining M called function from the source files of program that user edits;
Look-up table establishes unit 202, and for establishing the look-up table of functions comprising the M called function, M is greater than 1 Integer;
Replacement unit 203 is instructed, for replacing the function call instruction of each called function in the M called function It is changed to table lookup operation instruction, so as to obtain new program file, the table lookup operation instruction is for from the look-up table of functions Obtain current called function;
File generating unit 204, for generating executable program file corresponding with the new program file.
In a specific embodiment, the look-up table establishes unit 202, including:
Table subelement is built, for corresponding to a column of the look-up table of functions with the single called function, establishing includes M The look-up table of functions of * N row is arranged, N is the integer greater than 1;
Subelement is indexed, for each column in the look-up table of functions, establishes the rope to the called function where the column Draw.
In a specific embodiment, the function acquiring unit 201, including:
By scanning the source files of program, each called function, Huo Zheman present in the source files of program are obtained The called function of sufficient preset condition.
It is described to index subelement in a specific embodiment, it is specifically used for:
Column index is distributed to each called function, the column index is for determining the called function in the function The column of look-up table;
Under the column index of each called function, row is established to the called function in the look-up table of functions when forefront Index, the line index are used in the look-up table of functions obtain the called function when forefront.
It is described to index subelement in a specific embodiment, it is specifically used for:
The integer value as column index is distributed for each called function at random;
The column index of each called function is encrypted, the encrypted column rope of each called function is obtained Draw;
For the first decryption function of each encryption column index, first decryption function is used to decrypt each for building The encryption column index obtains column index corresponding with encryption column index.
It is described to index subelement in a specific embodiment, it is specifically used for:
N grades of line index are established to the called function when forefront, wherein the line index of current line is the knot of tabling look-up of lastrow Fruit, the corresponding checking result of afterbody line index are the called function when forefront.
It is described to index subelement in a specific embodiment, it is specifically used for:
One or more line index in the N grades of line index is encrypted, corresponding encryption row rope is obtained Draw;
For the second decryption function of each encryption line index, second decryption function is used to decrypt each for building The encryption line index, obtains corresponding line index.
In a specific embodiment, further includes table-look-up instruction processing unit, be used for:
The table lookup operation instruction of the correspondence look-up table of functions center row is handled as letter of tabling look-up in table lookup operation instruction Several recursive calls;Or
The table lookup operation instruction of the correspondence look-up table of functions center row is handled to table look-up in the instruction of multiple table lookup operations The mutual recursive call of function.
Based on the same inventive concept, as an implementation of the above method, the embodiment of the present invention provides a kind of computer equipment 30, Fig. 3 be the structural schematic diagram of the computer equipment 30 in the embodiment of the present invention, shown in Figure 3, the computer equipment 30 packet It includes:Memory 301, processor 302 and it is stored in the computer program that can be run on memory 301 and on processor 302 303, processor realizes step described in any embodiment in foregoing routine guard method embodiment when executing program 303.
Based on the same inventive concept, the embodiment of the present invention provides a kind of computer storage medium, is stored thereon with computer Program, above-metioned instruction can the processor 302 of the computer equipment 30 as shown in Figure 3 execute to complete the above method.The meter Calculation machine storage medium is specially non-transitorycomputer readable storage medium, specifically can be ROM, random access memory (RAM), CD-ROM, tape, floppy disk and optical data storage devices etc..
Technical solution in the embodiments of the present invention, at least has the following technical effect that or advantage:
By obtaining M called function from the source files of program that user edits;Establish the function comprising M called function The function call instruction of each called function in the M called function is replaced with table lookup operation instruction by look-up table, so that New program file is obtained, table lookup operation is instructed for obtaining current called function from look-up table of functions;It generates and new journey The corresponding executable program file of preface part.Direct function call instruction is become, the table lookup operation of called function is referred to It enables, the function calling relationship in program can be completely hidden in table, reverse-engineering teacher is difficult in the program according to decompiling Find out true function call, to improve each reverse true difficulty for calling function, and then improves software production The safety of product.
It should be understood by those skilled in the art that, the embodiment of the present invention can provide as method, system or computer program Product.Therefore, complete hardware embodiment, complete software embodiment or reality combining software and hardware aspects can be used in the present invention Apply the form of example.Moreover, it wherein includes the computer of computer usable program code that the present invention, which can be used in one or more, The computer program implemented in usable storage medium (including but not limited to magnetic disk storage, CD-ROM, optical memory etc.) produces The form of product.
The present invention be referring to according to the method for the embodiment of the present invention, the process of equipment (system) and computer program product Figure and/or block diagram describe.It should be understood that every one stream in flowchart and/or the block diagram can be realized by computer program instructions The combination of process and/or box in journey and/or box and flowchart and/or the block diagram.It can provide these computer programs Instruct the processor of general purpose computer, special purpose computer, Embedded Processor or other programmable data processing devices to produce A raw machine, so that being generated by the instruction that computer or the processor of other programmable data processing devices execute for real The device for the function of being specified in present one or more flows of the flowchart and/or one or more blocks of the block diagram.
These computer program instructions, which may also be stored in, is able to guide computer or other programmable data processing devices with spy Determine in the computer-readable memory that mode works, so that it includes referring to that instruction stored in the computer readable memory, which generates, Enable the manufacture of device, the command device realize in one box of one or more flows of the flowchart and/or block diagram or The function of being specified in multiple boxes.
These computer program instructions also can be loaded onto a computer or other programmable data processing device, so that counting Series of operation steps are executed on calculation machine or other programmable devices to generate computer implemented processing, thus in computer or The instruction executed on other programmable devices is provided for realizing in one or more flows of the flowchart and/or block diagram one The step of function of being specified in a box or multiple boxes.
Although preferred embodiments of the present invention have been described, it is created once a person skilled in the art knows basic Property concept, then additional changes and modifications may be made to these embodiments.So it includes excellent that the following claims are intended to be interpreted as It selects embodiment and falls into all change and modification of the scope of the invention.
Obviously, various changes and modifications can be made to the invention without departing from essence of the invention by those skilled in the art Mind and range.In this way, if these modifications and changes of the present invention belongs to the range of the claims in the present invention and its equivalent technologies Within, then the present invention is also intended to include these modifications and variations.
The invention discloses a kind of A1, a kind of program safety guard method, including:
M called function is obtained from the source files of program that user edits;
The look-up table of functions comprising the M called function is established, M is the integer greater than 1;
The function call instruction of each called function in the M called function is replaced with into table lookup operation instruction, with Make to obtain new program file, the table lookup operation instruction from the look-up table of functions for obtaining current called function;
Generate executable program file corresponding with the new program file.
A2, program safety guard method as described in a1, it is described to establish the function lookup comprising the M called function Table, including:
The column that the look-up table of functions is corresponded to the single called function, establish the function lookup comprising M column * N row Table, N are the integer greater than 1;
In each column of the look-up table of functions, the index to the called function where the column is established.
A3, as described in A2 program safety guard method, described the acquisition from the source files of program that user edits M are adjusted Function, including:
By scanning the source files of program, each called function, Huo Zheman present in the source files of program are obtained The called function of sufficient preset condition.
A4, the program safety guard method as described in A2 or A3, each column in the look-up table of functions are established to this The index of called function where arranging, including:
Column index is distributed to each called function, the column index is for determining the called function in the function The column of look-up table;
Under the column index of each called function, row is established to the called function in the look-up table of functions when forefront Index, the line index are used in the look-up table of functions obtain the called function when forefront.
A5, the program safety guard method as described in A4, it is described to distribute column index to each called function, including:
The integer value as column index is distributed for each called function at random;
The column index of each called function is encrypted, the encrypted column rope of each called function is obtained Draw;
For the first decryption function of each encryption column index, first decryption function is used to decrypt each for building The encryption column index obtains column index corresponding with encryption column index.
A6, the program safety guard method as described in A4, the called function in the look-up table of functions when forefront Line index is established, including:
N grades of line index are established to the called function when forefront, wherein the line index of current line is the knot of tabling look-up of lastrow Fruit, the corresponding checking result of afterbody line index are the called function when forefront.
A7, the program safety guard method as described in A6, described pair is established N grades of line index when the called function in forefront, is wrapped It includes:
One or more line index in the N grades of line index is encrypted, corresponding encryption row rope is obtained Draw;
For the second decryption function of each encryption line index, second decryption function is used to decrypt each for building The encryption line index, obtains corresponding line index.
A8, the program safety guard method as described in A2 or A3, it is described will be each by letter of transfer in the M called function After several function call instructions replaces with table lookup operation instruction, further include:
The table lookup operation instruction of the correspondence look-up table of functions center row is handled as letter of tabling look-up in table lookup operation instruction Several recursive calls;Or
The table lookup operation instruction of the correspondence look-up table of functions center row is handled to table look-up in the instruction of multiple table lookup operations The mutual recursive call of function.
Invention additionally discloses a kind of B9, a kind of program safety protective device, including:
Function acquiring unit, for obtaining M called function from the source files of program that user edits;
Look-up table establishes unit, and for establishing the look-up table of functions comprising the M called function, M is whole greater than 1 Number;
Replacement unit is instructed, for replacing the function call instruction of each called function in the M called function For table lookup operation instruction, so as to obtain new program file, the table lookup operation instruction from the look-up table of functions for obtaining Obtain current called function;
File generating unit, for generating executable program file corresponding with the new program file.
B10, the program safety protective device as described in B9, the look-up table establish unit, including:
Table subelement is built, for corresponding to a column of the look-up table of functions with the single called function, establishing includes M The look-up table of functions of * N row is arranged, N is the integer greater than 1;
Subelement is indexed, for each column in the look-up table of functions, establishes the rope to the called function where the column Draw.
B11, the program safety protective device as described in A10, the function acquiring unit, including:
By scanning the source files of program, each called function, Huo Zheman present in the source files of program are obtained The called function of sufficient preset condition.
B12, the program safety protective device as described in B10 or B11, it is described to index subelement, it is specifically used for:
Column index is distributed to each called function, the column index is for determining the called function in the function The column of look-up table;
Under the column index of each called function, row is established to the called function in the look-up table of functions when forefront Index, the line index are used in the look-up table of functions obtain the called function when forefront.
B13, as described in B12 program safety protective device, it is described to index subelement, it is specifically used for:
The integer value as column index is distributed for each called function at random;
The column index of each called function is encrypted, the encrypted column rope of each called function is obtained Draw;
For the first decryption function of each encryption column index, first decryption function is used to decrypt each for building The encryption column index obtains column index corresponding with encryption column index.
B 14, the program safety protective device as described in B 12, it is described to index subelement, it is specifically used for:
N grades of line index are established to the called function when forefront, wherein the line index of current line is the knot of tabling look-up of lastrow Fruit, the corresponding checking result of afterbody line index are the called function when forefront.
B 15, the program safety protective device as described in B 14, it is described to index subelement, it is specifically used for:
One or more line index in the N grades of line index is encrypted, corresponding encryption row rope is obtained Draw;
For the second decryption function of each encryption line index, second decryption function is used to decrypt each for building The encryption line index, obtains corresponding line index.
B16, the program safety protective device as described in B10 or B11, further include table-look-up instruction processing unit, are used for:
The table lookup operation instruction of the correspondence look-up table of functions center row is handled as letter of tabling look-up in table lookup operation instruction Several recursive calls;Or
The table lookup operation instruction of the correspondence look-up table of functions center row is handled to table look-up in the instruction of multiple table lookup operations The mutual recursive call of function.
The invention also discloses C17, a kind of computer readable storage medium, are stored thereon with computer program, the program Step described in any one of A1-A8 is realized when being executed by processor.
The invention also discloses D18, a kind of computer equipment, including memory, processor and storage are on a memory simultaneously The computer program that can be run on a processor, the processor are realized described in any one of A1-A8 when executing described program Step.

Claims (10)

1. a kind of program safety guard method, which is characterized in that including:
M called function is obtained from the source files of program that user edits;
The look-up table of functions comprising the M called function is established, M is the integer greater than 1;
The function call instruction of each called function in the M called function is replaced with into table lookup operation instruction, so as to obtain Program file newly is obtained, the table lookup operation instruction from the look-up table of functions for obtaining current called function;
Generate executable program file corresponding with the new program file.
2. program safety guard method as described in claim 1, which is characterized in that described to establish comprising the M by letter of transfer Several look-up table of functions, including:
The column that the look-up table of functions is corresponded to the single called function, establish the look-up table of functions comprising M column * N row, N For the integer greater than 1;
In each column of the look-up table of functions, the index to the called function where the column is established.
3. program safety guard method as claimed in claim 2, which is characterized in that the source files of program edited from user Middle M called function of acquisition, including:
By scanning the source files of program, each called function present in the source files of program is obtained, or meet pre- If the called function of condition.
4. program safety guard method as claimed in claim 2 or claim 3, which is characterized in that described in the look-up table of functions Each column establishes the index to the called function where the column, including:
Column index is distributed to each called function, the column index is for determining the called function in the function lookup The column of table;
Under the column index of each called function, in the look-up table of functions when the called function in forefront establishes row rope Draw, the line index is used in the look-up table of functions obtain the called function when forefront.
5. program safety guard method as claimed in claim 4, which is characterized in that described to distribute each called function Column index, including:
The integer value as column index is distributed for each called function at random;
The column index of each called function is encrypted, the encryption column index of each called function is obtained;
For the first decryption function of each encryption column index, first decryption function is used to decrypt each described for building Column index is encrypted, column index corresponding with encryption column index is obtained.
6. program safety guard method as claimed in claim 4, which is characterized in that described to current in the look-up table of functions The called function of column establishes line index, including:
N grades of line index are established to the called function when forefront, wherein the line index of current line is the checking result of lastrow, most The corresponding checking result of rear stage line index is the called function when forefront.
7. program safety guard method as claimed in claim 6, which is characterized in that described pair is established when the called function in forefront N grades of line index, including:
One or more line index in the N grades of line index is encrypted, corresponding encryption line index is obtained;
For the second decryption function of each encryption line index, second decryption function is used to decrypt each described for building Line index is encrypted, corresponding line index is obtained.
8. a kind of program safety protective device, which is characterized in that including:
Function acquiring unit, for obtaining M called function from the source files of program that user edits;
Look-up table establishes unit, and for establishing the look-up table of functions comprising the M called function, M is the integer greater than 1;
Replacement unit is instructed, is looked into for replacing with the function call instruction of each called function in the M called function Table handling instruction, so as to obtain new program file, the table lookup operation instruction from the look-up table of functions for being worked as Preceding called function;
File generating unit, for generating executable program file corresponding with the new program file.
9. a kind of computer readable storage medium, is stored thereon with computer program, which is characterized in that the program is held by processor Step of any of claims 1-7 is realized when row.
10. a kind of computer equipment including memory, processor and stores the meter that can be run on a memory and on a processor Calculation machine program, which is characterized in that the processor realizes step of any of claims 1-7 when executing described program Suddenly.
CN201810493964.2A 2018-05-22 2018-05-22 Program safety protection method and device Active CN108932407B (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201810493964.2A CN108932407B (en) 2018-05-22 2018-05-22 Program safety protection method and device

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201810493964.2A CN108932407B (en) 2018-05-22 2018-05-22 Program safety protection method and device

Publications (2)

Publication Number Publication Date
CN108932407A true CN108932407A (en) 2018-12-04
CN108932407B CN108932407B (en) 2022-01-25

Family

ID=64449188

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201810493964.2A Active CN108932407B (en) 2018-05-22 2018-05-22 Program safety protection method and device

Country Status (1)

Country Link
CN (1) CN108932407B (en)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109918872A (en) * 2019-01-28 2019-06-21 中国科学院数据与通信保护研究教育中心 Android application reinforcement means
CN110717150A (en) * 2019-10-08 2020-01-21 北京顶象技术有限公司 Code protection method, device, protection equipment and readable storage medium
CN113791838A (en) * 2021-08-20 2021-12-14 深圳市元征科技股份有限公司 Program file calling method and device and storage medium

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1475909A (en) * 2002-08-16 2004-02-18 华为技术有限公司 realization of isertion type system soft ware patch and control method
CN103186730A (en) * 2013-03-26 2013-07-03 北京深思数盾科技有限公司 Method and device for protecting.NET software security
CN103246848A (en) * 2013-03-26 2013-08-14 北京深思数盾科技有限公司 Software security protection method and equipment
CN103309683A (en) * 2012-03-07 2013-09-18 京信通信***(中国)有限公司 Software patch embedding method and device for hardware equipment
CN103559450A (en) * 2013-10-11 2014-02-05 南京邮电大学 Electronic tag data protection method based on kernel driver hook technology
CN106934298A (en) * 2017-03-06 2017-07-07 戴林 A kind of Universal Database transparent encryption system

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1475909A (en) * 2002-08-16 2004-02-18 华为技术有限公司 realization of isertion type system soft ware patch and control method
CN103309683A (en) * 2012-03-07 2013-09-18 京信通信***(中国)有限公司 Software patch embedding method and device for hardware equipment
CN103186730A (en) * 2013-03-26 2013-07-03 北京深思数盾科技有限公司 Method and device for protecting.NET software security
CN103246848A (en) * 2013-03-26 2013-08-14 北京深思数盾科技有限公司 Software security protection method and equipment
CN103559450A (en) * 2013-10-11 2014-02-05 南京邮电大学 Electronic tag data protection method based on kernel driver hook technology
CN106934298A (en) * 2017-03-06 2017-07-07 戴林 A kind of Universal Database transparent encryption system

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109918872A (en) * 2019-01-28 2019-06-21 中国科学院数据与通信保护研究教育中心 Android application reinforcement means
CN110717150A (en) * 2019-10-08 2020-01-21 北京顶象技术有限公司 Code protection method, device, protection equipment and readable storage medium
CN113791838A (en) * 2021-08-20 2021-12-14 深圳市元征科技股份有限公司 Program file calling method and device and storage medium
CN113791838B (en) * 2021-08-20 2024-04-23 深圳市元征科技股份有限公司 Program file calling method, device and storage medium

Also Published As

Publication number Publication date
CN108932407B (en) 2022-01-25

Similar Documents

Publication Publication Date Title
CN100498712C (en) Storage medium, method and apparatus for creating a protected executable program
US9639377B2 (en) Method for linking and loading to protect applications
CN108932407A (en) A kind of program safety guard method and device
CN110598379B (en) Method, equipment and storage medium for realizing character string confusion
CN111415013B (en) Privacy machine learning model generation and training method and device and electronic equipment
CN106293664A (en) Code generating method and device
CN102132289A (en) Method and device for code obfuscation
CN106503496A (en) Replaced and the Python shell script anti-reversal methods for merging based on operation code
KR101861341B1 (en) Deobfuscation apparatus of application code and method of deobfuscating application code using the same
CN107545182B (en) Around the method and system of function call chain detection in a kind of IOS application
CN107632832A (en) One kind obscures method towards dalvik bytecode controlling streams
Gupta et al. Using genetic algorithm for unit testing of object oriented software
CN110046638A (en) Fusion method, device and the equipment of multi-platform data
Liu et al. Accelerating API-based program synthesis via API usage pattern mining
CN107153563A (en) A kind of software version generation method and device
KR20190122837A (en) Method for computer-assisted obfuscation of program code
Mijangos An algorithm for two-stage stochastic mixed-integer nonlinear convex problems
CN116167021A (en) iOS application reinforcing method based on llvm
US10140436B1 (en) Program obfuscation by reorganizing execution paths
Ruhroth et al. Versioning and evolution requirements for model-based system development
CN109409036A (en) Control stream based on redundant code obscures method and device, storage medium and terminal
CN110457064B (en) Method and device for generating network cutover script
CN107247906B (en) A kind of encryption method and device for data
CN108846265B (en) Program reinforcing method and device
CN111428209B (en) Application program confusion method, device and storage medium

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