CN110413283A - Method, storage medium and terminal device are obscured based on compiler front-end - Google Patents
Method, storage medium and terminal device are obscured based on compiler front-end Download PDFInfo
- Publication number
- CN110413283A CN110413283A CN201910716285.1A CN201910716285A CN110413283A CN 110413283 A CN110413283 A CN 110413283A CN 201910716285 A CN201910716285 A CN 201910716285A CN 110413283 A CN110413283 A CN 110413283A
- Authority
- CN
- China
- Prior art keywords
- clause
- file
- compiler front
- sentence
- branch
- 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
Links
- 238000000034 method Methods 0.000 title claims abstract description 40
- 150000001875 compounds Chemical class 0.000 claims abstract description 36
- 238000012360 testing method Methods 0.000 claims abstract description 13
- 238000012545 processing Methods 0.000 claims description 8
- 230000008859 change Effects 0.000 claims description 6
- 238000004891 communication Methods 0.000 description 5
- 230000006870 function Effects 0.000 description 5
- 230000003068 static effect Effects 0.000 description 5
- 238000003780 insertion Methods 0.000 description 3
- 230000037431 insertion Effects 0.000 description 3
- 230000008878 coupling Effects 0.000 description 2
- 238000010168 coupling process Methods 0.000 description 2
- 238000005859 coupling reaction Methods 0.000 description 2
- 230000000694 effects Effects 0.000 description 2
- 238000005516 engineering process Methods 0.000 description 2
- 238000004883 computer application Methods 0.000 description 1
- 238000004590 computer program Methods 0.000 description 1
- 230000007812 deficiency Effects 0.000 description 1
- 238000000151 deposition Methods 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000008569 process Effects 0.000 description 1
- 230000009466 transformation Effects 0.000 description 1
- 230000000007 visual effect Effects 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/40—Transformation of program code
- G06F8/41—Compilation
- G06F8/43—Checking; Contextual analysis
- G06F8/433—Dependency analysis; Data or control flow analysis
- G06F8/434—Pointers; Aliasing
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/10—Protecting distributed programs or content, e.g. vending or licensing of copyrighted material ; Digital rights management [DRM]
- G06F21/12—Protecting executable software
- G06F21/14—Protecting executable software against software analysis or reverse engineering, e.g. by obfuscation
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Abstract
The invention discloses a kind of to obscure method, storage medium and terminal device based on compiler front-end, this method comprises: compiler front-end analyzes C/C++ source file, obtains the header file that corresponding abstract syntax tree and source file are included;All nodes of ergodic abstract syntax tree detect first clause of the clause with the presence or absence of only single branch of wherein compound statement, are inserted into extra control stream according to testing result;Creation one and the consistent null file of source file type;The header file that source file is included is output in null file according to the grammatical form that C/C++ includes header file, and the top statement for belonging to source file in abstract tree is output in null file according to correct grammatical form.Flowed in this way, being inserted into extra control by compiler front-end, create the null file of source file same type, and by abstract syntax tree content and the header file re-write null file so that code protection ability and portability have both.
Description
Technical field
The present invention relates to computer application technology, in particular to a kind of obscuring method, depositing based on compiler front-end
Storage media and terminal device.
Background technique
The mainstay of traditional static type compiler is three-stage design, respectively front end, optimizer and rear end;Front end
For analyzing source code, checking mistake, and construct the abstract syntax tree of language-specific.Abstract syntax tree can be converted into middle layer table
Show the code of form, optimizer and rear end operate on intermediate layer identification code;Optimizer carries out various transformation on intermediate layer identification code
To optimize to code, intermediate layer identification code is converted to the machine instruction of particular platform by rear end.
In information security field, the purpose of Code obfuscation is to increase static analysis difficulty to make code become increasingly difficult to understand,
Prevent software by malice conversed analysis;It is inserted into one kind that extra control stream is method of obscuring, passes through the control flow toward function
The extra control stream of middle insertion makes cracker that can not reconstruct original control flow graph using static analysis tools;Insertion
Control stream may be that will not always be performed to, it is also possible to be always performed to, it is also possible to be sometimes by
It executes, sometimes will not be performed.
Current C/C++ obfuscation is realized based on OLLVM, and what is obscured is the code of middle layer representation;
OLLVM (Obfuscator-LLVM) is an open source projects, it is desirable to provide the Code obfuscation work for LLVM of Yi yun open source
Tool is flowed, the difficulty of Lai Zengjia reverse-engineering by being inserted into extra control;But it is that OLLVM obscures as a result, can only be compiled by LLVM
Device is converted to the machine instruction of corresponding platform, can not transplant, and is unlikely handled again by other compilers.
Thus the prior art could be improved and improve.
Summary of the invention
The technical problem to be solved in the present invention is that in view of the deficiencies of the prior art, providing a kind of based on compiler front-end
Obscure method, storage medium and terminal device, with solve in the prior art OLLVM confusion result cannot pass through other compile
Device compiling, the problem of can not transplanting.
In order to solve the above-mentioned technical problem, the technical solution adopted in the present invention is as follows:
It is a kind of that method is obscured based on compiler front-end comprising:
Processing C or C++ source file is analyzed by compiler front-end, obtains the head that corresponding abstract syntax tree and source file include
File;
All nodes of ergodic abstract syntax tree detect in the wherein clause of compound statement with the presence or absence of only single branch
First clause is inserted into extra control stream according to testing result;
Creation one and the consistent C or C++ null file of original source file type;
The header file that source file is included is output in null file according to the grammatical form that C or C++ includes header file,
And the top statement for belonging to source file in abstract tree is output in null file according to correct grammatical form.
All nodes of the ergodic abstract syntax tree detect in the wherein clause of compound statement with the presence or absence of only single point
First clause of branch, is inserted into extra control stream according to testing result and specifically includes:
If there is the first clause of only single branch in the clause of compound statement, increase by one second point for the sentence
Branch;What the content of second branch was randomly generated, or come then slightly to change from single branch replica.
All nodes of the ergodic abstract syntax tree detect in the wherein clause of compound statement with the presence or absence of only single point
First clause of branch is inserted into extra control stream according to testing result further include:
If first clause is not present in the clause of compound statement, one group is randomly choosed from clause and does not include variable
The first of statement is replaced sentence, creates second clause to replace this group first and be replaced sentence.
The control expression formula of second clause is permanent for genuine opaque predicate, single point unique in second clause
The content of branch is described first to be replaced sentence.
All nodes of the ergodic abstract syntax tree detect in the wherein clause of compound statement with the presence or absence of only single point
First clause of branch is inserted into extra control stream according to testing result further include:
If first clause is not present in the clause of compound statement, one group is randomly choosed from clause and does not include variable
The second of statement is replaced sentence, and creation one there is the third clause of double branches to be replaced sentence to replace this group second;
Described second is replaced the second branch for being put into third clause, then is put after being replaced slightly change for described second
Enter the first branch of third clause.
The control expression formula of the third clause is that perseverance is false opaque predicate.
First clause, the second clause or third clause are if sentence.
A kind of terminal device, comprising: processor and memory;Being stored on the memory can be executed by the processor
Computer-readable program;The processor realized when executing the computer-readable program described in any one as above based on
The step of compiler front-end obscured in method.
A kind of computer readable storage medium, the computer-readable recording medium storage have one or more program,
One or more of programs can be executed by one or more processor, to realize described in any one as above based on compiling
The step of device front end obscured in method.
The utility model has the advantages that compared with prior art, the present invention provides a kind of to obscure method, storage based on compiler front-end
Medium and terminal device, which comprises processing C or C++ source file is analyzed by compiler front-end, obtains being abstracted language accordingly
The header file that method tree and source file include;All nodes of ergodic abstract syntax tree, detecting in the wherein clause of compound statement is
It is no to there is the first clause for there was only single branch, it is inserted into extra control stream according to testing result;Creation one and original source file class
The consistent C or C++ null file of type;The header file for being included by source file is defeated according to the grammatical form that C or C++ includes header file
Out into null file, and the top statement for belonging to source file in abstract tree is output to blank text according to correct grammatical form
In part.It is flowed in this way, being inserted into extra control by compiler front-end, creation one literary with the consistent blank of original source file type
Part, and by abstract syntax tree content and the source file header file that includes re-write null file, the C/C after being obscured
++ source code, so that having both code portability while guaranteeing code protection ability.
Detailed description of the invention
Fig. 1 is a kind of flow chart for obscuring method preferred embodiment based on compiler front-end provided by the invention.
Fig. 2 is provided by the invention a kind of to obscure step S200 in the first embodiment of method based on compiler front-end
Specific flow chart.
Fig. 3 is provided by the invention a kind of to obscure step S200 in the first embodiment of method based on compiler front-end
Specific flow chart.
Fig. 4 is the structure principle chart of terminal device preferred embodiment provided by the invention.
Specific embodiment
The present invention is a kind of to obscure method, storage medium and terminal device based on compiler front-end, to make mesh of the invention
, technical solution and effect it is clearer, clear, the present invention is described in more detail as follows in conjunction with drawings and embodiments.
It should be appreciated that described herein, specific examples are only used to explain the present invention, is not intended to limit the present invention.
Those skilled in the art of the present technique are appreciated that unless expressly stated, singular " one " used herein, " one
It is a ", " described " and "the" may also comprise plural form.It is to be further understood that being arranged used in specification of the invention
Diction " comprising " refer to that there are the feature, integer, step, operation, element and/or component, but it is not excluded that in the presence of or addition
Other one or more features, integer, step, operation, element, component and/or their group.It should be understood that when we claim member
Part is " connected " or when " coupled " to another element, it can be directly connected or coupled to other elements, or there may also be
Intermediary element.In addition, " connection " used herein or " coupling " may include being wirelessly connected or wirelessly coupling.It is used herein to arrange
Diction "and/or" includes one or more associated wholes for listing item or any cell and all combinations.
Those skilled in the art of the present technique are appreciated that unless otherwise defined, all terms used herein (including technology art
Language and scientific term), there is meaning identical with the general understanding of those of ordinary skill in fields of the present invention.Should also
Understand, those terms such as defined in the general dictionary, it should be understood that have in the context of the prior art
The consistent meaning of meaning, and unless idealization or meaning too formal otherwise will not be used by specific definitions as here
To explain.
With reference to the accompanying drawing, by the description of the embodiment, further explanation of the contents of the invention are made.
First embodiment
Fig. 1 is please referred to, Fig. 1 is a kind of flow chart for obscuring method based on compiler front-end provided by the invention, described
Method includes:
S100, processing C or C++ source file is analyzed by compiler front-end, obtain corresponding abstract syntax tree and source file packet
The header file contained.
Specifically, in the embodiment of the present invention, processing C or C++ source file is analyzed by compiler front-end, is abstracted accordingly
Syntax tree further and obtains the header file that source file is included;The abstract syntax tree and source file institute that analysis is handled
The header file for including be after the step of basic data is provided.
All nodes of S200, ergodic abstract syntax tree detect in the wherein clause of compound statement with the presence or absence of only single
First clause of branch is inserted into extra control stream according to testing result.
Specifically, all nodes for traversing the abstract syntax tree, are detected in the compound statement in the abstract syntax tree
With the presence or absence of the sentence of only one single branch, and compound statement is modified accordingly according to testing result, it is more to realize
The insertion of remaining control stream.It should be noted that the compound statement refer to function define in compound statement, the compound statement
Specifically refer to other compound statements occurred in function body or function body.
Correspondingly, referring to Fig. 2, the S200 is specifically included:
If there is the first clause of only single branch in the clause of S210, compound statement, increase by one for the sentence
Two branches.
Specifically, first clause is if sentence, when there is the if sentence for there was only single branch, then directly in the if language
Increase an else branch (i.e. the second branch) in sentence, what the content of the else was randomly generated, or from single branch replica
Come over then slightly to change.
The S200 step further include:
If first clause is not present in the clause of S211, compound statement, one group is randomly choosed from clause and is not wrapped
First containing variable declarations is replaced sentence, creates second clause to replace this group first and be replaced sentence.
Specifically, second clause is also if sentence, when first clause is not present, then from the son of compound statement
One group is randomly choosed in sentence do not include the first of variable declarations and be replaced sentence, create the if sentence (i.e. second of a Ge Dan branch
Clause) replace the sentence that this group is selected;Particularly, it is true that the control expression formula of the if sentence (i.e. the second clause), which is perseverance,
Opaque predicate, the content of unique single branch is that the group described first is replaced sentence in the if sentence.It needs
Bright, the opaque predicate is an expression formula, and value can only determine at runtime, it is difficult to static analysis.
S300, creation one and the consistent C or C++ null file of original source file type.
Specifically, if original source file is C file, null file is C file, if original source file is C++ text
Part, then null file is C++ file.
S400, the header file that source file is included is output to blank text according to the grammatical form that C or C++ includes header file
In part, and the top statement for belonging to source file in abstract tree is output in null file according to correct grammatical form.
Specifically, one and C the or C++ null file of original source file same type are created, is included by source file
Header file is output in null file according to the grammatical form that C or C++ includes header file, and will belong to source document in abstract syntax tree
The top statement of part is output in the null file with its correct grammatical form;Since C or C++ source code is with stronger
Portability enhances portability so that can also be compiled by program of obscuring that treated while by a variety of compilers.
It should be noted that the grammatical form for including header file according to C or C++ is output in null file and refers to:
To be expressed with the grammer clause comprising header file in original source file, in the null file after obscuring similarly with comprising
The grammer clause of header file is written (for example, in original source file are as follows: #include<stdio.h>, the source document after obscuring
Also it is in part #include<stdio.h>);The top statement for belonging to source file in the same abstract syntax tree is also the same
It is written in null file with original grammatical form, but its content is the content after obscuring.
Second embodiment
It is a kind of second embodiment for obscuring method based on compiler front-end provided by the invention please continue to refer to Fig. 1
Flow chart, which comprises
S100, processing C or C++ source file is analyzed by compiler front-end, obtain corresponding abstract syntax tree and source file packet
The header file contained.
All nodes of S200, ergodic abstract syntax tree detect in the wherein clause of compound statement with the presence or absence of only single
First clause of branch is inserted into extra control stream according to testing result.
Correspondingly, referring to Fig. 3, the S200 is specifically included:
If there is the first clause of only single branch in the clause of S210, compound statement, increase by one for the sentence
Two branches.
Specifically, the S200 step further includes the steps that another embodiment:
If first clause is not present in the clause of S211, compound statement, one group is randomly choosed from clause and is not wrapped
Second containing variable declarations is replaced sentence, and creation one there is the third clause of double branches to be replaced language to replace this group second
Sentence;
S212, described second is replaced the second branch for being put into third clause, then described second is replaced and is slightly changed
The first branch of third clause is put into after dynamic.
Specifically, it when the first clause is not present in the compound statement in abstract syntax tree, then randomly chooses one group and does not include
The second of variable declarations is replaced sentence, and the third clause of one Ge Shuan branch of creation replaces this group second and is replaced sentence, then will
The group second is replaced the second branch that sentence is put into the third clause, puts sentence is replaced by group second of change
Enter the first branch of the third clause;Particularly, the third clause is if sentence, and the second of the third clause branches into
Eles sentence, the control expression formula of the third clause are that perseverance is false opaque predicate.It should be noted that described opaque
Predicate is an expression formula, and value can only determine at runtime, it is difficult to static analysis.
S300, creation one and the consistent C or C++ null file of original source file type;
S400, the header file that source file is included is output to blank text according to the grammatical form that C or C++ includes header file
In part, and the top statement for belonging to source file in abstract tree is output in null file according to correct grammatical form.
It should be noted that first clause, the second clause or third clause are if sentences, the shape of first clause
Formula is if (expression) statement, and modified form is if (expression) statment else
Statement, the form of second clause are if (expression) statement, and the form of the third clause is if
(expression)statment else statement。
The technical solution of the application is carried out so that the first clause, the second clause and third clause are if sentence as an example below
It is explained further:
Example one
Code before not obscuring are as follows:
Detect that (i.e. there are single point in if sentence in the presence of the first clause of only single branch in the clause of above-mentioned compound statement
Branch) when, an else branch is inserted into for if sentence.
Replaced code is specific as follows:
It is inserted into the second branch in if sentence as extra control stream, has achieved the purpose that Code obfuscation.
Example two
Code before not obscuring are as follows:
The each node of ergodic abstract tree detects that there is no the first of only single branch in the clause of all compound statements
When clause, one group of clause for being free of variable declarations in above-mentioned compound statement is chosen at random, is " printf (" arg b in this example
Is:%d n ", b) ", " a=a+1 ", " b=b+1 " and " r=a-b ", creation one the second clause (being herein if sentence) by this
Group clause replaces, and the content of the if sentence is this group of clause being replaced.
Replaced code is specific as follows:
Example three
Code before not obscuring are as follows:
The each node of ergodic abstract tree detects that there is no the first of only single branch in the clause of all compound statements
When clause, one group of clause for being free of variable declarations in above-mentioned compound statement is chosen at random, is " b=b+1 " and " r=in this example
A-b ", creation one there is the third clause (being herein if sentence) of double branches to replace this group of clause, by this being replaced
Clause is modified is put into the first branch of if sentence for group, and this group of clause being replaced is directly placed into the first of if sentence
In the second branch (i.e. else sentence) of if sentence described in branch;Particularly, in order to enhance aliasing effect, in second branch
Some pairs of programs, which can also be inserted into, does not have the sentence of any actual influence.
Replaced code is specific as follows:
A kind of terminal device, comprising: processor and memory;Being stored on the memory can be executed by the processor
Computer-readable program;The processor realized when executing the computer-readable program described in any one as above based on
The step of compiler front-end obscured in method.
A kind of computer readable storage medium, the computer-readable recording medium storage have one or more program,
One or more of programs can be executed by one or more processor, to realize described in any one as above based on compiling
The step of device front end obscured in method.
In conclusion the present invention is by modifying to compound statement on abstract syntax tree, it is many extra to insert
Control stream is obscured, and after the completion of modification, abstract syntax tree is again converted into C or C++ source code and is exported to newly-built C or C+
In+null file, can allow developer's visual sense to after obscuring as a result, more importantly that obtain after obscuring is C/
C++ source code can be compiled by a variety of compilers, can be transplanted to various platforms, so that while realizing code protection
It is able to maintain preferable portability.
The present invention also provides a kind of computer readable storage medium, the computer-readable recording medium storage has one
Or multiple programs, one or more of programs can be executed by one or more processor, to realize above-described embodiment
A kind of step obscured in method based on compiler front-end.
The present invention also provides a kind of terminal devices, as shown in Figure 3 comprising at least one processor (processor)
20;Display screen 21;And memory (memory) 22, can also include communication interface (Communications Interface)
23 and bus 24.Wherein, processor 20, display screen 21, memory 22 and communication interface 23 can be completed mutually by bus 24
Between communication.Display screen 21 is set as preset user in display initial setting mode and guides interface.Communication interface 23 can pass
Defeated information.Processor 20 can call the logical order in memory 22, to execute the method in above-described embodiment.
In addition, the logical order in above-mentioned memory 22 can be realized and as only by way of SFU software functional unit
Vertical product when selling or using, can store in a computer readable storage medium.
Memory 22 is used as a kind of computer readable storage medium, and it is executable to may be configured as storage software program, computer
Program, such as the corresponding program instruction of method or module in the embodiment of the present disclosure.Processor 30 is stored in memory by operation
Software program, instruction or module in 22, thereby executing functional application and data processing, i.e. side in realization above-described embodiment
Method.
Memory 22 may include storing program area and storage data area, wherein storing program area can storage program area, extremely
Application program needed for a few function;Storage data area, which can be stored, uses created data etc. according to terminal device.This
Outside, memory 22 may include high-speed random access memory, can also include nonvolatile memory.For example, USB flash disk, movement
Hard disk, read-only memory (Read-Only Memory, ROM), random access memory (Random Access Memory,
RAM), a variety of media that can store program code such as magnetic or disk, are also possible to transitory memory medium.
In addition, a plurality of instruction processing unit in above-mentioned storage medium and mobile terminal loads and the detailed process executed exists
It has been described in detail in the above method, has just no longer stated one by one herein.
Finally, it should be noted that the above embodiments are merely illustrative of the technical solutions of the present invention, rather than its limitations;Although
Present invention has been described in detail with reference to the aforementioned embodiments, those skilled in the art should understand that: it still may be used
To modify the technical solutions described in the foregoing embodiments or equivalent replacement of some of the technical features;
And these are modified or replaceed, technical solution of various embodiments of the present invention that it does not separate the essence of the corresponding technical solution spirit and
Range.
Claims (10)
1. a kind of obscure method based on compiler front-end, characterized in that it comprises:
Processing C or C++ source file is analyzed by compiler front-end, obtains the head text that corresponding abstract syntax tree and source file include
Part;
All nodes of ergodic abstract syntax tree detect in the wherein clause of compound statement with the presence or absence of the first of only single branch
Clause is inserted into extra control stream according to testing result;
Creation one and the consistent C or C++ null file of original source file type;
The header file that source file is included is output in null file according to the grammatical form that C or C++ includes header file, and will
The top statement for belonging to source file in abstract tree is output in null file according to correct grammatical form.
2. according to claim 1 obscure method based on compiler front-end, which is characterized in that ergodic abstract syntax tree
All nodes are detected in the wherein clause of compound statement with the presence or absence of the first clause of only single branch, are inserted according to testing result
Enter extra control stream to specifically include:
If there is the first clause of only single branch in the clause of compound statement, increase by second branch for the clause.
3. according to claim 2 obscure method based on compiler front-end, which is characterized in that ergodic abstract syntax tree
All nodes are detected in the wherein clause of compound statement with the presence or absence of the first clause of only single branch, are inserted according to testing result
Enter extra control stream further include:
If first clause is not present in the clause of compound statement, one group is randomly choosed from clause and does not include variable declarations
First be replaced sentence, create second clause to replace this group first and be replaced sentence.
4. according to claim 3 obscure method based on compiler front-end, which is characterized in that the control of second clause
Expression formula processed is permanent for genuine opaque predicate, and the content of unique single branch of second clause is described first to be replaced
Change sentence.
5. according to claim 2 obscure method based on compiler front-end, which is characterized in that ergodic abstract syntax tree
All nodes are detected in the wherein clause of compound statement with the presence or absence of the first clause of only single branch, are inserted according to testing result
Enter extra control stream further include:
If first clause is not present in the clause of compound statement, one group is randomly choosed from clause and does not include variable declarations
Second be replaced sentence, creation one there is the third clause of double branches to be replaced sentence to replace this group second;
It is replaced the second branch that sentence is put into third clause by described second, then is replaced sentence for described second and slightly changes
It is put into the first branch of third clause afterwards.
6. according to claim 5 obscure method based on compiler front-end, which is characterized in that the control of the third clause
Expression formula processed is that perseverance is false opaque predicate.
7. according to claim 2 obscure method based on compiler front-end, which is characterized in that second branch it is interior
Hold and is randomly generated, or come then slightly to change from single branch replica.
8. according to claim 6 obscure method based on compiler front-end, which is characterized in that first clause,
Two clauses or third clause are if sentence.
9. a kind of terminal device characterized by comprising processor and memory;Being stored on the memory can be described
The computer-readable program that processor executes;The processor realizes such as claim 1 when executing the computer-readable program
The step obscured in method described in~8 any one based on compiler front-end.
10. a kind of computer readable storage medium, which is characterized in that the computer-readable recording medium storage have one or
Multiple programs, one or more of programs can be executed by one or more processor, to realize such as claim 1~8
The step obscured in method described in any one based on compiler front-end.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910716285.1A CN110413283B (en) | 2019-08-02 | 2019-08-02 | Confusion method based on compiler front end, storage medium and terminal equipment |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910716285.1A CN110413283B (en) | 2019-08-02 | 2019-08-02 | Confusion method based on compiler front end, storage medium and terminal equipment |
Publications (2)
Publication Number | Publication Date |
---|---|
CN110413283A true CN110413283A (en) | 2019-11-05 |
CN110413283B CN110413283B (en) | 2023-05-30 |
Family
ID=68365693
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910716285.1A Active CN110413283B (en) | 2019-08-02 | 2019-08-02 | Confusion method based on compiler front end, storage medium and terminal equipment |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN110413283B (en) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113031930A (en) * | 2019-12-24 | 2021-06-25 | 武汉斗鱼鱼乐网络科技有限公司 | Source code confusion generation method and device for control flow flattening |
CN113391817A (en) * | 2021-06-16 | 2021-09-14 | 中国海洋大学 | ANTLR 4-based header file replacement method and device |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20100058301A1 (en) * | 2008-08-26 | 2010-03-04 | Apple Inc. | System and method for branch extraction obfuscation |
CN107229848A (en) * | 2017-06-12 | 2017-10-03 | 北京洋浦伟业科技发展有限公司 | A kind of code reinforcement means and device |
CN107632832A (en) * | 2017-09-27 | 2018-01-26 | 电子科技大学 | One kind obscures method towards dalvik bytecode controlling streams |
CN108710787A (en) * | 2018-03-26 | 2018-10-26 | 江苏通付盾信息安全技术有限公司 | Code obfuscation method and device, computing device, computer storage media |
CN109992935A (en) * | 2019-03-15 | 2019-07-09 | 同盾控股有限公司 | A kind of source code guard method and device |
-
2019
- 2019-08-02 CN CN201910716285.1A patent/CN110413283B/en active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20100058301A1 (en) * | 2008-08-26 | 2010-03-04 | Apple Inc. | System and method for branch extraction obfuscation |
CN107229848A (en) * | 2017-06-12 | 2017-10-03 | 北京洋浦伟业科技发展有限公司 | A kind of code reinforcement means and device |
CN107632832A (en) * | 2017-09-27 | 2018-01-26 | 电子科技大学 | One kind obscures method towards dalvik bytecode controlling streams |
CN108710787A (en) * | 2018-03-26 | 2018-10-26 | 江苏通付盾信息安全技术有限公司 | Code obfuscation method and device, computing device, computer storage media |
CN109992935A (en) * | 2019-03-15 | 2019-07-09 | 同盾控股有限公司 | A kind of source code guard method and device |
Non-Patent Citations (1)
Title |
---|
张清泉: "基于Clang的C++代码混潜工具设计与实现", 《中国优秀硕士学位论文全文数据库 (基础科学辑)》 * |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113031930A (en) * | 2019-12-24 | 2021-06-25 | 武汉斗鱼鱼乐网络科技有限公司 | Source code confusion generation method and device for control flow flattening |
CN113031930B (en) * | 2019-12-24 | 2022-07-05 | 武汉斗鱼鱼乐网络科技有限公司 | Source code confusion generation method and device for control flow flattening |
CN113391817A (en) * | 2021-06-16 | 2021-09-14 | 中国海洋大学 | ANTLR 4-based header file replacement method and device |
CN113391817B (en) * | 2021-06-16 | 2022-08-26 | 中国海洋大学 | ANTLR 4-based header file replacement method and device |
Also Published As
Publication number | Publication date |
---|---|
CN110413283B (en) | 2023-05-30 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN112100054B (en) | Data management and control oriented program static analysis method and system | |
Friesen | Javafor Android | |
US8589897B2 (en) | System and method for branch extraction obfuscation | |
US7584458B2 (en) | Source code annotation language | |
CN103064721A (en) | Sharing of first class objects across multiple interpreted programming languages | |
Barenghi et al. | Parallel parsing made practical | |
US10216501B2 (en) | Generating code in statically typed programming languages for dynamically typed array-based language | |
CN102591777A (en) | Unit test code generation method and device | |
CN103927164B (en) | A kind of script obscures method and system | |
CN110413283A (en) | Method, storage medium and terminal device are obscured based on compiler front-end | |
CN107545182A (en) | Around the method and system of function call chain detection in a kind of IOS applications | |
Li et al. | Bytecode testability transformation | |
CN104965687A (en) | Big data processing method and apparatus based on instruction set generation | |
Nichols et al. | Structural and nominal cross-language clone detection | |
Galowicz | C++ 17 STL Cookbook | |
Lehner | A formal definition of JML in Coq and its application to runtime assertion checking | |
CN102135898A (en) | Universal GUI (Graphic User Interface) development and compilation processing method and system | |
Bacchiani et al. | A Java typestate checker supporting inheritance | |
WO2008019256A2 (en) | Plasma processing system component analysis software and methods and systems for creating the same | |
Clark | OCL Pattern Matching. | |
EP3966679A1 (en) | System and method of computer-assisted computer programming | |
CN112799942B (en) | Keil C51-based software source code and target code coverage rate analysis method and system | |
Grigoryan et al. | Expert C++: Become a proficient programmer by learning coding best practices with C++ 17 and C++ 20's latest features | |
Panda et al. | Hierarchical regression test case selection using slicing | |
Aceto et al. | Meta SOS-a maude based SOS meta-theory framework |
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 |