Constants Disintegration

El constants disintegration desintegra los números de tu código en cadenas de operaciones aritméticas, lógicas y condicionales, de forma que los valores originales nunca aparecen en el binario.

  • .NET.NET
TL;DR

El constants disintegration sustituye los números literales de tu aplicación por operaciones dinámicas que calculan esos valores en runtime. La constante 42 nunca se almacena como 42. La produce una cadena de operaciones, así que un atacante que escanee el binario no puede encontrarla ni reconocerla.

Definición

¿Qué es el constants disintegration?

El constants disintegration es una técnica de ofuscación que elimina los valores numéricos literales del código compilado sustituyendo cada uno por una computación que lo produce.

Los números tienen significado. El tamaño de un buffer, un valor mágico, una bitmask, un nivel de licencia: estas constantes le cuentan a un atacante cómo funciona un algoritmo y son fáciles de encontrar en un binario.

El constants disintegration parte cada número en operaciones aritméticas, lógicas y condicionales que evalúan al mismo valor en runtime. La constante nunca se almacena directamente, así que no se puede encontrar escaneando ni reconocer mediante análisis.

Mecanismo

Cómo funciona el constants disintegration

El constants disintegration transforma cada literal en una computación dinámica:

  • Descomposición aritmética. Un valor se expresa como una cadena de operaciones aritméticas que llegan a él.

  • Operaciones lógicas y condicionales. Se entremezcla lógica bitwise y pasos condicionales para que la computación resista a la simplificación.

  • Evaluación dinámica. El valor se produce en runtime, nunca se almacena como literal.

Cada disintegration se verifica para calcular exactamente el valor original.

Ejemplo

Ejemplo de constants disintegration

Los mismos ajustes de buffer, antes y después del constants disintegration. Los valores en runtime son idénticos.

Original

Una constante con significado vive en el código como un número plano. Un atacante la encuentra y entiende qué controla.

Desintegrado

La misma constante es ahora una cadena de operaciones calculadas en runtime. El número no aparece y la intención queda oculta.

Original
class Buffer
{
    const int Capacity = 4096;
    const int Threshold = 256;
}
Desintegrado
class Buffer
{
    static readonly int Capacity = (1 << 12);
    static readonly int Threshold = ((1 << 7) << 1);
}

Casos de uso

Cuándo usar constants disintegration

El constants disintegration es especialmente útil cuando tu aplicación .NET:

  • Usa constantes numéricas con significado que revelan cómo funciona la lógica.
  • Contiene tamaños de buffer, máscaras, umbrales o valores mágicos que merece la pena ocultar.
  • Ya está renombrada y con string encryption y necesita proteger también los datos numéricos.

Combina con string encryption y name obfuscation: juntas ocultan los nombres, el texto y los números que lee un atacante.

Disponibilidad por plataforma

Constants disintegration y la plataforma .NET

  • .NET

    Desintegración de constantes enteras en operaciones dinámicas. En otras plataformas, la protección numérica equivalente la dan constant mutation y arithmetic obfuscation.

Preguntas frecuentes

¿Qué es el constants disintegration?
El constants disintegration es una técnica de ofuscación para .NET que sustituye los números literales de tu código por cadenas de operaciones aritméticas, lógicas y condicionales, de forma que los valores originales nunca aparecen en el binario.
¿El constants disintegration afecta al rendimiento?
Añade una pequeña sobrecarga, ya que las constantes se calculan en lugar de almacenarse. El nivel es configurable para equilibrar protección y velocidad.
¿El constants disintegration cambia los resultados?
No. Cada disintegration se verifica para calcular exactamente el valor original.
¿En qué se diferencia del constant mutation?
Comparten objetivo en plataformas distintas. El constants disintegration es la protección de .NET. El constant mutation es el equivalente en Android.
¿Qué plataformas soportan el constants disintegration?
El constants disintegration se aplica a .NET. Android usa constant mutation para la protección equivalente.
+10.000 desarrolladores y empresas protegen sus aplicaciones con ByteHide

Protege tu aplicación con
ByteHide Shield

El constants disintegration es una de las más de 20 protecciones de ByteHide Shield. Aplícalo a tu aplicación .NET.

ByteHide runtime dashboard showing live threat monitoring and protection metrics