Python Sulley模糊框架中的位标志依赖关系
我想和Sulley建立一个模糊程序。我正在使用的协议有一个单字节Python Sulley模糊框架中的位标志依赖关系,python,network-protocols,penetration-testing,fuzzing,Python,Network Protocols,Penetration Testing,Fuzzing,我想和Sulley建立一个模糊程序。我正在使用的协议有一个单字节控件字段。在该字段中设置的位确定可以跟随哪些字段。现在我想知道如何使用Sulley中的dep参数实现这种行为。唯一可用的dep\u compare运算符是“==,!=,>,>=,如果只想检查最高位,可以使用=,因为0b10000000只是一个数字 if s_block_start("something_optional", dep="control_field", dep_compare=">=", dep_value=0b1
控件
字段。在该字段中设置的位确定可以跟随哪些字段。现在我想知道如何使用Sulley中的dep
参数实现这种行为。唯一可用的dep\u compare
运算符是“==,!=,>,>=,如果只想检查最高位,可以使用=
,因为0b10000000只是一个数字
if s_block_start("something_optional", dep="control_field", dep_compare=">=", dep_value=0b10000000):
但是,如果要检查低位,则需要实现自己的运算符。在sulley/blocks.py
中,查找Block
类及其render
方法。有一大块If块不太难修改
if self.dep_compare == "&" and self.dep_value & self.request.names[self.dep].value != self.dep_value:
self.rendered = ""
return
如果你自己做了补丁,请向该项目发出请求!如果你长时间使用该工具,你可能会遇到许多这样可能的改进。
if self.dep_compare == "&" and self.dep_value & self.request.names[self.dep].value != self.dep_value:
self.rendered = ""
return