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 PDF

Info

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
Application number
CN201910716285.1A
Other languages
Chinese (zh)
Other versions
CN110413283B (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 Zhiyouwang'an Technology Co Ltd
Original Assignee
Beijing Zhiyouwang'an 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 Zhiyouwang'an Technology Co Ltd filed Critical Beijing Zhiyouwang'an Technology Co Ltd
Priority to CN201910716285.1A priority Critical patent/CN110413283B/en
Publication of CN110413283A publication Critical patent/CN110413283A/en
Application granted granted Critical
Publication of CN110413283B publication Critical patent/CN110413283B/en
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/40Transformation of program code
    • G06F8/41Compilation
    • G06F8/43Checking; Contextual analysis
    • G06F8/433Dependency analysis; Data or control flow analysis
    • G06F8/434Pointers; Aliasing
    • GPHYSICS
    • G06COMPUTING; 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
    • YGENERAL 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
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE 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/00Energy 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

Method, storage medium and terminal device are obscured based on compiler front-end
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.
CN201910716285.1A 2019-08-02 2019-08-02 Confusion method based on compiler front end, storage medium and terminal equipment Active CN110413283B (en)

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)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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

Patent Citations (5)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
Title
张清泉: "基于Clang的C++代码混潜工具设计与实现", 《中国优秀硕士学位论文全文数据库 (基础科学辑)》 *

Cited By (4)

* Cited by examiner, † Cited by third party
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