def __init__(self, project, arguments, **kw): ProjectProcess.__init__(self, project, arguments, **kw) self.options = 'Vqfldbv' VALUE_SET = DECIMAL_DIGITS | set('.:-/ ') self.stdin_generator = BytesGenerator(1, 5000) self.value_generator = BytesGenerator(1, 30, VALUE_SET) self.queue_generator = BytesGenerator(1, 1, ASCII0) self.filename_generator = UnixPathGenerator(100) self.min_opt = 0 self.max_opt = 2
def __init__(self, filename, module, module_name): self.simple_argument_generators = ( self.genNone, self.genBool, self.genSmallUint, self.genInt, self.genLetterDigit, self.genString, self.genUnicode, self.genUnixPath, self.genFloat, self.genExistingFilename, self.genUserObject, self.genUserClass, # self.genOpenFile, # self.genException, ) self.complex_argument_generators = self.simple_argument_generators + ( self.genList, self.genTuple, self.genDict, ) self.indent = ' ' * 4 self.filename = filename self.base_level = 0 self.smallint_generator = UnsignedGenerator(3) self.int_generator = IntegerGenerator(20) self.str_generator = BytesGenerator(0, 20) self.unix_path_generator = UnixPathGenerator(100) self.letters_generator = BytesGenerator(1, 8, LETTERS | DECIMAL_DIGITS) self.float_int_generator = IntegerGenerator(3) self.float_float_generator = UnsignedGenerator(3) self.module = module self.module_name = module_name self.functions, self.classes = self.getFunctions() if not self.functions and not self.classes: raise PythonFuzzerError("Module %s has no function and no class!" % self.module_name)
def fuzzit(pd, pck): #print "Start Fuzzing" s_len = pd.len s_info = pd.info datagen = BytesGenerator(800, 1100, PRINTABLE_ASCII) # heavy packets gen_and_send(pd, pck, datagen, 0) datagen = BytesGenerator(800, 1100, ASCII0) # heavy packets gen_and_send(pd, pck, datagen, 0) datagen = BytesGenerator(1, 255, PRINTABLE_ASCII) # regular checks gen_and_send(pd, pck, datagen, 0) datagen = BytesGenerator(1, 255, ASCII0) # regular checks gen_and_send(pd, pck, datagen, 0) datagen = BytesGenerator(1, 255, PRINTABLE_ASCII) gen_and_send(pd, pck, datagen, 1) # malformed packets datagen = BytesGenerator(1, 255, ASCII0) gen_and_send(pd, pck, datagen, 1) # malformed packets pd.len = s_len pd.info = s_info
def __init__(self, project, *args): UnixSocketClient.__init__(self, project, *args) max_size = 100 self.data_gen = BytesGenerator(1, max_size) self.max_tx_bytes = max_size * 20 self.max_rx_bytes = max_size * 20
def __init__(self, project, name): ProjectAgent.__init__(self, project, name) self.smart_string_generator = BytesGenerator(0, 10, LETTERS | DECIMAL_DIGITS | set(' ')) self.string_generator = BytesGenerator(0, 40, LETTERS | DECIMAL_DIGITS | PUNCTUATION) self.random_string_generator = BytesGenerator(0, 200) self.character_generator = BytesGenerator(1, 1) self.digit_generator = BytesGenerator(1, 30, DECIMAL_DIGITS) self.integer_generator = IntegerGenerator(11) self.printf_set = list(LETTERS | set('%')) self.long_string = LengthGenerator(10000) self.functions = list(set(( # Tests 'COALESCE', 'GREATEST', 'ISNULL', 'INTERVAL', 'LEAST', 'IF', 'IFNULL', 'NULLIF', 'STRCMP', # Math 'ABS', 'ACOS', 'ASIN', 'ATAN', 'ATAN2', 'CEILING', 'CEIL', 'COS', 'COT', 'CRC32', 'DEGREES', 'EXP', 'FLOOR', 'LN', 'LOG', 'LOG2', 'LOG10', 'MOD', 'PI', 'POW', 'POWER', 'RADIANS', 'RAND', 'ROUND', 'SIGN', 'SQRT', 'TAN', 'TRUNCATE', # String 'ASCII', 'BIN', 'BIT_LENGTH', 'CHAR', 'CHAR_LENGTH', 'COMPRESS', 'CONCAT', 'CONCAT_WS', 'CONV', 'ELT', 'EXPORT_SET', 'FIELD', 'FIND_IN_SET', 'HEX', 'INSERT', 'INSTR', 'LCASE', 'LEFT', 'LENGTH', 'LOAD_FILE', 'LOCATE', 'LOWER', 'LPAD', 'LTRIM', 'MAKE_SET', 'MID', 'OCTET_LENGTH', 'ORD', 'QUOTE', 'REPEAT', 'REPLACE', 'REVERSE', 'RIGHT', 'RPAD', 'RTRIM', 'SOUNDEX', 'SPACE', 'SUBSTRING', 'SUBSTRING_INDEX', 'TRIM', 'UCASE', 'UNCOMPRESS', 'UNCOMPRESSED_LENGTH', 'UNHEX', 'UPPER', # Date 'ADDDATE', 'ADDTIME', 'CURDATE', 'CURRENT_DATE', 'CURTIME', 'CURRENT_TIME', 'CURRENT_TIMESTAMP', 'DATE', 'DATEDIFF', 'DATE_FORMAT', 'DAY', 'DAYNAME', 'DAYOFMONTH', 'DAYOFWEEK', 'DAYOFYEAR', 'EXTRACT', 'FROM_DAYS', 'FROM_UNIXTIME', 'GET_FORMAT', 'HOUR', 'LAST_DAY', 'LOCALTIME', 'LOCALTIMESTAMP', 'MAKEDATE', 'MAKETIME', 'MICROSECOND', 'MINUTE', 'MONTH', 'MONTHNAME', 'NOW', 'PERIOD_ADD', 'PERIOD_DIFF', 'QUARTER', 'SECOND', 'SEC_TO_TIME', 'STR_TO_DATE', 'SUBDATE', 'SUBTIME', 'SYSDATE', 'TIME', 'TIMEDIFF', 'TIMESTAMP', 'TIMESTAMPADD', 'TIMESTAMPDIFF', 'TIME_FORMAT', 'TIME_TO_SEC', 'TO_DAYS', 'UNIX_TIMESTAMP', 'UTC_DATE', 'UTC_TIME', 'UTC_TIMESTAMP', 'WEEK', 'WEEKDAY', 'WEEKOFYEAR', 'YEAR', 'YEARWEEK', # Encryption 'AES_DECRYPT', 'AES_ENCRYPT', 'DECODE', 'ENCODE', 'DES_DECRYPT', 'DES_ENCRYPT', 'ENCRYPT', 'MD5', 'OLD_PASSWORD', 'PASSWORD', 'SHA', 'SHA1', # Information 'BENCHMARK', 'CHARSET', 'COERCIBILITY', 'COLLATION', 'CONNECTION_ID', 'CURRENT_USER', 'DATABASE', 'FOUND_ROWS', 'LAST_INSERT_ID', 'SESSION_USER', 'SYSTEM_USER', 'USER', 'VERSION', # Autres 'BIT_COUNT', 'FORMAT', 'GET_LOCK', 'INET_ATON', 'INET_NTOA', 'IS_FREE_LOCK', 'IS_USED_LOCK', 'MASTER_POS_WAIT', 'RELEASE_LOCK', 'UUID', ))) self.min_nb_arg = 0 self.max_nb_arg = 4 self.min_nb_instr = 1 self.max_nb_instr = 3 self.booleans = ('true', 'false') self.create_value = ( self.createCharacter, self.createString, self.createSmartString, self.createRandomString, self.createInteger, self.createFloat, self.createNull, self.createBoolean, self.createPrintf, # self.createLength, )
def __init__(self, project): ProjectAgent.__init__(self, project, "proc") self.generator = BytesGenerator(1, 256)
def __init__(self, name, arguments=None, type="void", random_bytes=400): FunctionC.__init__(self, name, arguments, type) self.bytes_generator = BytesGenerator(random_bytes, random_bytes) self.buffer_count = 0 self.special_int32 = (0x8000, 0xffff, 0x80000000)