def s_block_start (name, group=None, encoder=None, dep=None, dep_value=None, dep_values=[], dep_compare="=="): ''' Open a new block under the current request. This routine always returns True so you can make your fuzzer pretty with indenting:: if s_block_start("header"): s_static("\\x00\\x01") if s_block_start("body"): ... @type name: String @param name: Name of block being opened @type group: String @param group: (Optional, def=None) Name of group to associate this block with @type encoder: Function Pointer @param encoder: (Optional, def=None) Optional pointer to a function to pass rendered data to prior to return @type dep: String @param dep: (Optional, def=None) Optional primitive whose specific value this block is dependant on @type dep_value: Mixed @param dep_value: (Optional, def=None) Value that field "dep" must contain for block to be rendered @type dep_values: List of Mixed Types @param dep_values: (Optional, def=[]) Values that field "dep" may contain for block to be rendered @type dep_compare: String @param dep_compare: (Optional, def="==") Comparison method to use on dependency (==, !=, >, >=, <, <=) ''' block = blocks.block(name, blocks.CURRENT, group, encoder, dep, dep_value, dep_values, dep_compare) blocks.CURRENT.push(block) return True
def __init__ (self, name, request, value, options={}): blocks.block.__init__(self, name, request, None, None, None, None) self.value = value self.options = options self.prefix = options.get("prefix", "\x04") if not self.value: raise sex.error("MISSING LEGO.ber_string DEFAULT VALUE") str_block = blocks.block(name + "_STR", request) str_block.push(primitives.string(self.value)) self.push(blocks.size(name + "_STR", request, endian=">", fuzzable=True)) self.push(str_block)
def __init__ (self, name, request, value, options={}): blocks.block.__init__(self, name, request, None, None, None, None) self.value = value self.options = options self.prefix = options.get("prefix", "\x04") if not self.value: raise sex.SullyRuntimeError("MISSING LEGO.ber_string DEFAULT VALUE") str_block = blocks.block(name + "_STR", request) str_block.push(primitives.string(self.value)) self.push(blocks.size(name + "_STR", request, endian=">", fuzzable=True)) self.push(str_block)