def _set_var(self, options, variable): if not " " in variable: key = variable.strip() value = None else: key, value = variable.split(" ", 1) if value == "None" or value == None: value = "" if key == "output": from scrounger.utils.general import execute execute("mkdir -p {}".format(value)) if key.lower() == "debug" and value.lower() == "true": import logging as _logging Log.setLevel(_logging.DEBUG) options[key] = value
def _main(): global _DEBUG, _VERBOSE parser = _argparse.ArgumentParser( description=_BANNER, formatter_class=_argparse.RawDescriptionHelpFormatter) parser.add_argument( "-m", "--modules", required=False, metavar="analysis/ios/module1;analysis/ios/module2", help="modules to be run - seperated by ; - will be run in order") parser.add_argument("-a", "--arguments", required=False, metavar="argument1=value1;argument1=value2;", help="arguments for the modules to be run") parser.add_argument("-f", "--full-analysis", required=False, metavar="/path/to/the/app.[apk|ipa]", help="runs a full analysis on the application") parser.add_argument("-d", "--device", required=False, metavar="device_id", default=None, help="device to be used by the modules") parser.add_argument("-l", "--list", required=False, action="store_true", default=False, help="list available devices and modules") parser.add_argument( "-o", "--options", required=False, action="store_true", default=False, help="prints the required options for the selected modules") parser.add_argument("-p", "--print-results", required=False, metavar="/path/to/full-analysis.json", help="prints the results of a full analysis json file") parser.add_argument( "-V", "--verbose", required=False, action="store_true", default=False, help="prints more information when running the modules") parser.add_argument("-D", "--debug", required=False, action="store_true", default=False, help="prints more information when running scrounger") args = parser.parse_args() _DEBUG = args.debug _VERBOSE = args.verbose if _DEBUG: Log.setLevel(_logging.DEBUG) try: if args.list: _print_lists() elif args.print_results: _print_results(args.print_results) elif args.options: _print_modules_options(args.modules, args.full_analysis) elif args.full_analysis: _run_full_analysis(args.full_analysis, args.arguments, args.device) elif args.modules: _run_modules(args.modules, args.arguments, args.device) else: parser.print_help() except Exception as e: print("[-] Exception: {}".format(e)) # print debug if _DEBUG: import traceback print(traceback.format_exc()) if _DEVICE: _DEVICE.clean()