/

Constant Disintegration

Protection ID: constants_mutation

This protection disintegrates the integers of your application in several arithmetic, logical and conditional operations dynamically so that the original value cannot be obtained.

Startup Enterprise


Parameters

  • Intensity integer : Determine the amount of operations that will be generated to disintegrate the values. 1 to 10 2 by default
  • Operations string : It allows to select what type of operations will be used to disintegrate the values.
    • Arithmetic
    • Mathematics Startup
    • Conditionals
    • Logic
    • External
    • Conversion
    • Disitegration
    • Native Enterprise
  • Strings boolean : Determines if the strings and text of the application should be disintegrated.

Rules configuration

  • shield.config.json
{
  "protections": {
    "constants_mutation": {
      "intensity": 2, // From 1 to 10. Default 2.
      "operations": "arithmetic|logic|conversion", // string with the selected operations separated by a vertical bar
      "mutate strings": true // true or false
    }
  }
}

Modes

  • Default: Disintegrates integer constants based on dynamic operations.

Code example

  • Before:
Program.n += 3 * args.Length;
Console.WriteLine($"Hello World ! Current processes {n}");
Console.ReadKey();
  • After:
int[] array = new int[] {
    767790,
    -517058,
    38748320
};
checked {
    object[] array4 = new object[array3[num4 - num5]];
    array4[array[ " ͕ ".Length] * ( -160764 + 829328 > > Convert.ToInt32( "13", 16))] = "෣ᦐ";
    array4[(Convert.ToInt32( "1000011100000110110", 2) | 250883 * 2) ^ Marshal.SizeOf(typeof(MoveBufferArea))] = 
    unchecked(Marshal.SizeOf(typeof(__9__2_0)) - ((64135 ^ 842523) + checked(438545 - 732342)));
    int num6;
    if (((18665 % 7466 > Convert.ToInt32( "fffd0bb9", 16)) ? 1 : 0) == 0 / 2133) {
        num6 = -767297 - -110690;
    }
    else {
        num6 = ~ - 133694;
    }
    array7[num6] = (int) array2[((62301 < 630141) ? -255426 : -270726) + (83010 | 172416)]; <
    Module >.get_InheritanceFlags(ref str3, array7);
}
Console.WriteLine(str + str2 + str3 + (ConcurrentDictionary__2.add_ReflectionOnlyNamespaceResolve * checked((array[6] > >
(6 | 4)) - unchecked(833425 + -830673) * Convert.ToInt32( "334", 8))).ToString());
Console.ReadKey();

Exclusions

  • Exclude with attribute

Include this attribute in your source code:

[Obfuscation(Exclude = false, Feature = "-constants_mutation")]
  • Exclude from the interface

You can exclude this protection from the methods or classes you want.


Compatibility

FrameworkCompatibilityComments
.NET Core
.NET Framework
.NET (up to 8 version)
.NET Standard
Xamarin IOS
Xamarin Android
Xamarin MacOs
WPF
Blazor
.NET Maui
Unity
ASP
Silverlight
VBa (Visual Basic) or C# (CSharp)
WinRT

Shield is compatible with all versions of .NET, it doesn't matter if you use .NET 2.0, .NET 4.7, .NET Core 2.1 or Xamarin.Forms 5.0, it will adapt automatically according to needs, you don't have to worry about this.

Previous
Anti Dump