Code virtualization software protection system realizing instruction set randomization
A virtualization software and protection system technology, applied in the field of computer software security, can solve problems such as code confusion, poor protection effect, easy to be found and removed, etc., to increase complexity, prolong analysis time, and enhance anti-reverse analysis capabilities Effect
Patent Information
- Authority / Receiving Office
- CN · China
- Patent Type
- Applications(China)
- Current Assignee / Owner
- Publication Date
- 2015-11-11
- Estimated Expiration
- Not applicable · inactive patent
Smart Images
Figure 1 Figure 2 Figure 3
Abstract
Description
technical field
[0001] The invention belongs to the field of computer software security, in particular to a code virtualization software protection system with randomized instruction set. Background technique
[0002] While the wide application of software has brought huge benefits to the society, the issue of software security has become increasingly prominent, and software anti-malicious reverse engineering has become an urgent problem to be solved. The development of current software attack technology and reverse tools facilitates the reverse analysis of software by attackers. In addition, software generally runs in a "white box attack" environment, where attackers can completely control the execution process of the software and view the sequence of instruction execution. Therefore, given the attacker enough time, it should be possible to successfully reverse engineer the software.
[0003] The amount of information a person can process within a certain period of time i...
Examples
Embodiment 1
[0041] The present invention provides a code virtualization software protection system with instruction set randomization, said code virtualization software protection system with instruction set randomization, such as figure 1 shown, including:
[0042] 01. Build a virtual instruction set.
[0043] 02. Perform PE file detection on the program to be protected.
[0044] 03. Locate the key code segment in the program to be protected.
[0045] 04. Disassembling the key code segment to obtain a local instruction sequence.
[0046] 05. Convert the native instruction sequence into a first virtual instruction according to the designed virtual instruction set.
[0047] 06. Encode the first virtual instruction according to a preset encoding rule to obtain a bytecode instruction.
[0048] 07. Generate the auxiliary virtual machine components of the protection system.
[0049] 08. Combine the bytecode instruction and the attached virtual machine component into an additional file, fo...