Funciones de expresiones de evaluación
Puede usar expresiones de evaluación para ejecutar funciones en valores de datos variables o constantes. Es posible guardar el valor obtenido de una función de evaluación como variable o desechar el valor obtenido. Las expresiones de evaluación deben finalizar con un punto y coma.
Para asegurar que sus scripts se ejecuten en el servidor y el endpoint, los valores debe especificarse en notación hexadecimal (hex). Por ejemplo,
$int4 = getBinaryValueAt($data,0x19,2)
es correcto. Sin embargo, si el siguiente valor no hexadecimal se especifica en un entorno de endpoints, el script generará el bloqueo del Agente DLP: $int4 = getBinaryValueAt($data,25,2)
.Función | Descripción | Ejemplo |
|---|---|---|
Addition add | La función Addition toma dos valores como argumentos y los suma. Los valores pueden ser variables o constantes. Es posible guardar el resultado obtenido como variable o desechar el resultado. La función Addition agrega dos o más valores y devuelve el resultado. Los valores pueden ser variables o constantes. Es posible guardar el resultado obtenido como variable o desechar el resultado. | Suma dos variables y devuelve el valor como variable $result. $result = add($var1, $var4); Suma dos constantes pero descarta el valor. add(1, 2); Suma tres valores. $result = add($var1, 2, $var4); |
AsciiValue ascii | La función AsciiValue toma una única cadena ASCII como parámetro y la asigna a la variable especificada. La longitud del parámetro ASCII debe tener de uno a cuatro caracteres. Es posible usar esta expresión con fines de legibilidad. | $result = ascii('CFV'); A la variable $result se le asigna el valor de ASCII especificado. |
DataLength datalength | La función DataLength cuenta la longitud de la matriz de variables. La función toma el nombre de variable de una matriz de bytes como parámetro y devuelve el número de bytes de esa matriz. | $result = datalength($data); El motor crea la variable $data de matriz de bytes cuando lee un archivo. La variable $data almacena hasta los primeros 4 KB del archivo. |
Execute (función avanzada) execute | La función Execute permite a un usuario llamar métodos en cualquier objeto de Java disponible como variable en el estado informático del script. Por ejemplo, si tiene una cadena guardada con el nombre de variable $data, puede llamar al método de equivalencia de la cadena mediante la función Execute. | $result = execute($string1, equals, $string2); Se asume que una cadena se guarda como variable $string. |
GetAsciiStringAt getAsciiStringAt | La función GetAsciiStringAt trata los datos como caracteres ASCII y los convierte en una cadena. Los datos se convierten comenzando desde el desplazamiento especificado para la cantidad de dígitos especificada. | La variable $data es una matriz de bytes con los valores: 'abcdef'.getBytes(); El resultado debe ser abc. $result = getAsciiStringAt($data, 0x0, 3); |
GetBinaryIntValue getBinaryIntValue | La función GetBinaryIntValue extrae los datos de bytes como un entero desde el índice especificado de una variable de matriz de bytes. También le permite al usuario especificar la cantidad de dígitos que se deben extraer de los datos. Como el valor de devolución es un entero, la cantidad de dígitos debe ser de 1 a 4 bytes. Se usa esta función para analizar datos en desplazamientos específicos de una matriz de bytes. La cantidad de dígitos se combina para formar un valor entero. | $result = getBinaryIntValue($data, 0x0, 1); La variable $data es una matriz de bytes con los valores {(byte)0x59,(byte) 0xAD,(byte) 0x1C,(byte) 0xDF,(byte) 0x2B,(byte)0x37}. En este ejemplo, $result debería equivaler a 89. |
$result = getBinaryIntValue($data, 1); La variable $data es una matriz de bytes con los valores {1, 2, 3}. $result debe equivaler a 2. | ||
GetBinaryValueAt getBinaryValueAt | La función GetBinaryValueAt extrae los datos de bytes en una nueva matriz de bytes en función del desplazamiento y de la duración especificados. A continuación, se puede comparar la nueva matriz de bytes con otras matrices de bytes para determinar equivalencia. Esta función permite especificar cuántos dígitos recuperar de los datos (de 1 a 4 bytes). Se usa esta función para analizar datos en desplazamientos específicos de una matriz de bytes. GetBinaryValueAt() devuelve una matriz con bytes, mientras GetBinaryIntValue() devuelve un número entero compuesto por bytes. | La variable $data es una matriz de bytes con los valores {(byte)0x59,(byte) 0xAD,(byte) 0x1C,(byte) 0xDF,(byte) 0x2B,(byte)0x37}. $result debe ser una matriz de bytes con el byte 0x59. $result = getBinaryValueAt($data, 0x0, 1); |
La variable $data es una matriz de bytes con los valores {1, 2, 3}. $result debe equivaler a una nueva matriz de bytes que contiene el número 2. $result = getBinaryValueAt($data, 1); | ||
GetHexStringValue getHexStringValue | La función GetHexStringValue toma una cadena hexadecimal como parámetro y la convierte a representación de bytes (binaria). | $result = getHexStringValue('D0CF'); |
GetIntegerAt getIntegerAt | La función GetIntegerAt es similar a GetAsciiStringAt, con la excepción de que GetIntegerAt analiza los caracteres ASCII y los convierte a valores enteros. Los datos se convierten comenzando desde el desplazamiento especificado para la cantidad de dígitos especificada. Si el carácter no es un valor numérico, el script ocasiona una excepción. | La variable $data es una matriz de bytes con los valores: '12345'.getBytes(); El resultado debe ser 34. $result = getIntegerAt($data, 0x2, 2); |
GetStringValueAt getStringValueAt | La función GetStringValueAt extrae los datos en una nueva matriz de caracteres en función del desplazamiento y de la duración especificados. A continuación, se puede comparar la nueva matriz de bytes con otras matrices de bytes para determinar equivalencia. | La variable $data es una matriz de bytes con los valores {(byte)0x59,(byte) 0xAD,(byte) 0x1C,(byte) 0xDF,(byte) 0x2B,(byte)0x37}. $result = getStringValueAt($data, 0x0, 1); El resultado debe ser el byte 0x59. |
La variable $data es una matriz de bytes con los valores {1, 2, 3}. $result = getStringValueAt($data, 1); El resultado debe equivaler a una nueva matriz de bytes que contenga el número 2 (el desplazamiento comienza en cero). | ||
Modulus mod | La función Modulus (mod) devuelve el valor mod de dos parámetros. El valor mod es el remanente del primer parámetro dividido por el segundo. | El resultado debe ser 2. $result = mod(5, 3); |
Multiply multiply | La función Multiply toma dos argumentos y multiplica sus valores. La función Multiply toma dos o más argumentos y multiplica sus valores. | $result = multiply(2, 4); El resultado debe ser 8. $result = multiply(2, 4, 6); El resultado debe ser 48. |
Print (función avanzada) print | La función Imprimir toma sus argumentos, los concatena y los imprime en la salida estándar. | No se guardan los resultados, pero la salida de estándar debe tener la cadena. print('hello'); |
ReadFile (función avanzada) readfile | La función ReadFile toma un archivo que se guarde como variable en el estado informático. Lee la cantidad especificada de bytes del archivo como matriz de bytes y devuelve la matriz de bytes. Esta función requiere dos argumentos. | La variable $result debe contener una matriz de bytes de los primeros 10 bytes del archivo guardado como variable $file. $result = readFile($file, 10); |
Subtract sub | La función Subtract resta el segundo parámetro del primero. La función Subtract resta los elementos 2 a N del primer elemento. | $result = sub(10, 4); El resultado debe ser 6. $result = sub(10, 4, 6, 3); El resultado debe ser -3. |