在 Bittly 中, 对于复杂的HEX数据进行匹配时, 可以使用 HEX 匹配表达式来进行匹配。
例如, 假设存在 HEX 数据如下:
11 22 33 44 55
如果第二个字节为不固定数据,我们需要进行匹配,则可以使用 HEX 匹配表达式:
11 @U8 33 44 55
其中 @U8
表示第二个字节为一个无符号8位整数, 可以匹配任意值。
对应其他数据类型如下:
U8
: 无符号8位整数I8
: 有符号8位整数U16
: 无符号16位整数U16BE
: 无符号16位大端整数U16LE
: 无符号16位小端整数I16
: 有符号16位整数I16BE
: 有符号16位大端整数I16LE
: 有符号16位小端整数U32
: 无符号32位整数U32BE
: 无符号32位大端整数U32LE
: 无符号32位小端整数I32
: 有符号32位整数I32BE
: 有符号32位大端整数I32LE
: 有符号32位小端整数U64
: 无符号64位整数U64BE
: 无符号64位大端整数U64LE
: 无符号64位小端整数I64
: 有符号64位整数I64BE
: 有符号64位大端整数I64LE
: 有符号64位小端整数F32
: 32位浮点数F32BE
: 32位大端浮点数F32LE
: 32位小端浮点数F64
: 64位浮点数F64BE
: 64位大端浮点数F64LE
: 64位小端浮点数假设第二个字节我们需要匹配为 100, 但是不想进行进制转换, 则我们可以以下方式进行匹配:
11 @U8(100) 33 44 55
其中 @U8(100)
表示第二个字节为一个无符号8位整数, 且值为100。
假设第二个字节我们需要匹配为变量 var1
的值,以便后续操作使用, 则我们可以以下方式进行匹配:
11 @U8<var1> 33 44 55
假设我们需要匹配一个长度为3无符号8位整数的数组, 则我们可以以下方式进行匹配:
11 @U8[3] 55
其中 @U8[3]
表示一个长度为3的无符号8位整数数组。
假设我们的数组长度由变量 var1
决定, 则我们可以以下方式进行匹配:
11 @U8[$(var1)] 55
其中 @U8[$(var1)]
表示一个长度由变量 var1
决定的无符号8位整数数组。