Extended signature operators
Available from 9.2.2. The scan operations during which extended
XML signature definitions are used are performed based on the processing instructions that are
contained in the signature catalog. In computer languages, expressions consist of two types of
components: operands and operators. Operands are the objects that are manipulated and operators are
the symbols that represent specific actions. Operands and operators can be either scalar or
vector.
- scalar operand
- Returns a value in string format. An operand cannot have children. For example, the RegKeyValue scalar operand returns the value of the specified registry key.
- scalar operator
- Performs an operation on other operators and operands and returns results in string format. An operator can have children. For example, the AND operator, returns true or false as a result.
- vector operand
- Returns results as a set of strings. An operand cannot have children. For example, the FindFilePathEx operand, returns a set of file paths.
- vector operator
- Performs an operation on other operators and operands and returns results as a set of strings. An operator can have children. For example, the Vector operator, returns a set of strings that contain the results of all its children.
Contents
The structure of the signature catalog
Operands and operators | Function and supported attributes |
---|---|
Action | Specifies the action to be performed depending
on the result of the Condition element.
|
Condition | Verifies if the specified condition is met.
It contains one or more Action elements, which
specify the action to be performed depending on the result of the Condition element.
|
MultipleInstance | Groups information to identify a software
product that might be installed in several instances on the same workstation.
It contains 1 Iterator and 1 Instance element.
|
Variable | Is a container for a single value that is
expressed as a string whose return value is given by the result of
a set of operators and operands.
|
Core expressions
Operands and operators | Function and supported attributes |
---|---|
And | Performs a logical AND operation between the results of all its children. If one of the operations returns false, the whole operation is set to false without performing further evaluation on the remaining children. At least one child is required.
|
Clip | Returns a substring that is a range of consecutive characters from a string, starting with the character whose index is specified as startIndex and ending with the character whose index is specified as endIndex.
Note: It is recommended to use the new operator StringSlice whose
range is wider than that of Clip because StringSlice supports
negative indexes in Python syntax. |
Compare | Compares two expressions based on the value of the relation attribute. The result is true if the expression is satisfied, false if the expression is not satisfied.
|
Concat | Returns a concatenation of the expressions.
|
Contains | Checks if the string contains a string.
|
FileInfoCompare | Returns the information that is specified
in the field attribute.
|
FileExists | Returns a Boolean value that indicates if the specified file exists.
|
Not | Performs a logical NOT operation on the result
of its one child. Only one child is allowed.
|
PathExists | Returns a Boolean value that indicates if
the specified path exists.
|
Or | Performs a logical OR operation between the results of all its children. If one of the operations returns "true", the whole operation is set to "true" without performing further evaluation on the remaining children. At least one child is required. |
Substring | Searches through a string that contains multiple lines of text and returns the lines of a string that contain the search text.
|
Vector | Returns a vector that contains the union
of all its children, duplicates are included. If you specify a filter,
the result contains only the strings that match the pattern.
|
VectorAt | Returns the vector element for the specified
position.
|
VectorToScalar | Converts a vector to its scalar representation. You must convert a vector to scalar because only scalars can be compared. |
File system expressions
Operands and operators | Function and supported attributes |
---|---|
FindFilePathEx | Searches for the specified file in the specified locations. The result is a vector of all the paths where at least one entry that matches the specified file is found. The operand searches either the cache or the file system depending on the settings that are defined for the file system scanner. To have the operand search the file system, set the maxDataAge attribute to zero in the configuration file. An extra filter can be set to refine the file search. Such a filter can contain a file system scanner query, which is applied to the found file. If the filter returns a true condition, the directory for the file is returned, otherwise it is not returned.
|
FileInfoMatch |
Searches for a file with the specified name and attributes in the specified locations. The result
is true if at least one matching file is found.
|
ReadFile | Returns in string form the text from a file
on the system.
|
Native registry expressions
Operands and operators | Function and supported attributes |
---|---|
AixProductInfo | Returns any information about the supported AIX® operating systems.
|
AixProductList | Returns the set of AIX® ODM package codes. The codes that are returned
can be used with the AixProductExists and AixProductInfo operands.
|
HpProductInfo | Returns the requested information, if available.
|
HpProductList | Returns the set of HP-UX package codes. The codes that are returned can be used with the
HpProductExists and HpProductInfo operands.
|
RpmProductExists | Indicates if the specified package is installed.
|
RpmProductList | Returns the set of RPM package codes. The
codes that are returned can be used with the RpmProductExists and RpmProductInfo operands.
|
SunProductInfo | Returns the requested information, if available.
|
SunProductList | Returns the set of Sun Solaris package codes.
The codes that are returned can be used with the SunProductExists and
operands.
|
Win32ProgramInfo | Returns the requested information, if available.
|
Win32ProgramList | Returns the set of packages installed. The
codes that are returned can be used with the Win32ProgramExists and Win32ProgramInfo operands.
|
Registry operands
Operands and operators | Function and supported attributes |
---|---|
PackageInfoEqual | Returns true if an item with the same name,
version, and vendor exists in the specified registry.
|
PackageInfoMatch |
Returns true if an item with the same name, version, and vendor exists in any registry.
|
Windows™ registry expressions
Operands and operators | Function and supported attributes |
---|---|
RegKeyExists | Indicates whether the specified key exists.
|
RegKeyList | Searches the Windows™ registry
under the key that is specified in the root attribute, and returns
a list of keys that are in the registry under the root key. If the subKeys attribute
is set to false, only the values in the root key
are returned.
|
RegKeyValue | Returns the current value for the specified
registry key. When the registry key is a REG_DWORD entry,
the key attribute returns a decimal value.
|
RegKeyValueContains | Specifies whether the specified registry
key contains the specified value.
|
RegKeyValueEqual | Indicates if the specified registry key value
is equal to the specified key.
|
RegKeyVersionCompare | Compares the specified registry key value with the specified version based on the value of the relation attribute.
|