Beispiel #1
0
    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
Beispiel #2
0
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()