Exemple #1
0
def push_and_start_frida_server(adb: ADB):
    """
    Push and start adb server on device
    Parameters
    ----------
    adb

    Returns
    -------

    """
    frida_server = os.path.join(os.getcwd(), "resources", "frida-server", "frida-server")

    try:
        adb.execute(['root'])
    except Exception as e:
        adb.kill_server()
        logger.error("Error on adb {}".format(e))

    logger.info("Push frida server")
    try:
        adb.push_file(frida_server, "/data/local/tmp")
    except Exception as e:
        pass
    logger.info("Add execution permission to frida-server")
    chmod_frida = ["chmod 755 /data/local/tmp/frida-server"]
    adb.shell(chmod_frida)
    logger.info("Start frida server")
    start_frida = ["cd /data/local/tmp && ./frida-server &"]
    adb.shell(start_frida, is_async=True)
    time.sleep(4)
def push_api_monitor_xposed(adb: ADB, package_name: str, dir_hook_file: str):
    """
    push file on emulator needed to api monitor

    Parameters
    ----------
    adb
    package_name
    dir_hook_file

    Returns
    -------

    """
    logger.info("Push files needed to API Monitor")
    adb.push_file(os.path.join(dir_hook_file, "hooks.json"), "/data/local/tmp")
    adb.shell(['echo', '"{0}"'.format(package_name), '>', '/data/local/tmp/package.name'])
Exemple #3
0
def push_and_start_frida_server(adb: ADB):
    """
    Push and start adb server on device
    Parameters
    ----------
    adb

    Returns
    -------

    """
    frida_server = os.path.join(os.path.dirname(__file__), "resources",
                                "frida-server", "frida-server")

    cmd_output = adb.shell("ps -e | grep frida".split())

    if "frida-server" in cmd_output:
        logger.warning("[*] frida-server is already running on device")
        return

    try:
        adb.execute(["root"])
    except Exception as e:
        adb.kill_server()
        logger.error("Error on adb {}".format(e))

    logger.info("[*] Push frida server")
    try:
        adb.push_file(frida_server, "/data/local/tmp")
    except Exception as e:
        pass
    logger.info("[*] Add execution permission to frida-server")
    chmod_frida = ["chmod 755 /data/local/tmp/frida-server"]
    adb.shell(chmod_frida)
    logger.info("Start frida server")
    start_frida = ["cd /data/local/tmp && ./frida-server &"]
    adb.shell(start_frida, is_async=True)
    time.sleep(4)
Exemple #4
0
def push_and_start_frida_server_google_emulator(adb: ADB):
    """
    Parameters
    ----------
    adb
    Returns
    -------
    """
    frida_server = os.path.join(os.path.dirname(__file__), "resources",
                                "frida-server-15-1-17", "frida-server")

    logger.info("[*] Checking if frida-server is already running")
    cmd_output = adb.shell("ps -e | grep frida")

    if "frida-server" in cmd_output:
        logger.warning("[*] frida-server is already running on device")
        return

    logger.info("[*] Push frida-server (google-emulator)")
    try:
        adb.push_file(frida_server, "/sdcard")
        adb.shell_su("mv /sdcard/frida-server /data/local/tmp/frida-server")
    except Exception as e:
        pass

    cmd_set_enforce = "setenforce 0"
    adb.shell_su(cmd_set_enforce)

    cmd_enforce_echo = "echo 0 > /sys/fs/selinux/enforce"
    adb.shell_su(cmd_enforce_echo)

    chmod_frida = "chmod 755 /data/local/tmp/frida-server"
    adb.shell_su(chmod_frida)
    logger.info("[*] Start frida server")
    start_frida = "/data/local/tmp/frida-server &"
    adb.shell_su(start_frida, is_async=True)
    time.sleep(4)