評価文関数

変数または定数データ値に対して関数を実行するために、評価文を使えます。評価関数の戻り値を変数として保存するか、または戻り値を破棄できます。評価文はセミコロンで終了する必要があります。
スクリプトがサーバーとエンドポイント上で正しく実行されるようにするには、スクリプトの値を 16 進で表記する必要があります。たとえば、
$int4 = getBinaryValueAt($data,0x19,2)
は適切な表記です。一方、次の非 16 進値がエンドポイント環境で指定されると、スクリプトによって DLP Agent がクラッシュします:
$int4 = getBinaryValueAt($data,25,2)
評価文関数
機能
説明
Addition
add
Addition 関数は引数として 2 つの値を取り、それらを足します。値は変数でも定数でもかまいません。変数として戻された結果を保存するか、または結果を破棄できます。
Addition 関数は 2 つ以上の値を足して、その結果を返します。値は変数でも定数でもかまいません。変数として戻された結果を保存するか、または結果を破棄できます。
2 つの変数を足して、変数 $result に値を返します。
$result = add($var1, $var4);
2 つの定数を足しますが、値を破棄します。
add(1, 2);
3 つの値を足します。
$result = add($var1, 2, $var4);
AsciiValue
ascii
AsciiValue 関数はパラメータとして単一の ASCII 文字列を取り、指定の変数に割り当てます。
ASCII パラメータの長さは 1 から 4 文字である必要があります。
この文は可読性のために使うことができます。
$result = ascii('CFV');
$result 変数に、指定した ASCII 値を割り当てます。
DataLength
datalength
DataLength 関数は、変数の配列の長さを数えます。この関数はパラメータとしてバイト配列の変数名を取り、その配列のバイト数を返します。
$result = datalength($data);
エンジンはファイルを読み取るときバイト配列の $data 変数を作成します。$data 変数はファイルの最初の 4 KB までを格納します。
Execute (拡張関数)
execute
Execute 関数を使うと、ユーザーは、スクリプトの実行時に変数として利用可能な任意の Java オブジェクトのメソッドを呼び出すことができます。たとえば、変数名 $data に String が保存されている場合は、Execute 関数を使ってその String の equals メソッドを呼び出すことができます。
$result = execute($string1, equals, $string2);
変数 $string に String が保存されていると想定します。
GetAsciiStringAt
getAsciiStringAt
GetAsciiStringAt 関数は ASCII 文字としてデータを扱い、データを文字列に変換します。データは、指定されたオフセットを起点に、指定された桁数分変換されます。
変数 $data は、「'abcdef'.getBytes();」という値のバイト配列です。
結果は abc となります。
$result = getAsciiStringAt($data, 0x0, 3);
GetBinaryIntValue
getBinaryIntValue
GetBinaryIntValue 関数は、バイト配列変数の指定されたインデックスから、整数としてバイトデータを引き出します。また、ユーザーは、データから引き出す桁数を指定することもできます。戻り値は整数であるため、桁数は 1 ~ 4 バイトでなければなりません。
バイト配列の特定のオフセットでデータを分析するためにこの関数を使用できます。整数値になるように桁数を組み合わせます。
$result = getBinaryIntValue($data, 0x0, 1);
$data 変数は {(byte)0x59,(byte) 0xAD,(byte) 0x1C,(byte) 0xDF,(byte) 0x2B,(byte)0x37} の値を持つバイト配列です。この例では $result は 89 です。
$result = getBinaryIntValue($data, 1);
$data 変数は値 {1、2、3} を持つバイト配列です。$result は 2 です。
GetBinaryValuteAt
getBinaryValueAt
GetBinaryValuteAt 関数は指定したオフセットと長さに基づいて新しいバイト配列にバイトデータを挿入します。新しいバイト配列は、他のバイト配列と一致するかどうか比較されます。
この関数ではデータから取り込む桁数を (1 から 4 バイトから) 指定できます。バイト配列の特定のオフセットでデータを分析するためにこの関数を使います。
GetBinaryValueAt() はバイト配列を返し、GetBinaryIntValue() はバイトで構成される整数を返します。
$data 変数は {(byte)0x59,(byte) 0xAD,(byte) 0x1C,(byte) 0xDF,(byte) 0x2B,(byte)0x37} の値を持つバイト配列です。$result はバイト 0x59 のバイト配列です。
$result = getBinaryValueAt($data, 0x0, 1);
$data 変数は値 {1、2、3} を持つバイト配列です。$result は数字 2 を持つ新しいバイト配列です。
$result = getBinaryValueAt($data, 1);
GetHexStringValue
getHexStringValue
GetHexStringValue 関数はパラメータとして 16 進文字列を取り、バイト (バイナリ) 表示に変換します。
$result = getHexStringValue('D0CF');
GetIntegerAt
getIntegerAt
GetIntegerAt 関数は GetAsciiStringAt に類似していますが、GetIntegerAt は ASCII 文字を解析して整数値に変換します。データは、指定されたオフセットを起点に、指定された桁数分変換されます。文字が数字でない場合、スクリプトで例外が発生します。
変数 $data は、「'12345'.getBytes();」という値のバイト配列です。
結果は 34 となります。
$result = getIntegerAt($data, 0x2, 2);
GetStringValueAt
getStringValueAt
GetStringValueAt 関数は指定したオフセットと長さに基づいて新しい文字配列にデータを挿入します。新しいバイト配列は、他のバイト配列と一致するかどうか比較されます。
$data 変数は {(byte)0x59,(byte) 0xAD,(byte) 0x1C,(byte) 0xDF,(byte) 0x2B,(byte)0x37} の値を持つバイト配列です。
$result = getStringValueAt($data, 0x0, 1);
結果はバイト 0x59 となります。
$data 変数は値 {1、2、3} を持つバイト配列です。
$result = getStringValueAt($data, 1);
結果はその中の 2 を持つ新しいバイト配列です。(オフセットは 0 で開始されます。)
Modulus
mod
Modulus (mod) 関数は 2 つのパラメータの剰余を返します。剰余は最初のパラメータを 2 つ目のパラメータで割った余りです。
結果は 2 となります。
$result = mod(5, 3);
Multiply
multiply
Multiply は 2 個の引数を取り、それらの値を掛けます。
Multiply は 2 個以上の引数を取り、それらの値を掛けます。
$result = multiply(2, 4);
結果は 8 となります。
$result = multiply(2, 4, 6);
結果は 48 となります。
Print (拡張関数)
print
Print 関数は引数を取り、すべてを連結して標準出力にそれを印刷します。
結果は保存されませんが、標準出力に文字列が表示されます。
print('hello');
ReadFile (拡張関数)
readfile
ReadFile 関数は、実行時に変数として保存されるファイルを取ります。バイト配列として指定されたバイト数をファイルから読み取り、バイト配列を返します。この関数は 2 つの引数を必要とします。
$result 変数には、変数 $file で保存されているファイルの最初の 10 バイトのバイト配列が含まれます。
$result = readFile($file, 10);
Subtract
sub
Subtract 関数は最初のパラメータから 2 番目のパラメータを引きます。
Subtract 関数は最初の要素から 2 - N の要素を引きます。
$result = sub(10, 4);
結果は 6 となります。
$result = sub(10, 4, 6, 3);
結果は -3 となります。