我正在尝试用 Sulley 构建一个 Fuzzer。我使用的协议有一个单字节control
字段。在该字段中设置的位确定可以跟随哪些字段。现在我想知道如何使用dep
Sulley 中的参数来实现这种行为。唯一dep_compare
可用的运算符是"==, !=, >, >=, <, <="
,但我认为我无法使用这些运算符检查是否在另一个字段中设置了位。那么我该怎么做呢?
s_byte(0b1000000, "control_field")
# The following block shall be present if bit 7 is set in control_field
# I'd like to use something like
# > control_field & 0b1000000 != 0
# but I don't know how
if s_block_start("something_optional", dep="control_field", dep_compare="?"):
s_short(0x1234, "optional")
s_block_end()