Example #1
0
    def __init__(self, output_base_dir, path):
        '''
        Creates an output dir for this seedfile based on its md5 hash.
        @param output_base_dir: The base directory for output files
        @raise SeedFileError: zero-length files will raise a SeedFileError
        '''
        BasicFile.__init__(self, path)

        if not self.len > 0:
            raise SeedFileError(
                'You cannot do bitwise fuzzing on a zero-length file: %s' % self.path)

        # use len for bytewise, bitlen for bitwise
        if self.len > 1:
            self.range_min = 1.0 / self.len
            self.range_max = 1.0 - self.range_min
        else:
            self.range_min = 0
            self.range_max = 1

        self.tries = 0

        self.rangefinder = RangeFinder(self.range_min, self.range_max)