def __init__(self,
configfile,
base_dir,
log_dir,
stdin=None,
stdout=None,
stderr=None):
"""@brief Initialize the Fuzzbunch object
@param configfile The main Fuzzbunch configuration file (an XML file)
@param base_dir
@param log_dir Location for Fuzzbunch log files
@param stdin
@param stdout
@param stderr
"""
# Initialize the command interpreter, which creates a CmdCtx
self.configvars = {} # Stores global config info (not setg globals)
self.readconfig(configfile) # Read in variables set for Fuzzbunch
# Fix bug #2910 - Color breaks in some terminals that don't support ansi encoding. Added
# option to disable color
enablecolor = eval(self.configvars['globals']['Color'])
FbCmd.__init__(self, stdin=stdin, stdout=stdout, stderr=stderr, enablecolor=enablecolor )
# Set the info function to Fuzzbunch's print_info function
self.defaultcontext.print_info = self.print_info
self.preconfig()
self.fbglobalvars = util.iDict() # Our Fuzzbunch global variables
self.pluginmanagers = util.iDict() # A list of PluginManagers, each
# of which contains a list of Plugins.
# Create our Session manager, which has a list of the plugins we've run
self.session = session.Session(self.name)
self.session.set_dirs(base_dir, log_dir)
# Set the logdir from the Fuzzbunch.xml file, which will be overridden
# later when retarget is executed
self.default_logdir = os.path.normpath(log_dir)
self.set_logdir(log_dir)
# Create a Redirection object to keep track of the status of redirection, and to
# perform transforms on the parameters prior to and after executing plugins
self.redirection = redirection.RedirectionManager(self.io)
self.fontdir = os.path.join(base_dir, "fonts")
self.storage = os.path.join(base_dir, "storage")
self.setbanner()
self.postconfig()
self.pwnies = False
self.conv_tools = util.iDict([('MultiLine', self.toolpaste_ep),
('MD5', self.toolpaste_md5),
('SHA1', self.toolpaste_sha1),
('Base64', self.toolpaste_base64),
])
self.log = log(self.name, self.version, dict(debugging=True, enabled=True, verbose=False))
评论列表
文章目录