HEX 匹配

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

2025 © Bittly 沪ICP备2023006101号-2