re.regex

Puedes definir la coincidencia de expresiones regulares en YARA-L 2.0 con cualquiera de las siguientes sintaxis:

  • Usar la sintaxis de YARA-L, relacionada con eventos. A continuación, se muestra una representación genérica de esta sintaxis:

    $e.field = /regex/
    
  • Usar la sintaxis de YARA-L como una función que toma los siguientes parámetros:

    • Campo al que se aplica la expresión regular
    • Expresión regular especificada como una cadena

    A continuación, se muestra una representación genérica de esta sintaxis:

    re.regex($e.field, `regex`)
    

Descripción

Esta función muestra true si la cadena contiene una substring que coincide con la expresión regular proporcionada. No es necesario agregar .* al principio ni al final de la expresión regular.

La función re.regex usa el motor de expresiones regulares RE2.

Notas
  • Para buscar la coincidencia con la cadena exacta o solo con un prefijo o sufijo, incluye los caracteres de anclaje ^ (inicial) y $ (final) en la expresión regular. Por ejemplo, /^full$/ coincide exactamente con "full", mientras que /full/ podría coincidir con "fullest", "lawfull" y "joyfully".
  • Si el campo UDM incluye caracteres de salto de línea, regexp solo coincide con la primera línea del campo UDM. Para forzar la coincidencia completa del campo UDM, agrega (?s) a la expresión regular. Por ejemplo, reemplaza /.*allUDM.*/ por /(?s).*allUDM.*/.
  • Puedes usar el modificador nocase después de las cadenas para indicar que la búsqueda debe ignorar el uso de mayúsculas.

Tipos de datos de parámetros

STRING, STRING

Tipos de expresiones de parámetros

ANY, ANY

Tipo de datos que se devuelve

BOOL

Muestras de código

Ejemplo 1
// Equivalent to $e.principal.hostname = /google/
re.regex($e.principal.hostname, "google")