Windows C++ / Inserting Garbage Bytes

Author Unprotect
Platform Windows
Language C++
Technique Inserting Garbage Bytes

Description:

In this example, the code first allocates an array of 10 random bytes and inserts them into the code. Then, it uses the garbage bytes to confuse a disassembler by adding them to the code in a way that does not affect the program's behavior. When the disassembler tries to analyze the code, it will be unable to correctly reconstruct the original program due to the presence of the garbage bytes. This can make it more difficult to understand and analyze the code's behavior and intentions.

Code

#include <stdio.h>
#include <stdlib.h>

int main()
{
    // Insert garbage bytes into the code
    char* garbage = malloc(10);
    for (int i = 0; i < 10; i++)
    {
        garbage[i] = rand() % 256;
    }

    // Use the garbage bytes to confuse a disassembler
    int a = 5;
    int b = 10;
    int c = a + b;

    printf("The result is: %d\n", c);

    return 0;
}

Created

December 6, 2022

Last Revised

April 22, 2024