Help Desk
HomeDashboardLog inRegister
master
master
  • NETGuard.IO - Help Desk
  • Getting started
  • Obfuscation Features
    • MSIL Code Encryption
    • Constants Protection
    • DRM Protection
    • Hide Call Protection
    • Code Flow Protection
    • Name Protection
    • Anti Debug Protection
    • Anti Dump Protection
    • Native Shield Protection
  • F.A.Q
    • Payment
      • Pricing Plans
      • What are the payment methods ?
      • I don't use this service anymore, refund ?
      • What is a 'token' ?
      • Obfuscation failed, refund ?
    • Obfuscated file
      • "Could not create SSL/TLS secure channel" error
      • Protected file is detected as a virus ?
    • Personal Data
      • Is my personal data safe ?
  • Obfuscation Tips
    • Updating my protected file ?
    • Program that uses JSON data
    • Protect multi-threading tasks
    • You also use VMProtect ?
    • Adding more security ?
Powered by GitBook
On this page
  • Strings
  • Description
  • Code Example
  • Numbers
  • Description
  • Code Example
  • Obfuscation Impacts

Was this helpful?

  1. Obfuscation Features

Constants Protection

Encrypt strings, numbers and arrays, and mutate result.

PreviousMSIL Code EncryptionNextDRM Protection

Last updated 5 years ago

Was this helpful?

Strings

Description

NETGuard offers to encode and encrypt string-based data. Strings are first encrypted using professional standard encryption algorithm to prevent any leak of data.

The encryption part partially relies on x86 machine code generated method to prevent decompilers to retrieve the code logic.Then the newly created piece of code is encoded using state of the art obfuscation techniques to prevent anyone from understanding the code.

The second step actually mutates the code into a meaningless code that makes the method safe from hackers.

Code Example

this.contextStatusBarPanel.Text = string.Format("CLR {0}.{1}", Environment.Version.Major, Environment.Version.Minor);
string s = string.Format(<Module>.SuppressMessageAttribute<string>((uint)((6.0 * (double)num >= 10.0 + Math.Pow((double)num, 4.0) + (double)num * 6.0) ? ((int)((IntPtr)835599393)) : (-1774442645 - sizeof(ushort) - (int)Math.Floor(948.7677371109686))), (uint)((2.0 + Math.Sin((double)num2 * 1.0) >= 1.0) ? (-1401948064 - (int)Math.Floor(6649.3740176560232)) : ((int)((IntPtr)1008681497)))), NETGuardID, token);

Numbers

Description

Numbers in your code can be very sensitive, and reveal a part of your keys. With that in mind, NETGuard uses the same logic we can find in string protection for integers and other numbers : x86 method encoding, strong encryption of actual value coupled with number decomposition.

Code Example

int num = int.MinValue;
int num2 = int.MinValue;
int num3 = 0;
int num4 = 0;
uint num6 = (uint)((2.0 * (double)num5 >= 10.0 + Math.Pow((double)num5, 2.0) + (double)num5 * 2.0) ? 1900399322 : (-453298880 - Type.EmptyTypes.Length));
uint[] array3 = array;
array3[(10.0 + Math.Pow((double)num4, 2.0) + (double)num4 * 7.0 >= 7.0 * (double)num4) ? ((int)((IntPtr)Type.EmptyTypes.Length)) : 311978074] = (uint)((4.0 * (double)num >= 10.0 + Math.Pow((double)num, 4.0) + (double)num * 4.0) ? (168811203 - sizeof(DateTime) + (int)Math.Floor(317.15675077594665)) : -1485681892);
array3[(3.0 * (double)num >= 10.0 + Math.Pow((double)num, 4.0) + (double)num * 3.0) ? (1105999488 + (int)Math.Floor(9878.46086898421)) : (sizeof(<Module>.SafeCompressedStackHandle) + sizeof(byte) - sizeof(<Module>.SafeCompressedStackHandle))] = (uint)((6.0 >= 7.0 + Math.Sin((double)num2 * 2.0)) ? (218495996 + (int)Math.Floor(9878.4164446780542)) : (186488182 + Type.EmptyTypes.Length));

Obfuscation Impacts

Targets : Methods and Functions

Strength : ⭐⭐⭐⭐⭐

Some premium plans also have DRM Protection to put data used by the decoding routine usually stored in the file, on a safe remote server