class TestASTHandler: ast_handler = ASTHandler() def test_init(self): args = self.ast_handler.args['eval'] assert not args def test_appending_args(self): self.ast_handler.handle_eval(['arg1', 'arg2']) args = self.ast_handler.args['eval'] assert 'arg1' in args assert 'arg2' in args def test_repeating_args(self): self.ast_handler.handle_eval(['arg2', 'arg3']) args = self.ast_handler.args['eval'] assert 'arg2' in args assert 'arg3' in args def test_length(self, caplog): caplog.clear() arg = [ 'aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa' ] self.ast_handler.handle_eval(arg) assert "[AST]: Eval argument length > 64" in caplog.text args = self.ast_handler.args['eval'] assert arg[0] in args
def __init_core(self): log.ThugOpts = ThugOpts() log.ThugVulnModules = ThugVulnModules() log.MIMEHandler = MIMEHandler() log.SchemeHandler = SchemeHandler() log.ASTHandler = ASTHandler() log.Encoding = Encoding() log.WebTracking = WebTracking()
def __init__(self, configuration_path = thug.__configuration_path__): log.configuration_path = configuration_path log.personalities_path = os.path.join(configuration_path, "personalities") if configuration_path else None log.ThugOpts = ThugOpts() log.ThugVulnModules = ThugVulnModules() log.WebTracking = WebTracking() log.MIMEHandler = MIMEHandler() log.SchemeHandler = SchemeHandler() log.HTMLClassifier = HTMLClassifier() log.JSClassifier = JSClassifier() log.VBSClassifier = VBSClassifier() log.URLClassifier = URLClassifier() log.SampleClassifier = SampleClassifier() log.TextClassifier = TextClassifier() log.Encoding = Encoding() log.ASTHandler = ASTHandler() log.JSExtensions = list() log.Trace = None