| Home | Trees | Index | Help |
|
|---|
| Package sulley |
|
| Submodules | |
|---|---|
| Function Summary | |
|---|---|
custom_raise(argument,
msg)
| |
s_bigword(x)
| |
Parse a variable format binary string into a static value and push it onto the current block stack. | |
s_binary_block_size_byte(x)
| |
s_binary_block_size_byte_mult(x)
| |
s_binary_block_size_byte_plus(x)
| |
s_binary_block_size_byte_variable(x)
| |
s_binary_block_size_halfword_bigendian(x)
| |
s_binary_block_size_halfword_bigendian_mult(x)
| |
s_binary_block_size_halfword_bigendian_variable(x)
| |
s_binary_block_size_intel_halfword(x)
| |
s_binary_block_size_intel_halfword_mult(x)
| |
s_binary_block_size_intel_halfword_plus(x)
| |
s_binary_block_size_intel_halfword_plus_variable(x)
| |
s_binary_block_size_intel_halfword_variable(x)
| |
s_binary_block_size_intel_word(x)
| |
s_binary_block_size_intel_word_plus(x)
| |
s_binary_block_size_intel_word_variable(x)
| |
s_binary_block_size_word_bigendian(x)
| |
s_binary_block_size_word_bigendian_mult(x)
| |
s_binary_block_size_word_bigendian_plussome(x)
| |
s_binary_block_size_word_bigendian_variable(x)
| |
s_binary_block_size_word_intel_mult_plus(x)
| |
s_binary_repeat(x)
| |
Push a variable length bit field onto the current block stack. | |
Push a variable length bit field onto the current block stack. | |
Push a variable length bit field onto the current block stack. | |
Close the last opened block. | |
Open a new block under the current request. | |
s_blocksize_asciihex(x)
| |
s_blocksize_asciihex_variable(x)
| |
s_blocksize_signed_string_variable(x)
| |
s_blocksize_string(x)
| |
s_blocksize_unsigned_string_variable(x)
| |
Push a byte onto the current block stack. | |
Push a byte onto the current block stack. | |
Create a checksum block bound to the block with the specified name. | |
s_cstring(x)
| |
Push a delimiter onto the current block stack. | |
Push a quad word onto the current block stack. | |
Push a static value onto the current block stack. | |
Push a double word onto the current block stack. | |
| blocks.request |
Return the request with the specified name or the current request if name is not specified. |
This primitive represents a list of static values, stepping through each one on mutation. | |
| String |
Return the hex dump of the supplied data starting at the offset address specified. |
Initialize a new block request. | |
Push a double word onto the current block stack. | |
s_intelhalfword(x)
| |
s_intelword(x)
| |
Legos are pre-built blocks... | |
Push a double word onto the current block stack. | |
| Boolean |
Mutate the current request and return False if mutations are exhausted, in which case the request has been reverted back to its normal form. |
| Integer |
Determine the number of repetitions we will be making. |
Push a quad word onto the current block stack. | |
Generate a random chunk of data while maintaining a copy of the original. | |
Push a static value onto the current block stack. | |
| Raw |
Render out and return the entire contents of the current request. |
Repeat the rendered contents of the specified block cycling from min_reps to max_reps counting by step. | |
Repeat the rendered contents of the specified block cycling from min_reps to max_reps counting by step. | |
Push a word onto the current block stack. | |
Create a sizer block bound to the block with the specified name. | |
Create a sizer block bound to the block with the specified name. | |
Push a static value onto the current block stack. | |
Push a string onto the current block stack. | |
s_string_lf(x)
| |
s_string_or_env(x)
| |
s_string_repeat(x)
| |
s_string_variable(x)
| |
s_string_variables(x)
| |
Change the currect request to the one specified by "name". | |
s_unistring(x)
| |
s_unistring_variable(x)
| |
Push a static value onto the current block stack. | |
Update the value of the named primitive in the currently open request. | |
Push a word onto the current block stack. | |
s_xdr_string(x)
| |
| Variable Summary | |
|---|---|
str |
BIG_ENDIAN = '>'
|
str |
LITTLE_ENDIAN = '<'
|
| Function Details |
|---|
s_binary(value, name=None)Parse a variable format binary string into a static value and push it onto the current block stack.
|
s_bit(value, width, endian='<', format='binary', signed=False, full_range=False, fuzzable=True, name=None)Push a variable length bit field onto the current block stack.
|
s_bit_field(value, width, endian='<', format='binary', signed=False, full_range=False, fuzzable=True, name=None)Push a variable length bit field onto the current block stack.
|
s_bits(value, width, endian='<', format='binary', signed=False, full_range=False, fuzzable=True, name=None)Push a variable length bit field onto the current block stack.
|
s_block_end(name=None)Close the last opened block. Optionally specify the name of the block being closed (purely for aesthetic purposes).
|
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"):
...
|
s_byte(value, endian='<', format='binary', signed=False, full_range=False, fuzzable=True, name=None)Push a byte onto the current block stack.
|
s_char(value, endian='<', format='binary', signed=False, full_range=False, fuzzable=True, name=None)Push a byte onto the current block stack.
|
s_checksum(block_name, algorithm='crc32', length=0, endian='<', name=None)Create a checksum block bound to the block with the specified name. You *can not* create a checksum for any currently open blocks.
|
s_delim(value, fuzzable=True, name=None)Push a delimiter onto the current block stack.
|
s_double(value, endian='<', format='binary', signed=False, full_range=False, fuzzable=True, name=None)Push a quad word onto the current block stack.
|
s_dunno(value, name=None)Push a static value onto the current block stack.
|
s_dword(value, endian='<', format='binary', signed=False, full_range=False, fuzzable=True, name=None)Push a double word onto the current block stack.
|
s_get(name=None)Return the request with the specified name or the current request if name is not specified. Use this to switch from global function style request manipulation to direct object manipulation. Example:
req = s_get("HTTP BASIC")
print req.num_mutations()
The selected request is also set as the default current. (ie:
s_switch(name) is implied).
|
s_group(name, values)This primitive represents a list of static values, stepping through each one on mutation. You can tie a block to a group primitive to specify that the block should cycle through all possible mutations for *each* value within the group. The group primitive is useful for example for representing a list of valid opcodes.
|
s_hex_dump(data, addr=0)Return the hex dump of the supplied data starting at the offset address specified.
|
s_initialize(name)Initialize a new block request. All blocks / primitives generated after this call apply to the named request. Use s_switch() to jump between factories.
|
s_int(value, endian='<', format='binary', signed=False, full_range=False, fuzzable=True, name=None)Push a double word onto the current block stack.
|
s_lego(lego_type, value=None, options={})Legos are pre-built blocks... XXX finish this doc |
s_long(value, endian='<', format='binary', signed=False, full_range=False, fuzzable=True, name=None)Push a double word onto the current block stack.
|
s_mutate()Mutate the current request and return False if mutations are exhausted, in which case the request has been reverted back to its normal form.
|
s_num_mutations()Determine the number of repetitions we will be making.
|
s_qword(value, endian='<', format='binary', signed=False, full_range=False, fuzzable=True, name=None)Push a quad word onto the current block stack.
|
s_random(value, min_length, max_length, num_mutations=25, fuzzable=True, name=None)Generate a random chunk of data while maintaining a copy of the original. A random length range can be specified. For a static length, set min/max length to be the same.
|
s_raw(value, name=None)Push a static value onto the current block stack.
|
s_render()Render out and return the entire contents of the current request.
|
s_repeat(block_name, min_reps=0, max_reps=None, step=1, variable=None, fuzzable=True, name=None)Repeat the rendered contents of the specified block cycling from min_reps to max_reps counting by step. By default renders to nothing. This block modifier is useful for fuzzing overflows in table entries. This block modifier MUST come after the block it is being applied to.
|
s_repeater(block_name, min_reps=0, max_reps=None, step=1, variable=None, fuzzable=True, name=None)Repeat the rendered contents of the specified block cycling from min_reps to max_reps counting by step. By default renders to nothing. This block modifier is useful for fuzzing overflows in table entries. This block modifier MUST come after the block it is being applied to.
|
s_short(value, endian='<', format='binary', signed=False, full_range=False, fuzzable=True, name=None)Push a word onto the current block stack.
|
s_size(block_name, length=4, endian='<', format='binary', inclusive=False, signed=False, math=None, fuzzable=False, name=None)Create a sizer block bound to the block with the specified name. You *can not* create a sizer for any currently open blocks.
|
s_sizer(block_name, length=4, endian='<', format='binary', inclusive=False, signed=False, math=None, fuzzable=False, name=None)Create a sizer block bound to the block with the specified name. You *can not* create a sizer for any currently open blocks.
|
s_static(value, name=None)Push a static value onto the current block stack.
|
s_string(value, size=-1, padding='\x00', encoding='ascii', fuzzable=True, name=None)Push a string onto the current block stack.
|
s_switch(name)Change the currect request to the one specified by "name".
|
s_unknown(value, name=None)Push a static value onto the current block stack.
|
s_update(name, value)Update the value of the named primitive in the currently open request.
|
s_word(value, endian='<', format='binary', signed=False, full_range=False, fuzzable=True, name=None)Push a word onto the current block stack.
|
| Variable Details |
|---|
BIG_ENDIAN
|
LITTLE_ENDIAN
|
| Home | Trees | Index | Help |
|
|---|
| Generated by Epydoc 2.1 on Fri Jul 27 17:40:03 2007 | http://epydoc.sf.net |