@ -18,7 +18,6 @@ of clang-cl is used which can use `mcmodel=large`. This will generate instructio
instruction itself resides. The only exception to this is JCC instructions, (besides call) also known as branching instructions. Take this c++ code for an example:
instruction itself resides. The only exception to this is JCC instructions, (besides call) also known as branching instructions. Take this c++ code for an example:
```cpp
```cpp
ObfuscateRoutine
ObfuscateRoutine
extern "C" int ModuleEntry()
extern "C" int ModuleEntry()
{
{
@ -78,6 +77,10 @@ void LoopDemo()
This c++ function, compiled by clang-cl with `mcmodel=large`, will generate a routine with the following instructions:
This c++ function, compiled by clang-cl with `mcmodel=large`, will generate a routine with the following instructions:
```nasm
```
# Obfuscation
# Obfuscation
The usage of the word obfuscation in this project is use to define any changes made to code, this includes code flow. `obfuscation::obfuscate`, a base class, which is inherited and expanded upon by `obfuscation::mutation`, obfuscates code flow by inserting `JMP [RIP+0x0]` instructions after every single instruction. This allows for a routine to be broken up into unique allocations of memory and thus provides more canvas room for creative ideas.
The usage of the word obfuscation in this project is use to define any changes made to code, this includes code flow. `obfuscation::obfuscate`, a base class, which is inherited and expanded upon by `obfuscation::mutation`, obfuscates code flow by inserting `JMP [RIP+0x0]` instructions after every single instruction. This allows for a routine to be broken up into unique allocations of memory and thus provides more canvas room for creative ideas.