byte_math规则选项的主要功能是从待检测的内存中获取指定的数据,并对数据按照要求进行加工处理,得到结果数值,供后续规则选项使用。
规则语法
规则格式
规则样式
byte_math:bytes <nbytes>,offset <offset>,oper <operates>(+, -, *, /, <<, >>),rvalue <rvalue>,result <result_var>,[relative],[endian <type>(little|big)|string <num_type>(hex|dec|oct,dce)],[bitmask <value>]
备注:[]标识可选字段
参数说明
参数 | 功能说明 |
<nbytes> | 使用的字节个数 |
<offset> | 获取内容的位置 |
oper <operates> | 指定的算数运算符(+, -, *, /, <<, >>) |
rvalue <rvalue> | 与operates搭配进行运算的右值(uint32_t) |
result <result_var> | 存储最终结果值的变量名 |
[relative] | 若有relative修饰则offset是指从上一个content匹配位置之后开始计算,若无relative修饰,则offset是指从待检测的内容开始计算偏移字节数 |
[endian <type>] | big:大端字节序处理 little:小端字节序处理 |
[string <num_type>] | hex|dec|oct |
dce | 使用dcerpc协议决定字节序 |
[bitmask <value>] | 计算的的结果值与上当前的掩码值得到最终结果值 |