Looking for breakthrough ideas for innovation challenges? Try Patsnap Eureka!

A program hardening method and device

A technology for hardening devices and programs, which is applied in the direction of program code conversion, program/content distribution protection, decompilation/disassembly, etc., can solve the problem of low security of software products, and achieve the effect of improving security and increasing the difficulty of reverse engineering.

Active Publication Date: 2021-07-30
BEIJING QIHOO TECH CO LTD
View PDF7 Cites 0 Cited by
  • Summary
  • Abstract
  • Description
  • Claims
  • Application Information

AI Technical Summary

Problems solved by technology

[0004] The embodiment of the present invention provides a method and device for program reinforcement, which solves the technical problem of low security of software products

Method used

the structure of the environmentally friendly knitted fabric provided by the present invention; figure 2 Flow chart of the yarn wrapping machine for environmentally friendly knitted fabrics and storage devices; image 3 Is the parameter map of the yarn covering machine
View more

Image

Smart Image Click on the blue labels to locate them in the text.
Viewing Examples
Smart Image
  • A program hardening method and device
  • A program hardening method and device
  • A program hardening method and device

Examples

Experimental program
Comparison scheme
Effect test

Embodiment approach 1

[0133] For each of the target functions, the following steps are respectively performed: in the unreachable branch of the conditional call statement of the target function, adding random calls of other functions by the target function.

[0134] Specifically, in the reachable branch of the conditional call statement of the target function, random calls of functions different from the functions called in the reachable branch by the target function are added.

[0135] For example, the source program file includes function 1, function 1 calls functions 2, 3, and 4, function 3 calls functions 2, 5, and function 4 calls functions 6, 7.

[0136] Create a conditional call statement 1 in the target function 1 (that is, in function 1). In the reachable branch of the conditional call statement 1, function 1 calls functions 2, 3, and 4. In the unreachable branch of the conditional call statement 1 Add random calls of function 1 to functions 1, 5, 6, and 7 in function 1, create conditional...

Embodiment approach 2

[0140] Perform the following steps for each of the target functions: scan the source program file to determine the number of functions in the source program file; judge whether the number of functions in the source program file is greater than a preset value; In the unreachable branch of the conditional call statement of the target function, add the random call of the target function to other functions; otherwise, in the unreachable branch of the conditional call statement of the target function, add the random call of the target function to other functions A one-to-one call.

[0141] Through the second embodiment, it is possible to balance the code size and reverse difficulty of the final generated executable program file.

[0142] In the first and second embodiments above, the random call of the objective function to other functions can be implemented as follows:

[0143] Determine one or more candidate called functions from all the functions in the source program file; in ...

Embodiment approach 3

[0166] Embodiment 3: Randomly select more than one basic block from the basic block sequence as the target basic block.

[0167] Through the above three implementation manners, more than one target basic block can be selected from the basic block sequence, and then through step 2, unreachable branches can be respectively created in each target basic block selected from the basic block sequence.

[0168] Specifically, an unreachable branch is created in the target basic block of the basic block sequence, and the implementation may include the following steps 1a-1c:

[0169] Step 1a, dividing the target basic block into M sub-code blocks, where M is an integer greater than 1.

[0170] In the specific implementation process, according to the number of assembly instruction lines of the target basic block, the instructions of the target basic block are equally divided to obtain M sub-code blocks. Specifically, if the basic blocks in the basic block sequence whose size is larger th...

the structure of the environmentally friendly knitted fabric provided by the present invention; figure 2 Flow chart of the yarn wrapping machine for environmentally friendly knitted fabrics and storage devices; image 3 Is the parameter map of the yarn covering machine
Login to View More

PUM

No PUM Login to View More

Abstract

The invention discloses a method and device for program reinforcement, which are applied in the technical field of software development. The method includes: determining N target functions from a source program file edited by a user. The source program file is composed of at least N functions, and N is greater than Integer of 1; create an unreachable branch in each of the N objective functions; add calls from the objective function to other functions in the unreachable branches of each objective function to obtain a new program, and other functions belong to the source program file; generate an executable program file corresponding to the new program. The invention improves the difficulty of software products being reversed by reverse engineers, thereby solving the technical problem of low security of software products.

Description

technical field [0001] The invention relates to the technical field of software development, in particular to a program strengthening method and device. Background technique [0002] A source program file written in a high-level language is compiled into an executable program file for machine execution, and decompilation is the reverse process. The executable program file can be decompiled to obtain a readable source program file. Computer software reverse engineering (Reversepengineering), also known as computer software restoration engineering, refers to the work of "reverse analysis and research" on the target program (executable program file) of other people's software to deduce the information used by other people's software products. Design elements such as ideas, principles, structures, algorithms, processing procedures, and operating methods can be used as a reference when developing software, or directly used in your own software products. [0003] Therefore, softw...

Claims

the structure of the environmentally friendly knitted fabric provided by the present invention; figure 2 Flow chart of the yarn wrapping machine for environmentally friendly knitted fabrics and storage devices; image 3 Is the parameter map of the yarn covering machine
Login to View More

Application Information

Patent Timeline
no application Login to View More
Patent Type & Authority Patents(China)
IPC IPC(8): G06F21/14G06F8/53
CPCG06F8/53G06F21/14
Inventor 黄绍莽潘剑锋
Owner BEIJING QIHOO TECH CO LTD
Who we serve
  • R&D Engineer
  • R&D Manager
  • IP Professional
Why Patsnap Eureka
  • Industry Leading Data Capabilities
  • Powerful AI technology
  • Patent DNA Extraction
Social media
Patsnap Eureka Blog
Learn More
PatSnap group products