- Project Objective : Perform "optimization" on the x86 binary with the dummy code applied.
- Motivation for the project
Searching for papers and studies on de-obfuscation led to the conclusion that it is impossible to "restore" binary code to the "original" code after it has been de-obfuscated, and shifted the perspective to optimizing the code so that the execution result is the same even if it is different from the original code.
- What do we apply x86 code optimizations to?
The goal is to optimize the dummy code generated when applying VMProtector's mutation.
- What optimization techniques to use?
(1) Dead Store Elimination
(2) Constant Propagation / Register Propagation
(3) Constant Folding
- Project planning
(1) Researching optimization techniques to use in this project
(2) Generate an intermediate representation for x86 assembly code
(3) Optimize for intermediate representations
- Example