在 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位整数数组。