Code Flow Protection

Split functions in blocks and obscure the way they are executed.

Description

The goal of this protection is to "spaghettify " the code execution flow while keeping its original functionality. That means the code should execute the same original tasks and instructions while providing a numbers of new proxy flow within the method.

The new method flow is meant to prevent hackers from understanding the method flow with ease. NETGuard uses VirtualMachine-based obfuscation techniques to protect the code flow stack value.

Code Example

// RegExTester.frmMain
// Token: 0x06000033 RID: 51 RVA: 0x00003548 File Offset: 0x00002548
private void testButton_Click(object sender, EventArgs e)
{
    if (this.testButton.Text == "Test [F5]")
    {
        this.StartTest();
        return;
    }
    if (this.testButton.Text == "Stop [Esc]")
    {
        this.AbortTest();
    }
}

Obfuscation Impacts

Targets : Methods and Functions

Strength : ⭐⭐⭐⭐

Multi-threading tasks should be marked as excluded from the obfuscation process due to the nature of the protection that adds too much code to keep insane speed in multi-threading code.

Last updated