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>] | 计算的的结果值与上当前的掩码值得到最终结果值 |