import frida import modules.command import modules.files_utils import sys import time def on_message(message, data): print(message) def attach_method(is_spawn): if type(is_spawn) == bool: if is_spawn: return True else: return False else: print(f"is_spawn type error,please check is_spawn type.") def main(package_name,script_path,is_spawn): js_code = modules.files_utils.read_javascript(script_path) # print(js_code) modules.command.start_frida() modules.command.clearCache(package_name) # 连接到USB设备 device = frida.get_usb_device() print(device) if attach_method(is_spawn): pid = device.spawn(package_name) print(f"进程pid: {pid}") process = device.attach(pid) script = process.create_script(js_code) script.on("message", on_message) script.load() device.resume(pid) # 加载完脚本后, 恢复进程运行 sys.stdin.read() else: # 列出设备上的所有进程 pid = None processes = device.enumerate_processes() for process in processes: if process.name == attach_process_name: pid = process.pid print(f"pid: {process.pid},App Name: {process.name}") # 如果你想附加到一个特定的进程并注入一个脚本: if pid is not None: session = device.attach(pid) script = session.create_script(js_code) script.on('message', on_message) script.load() else: print(f"get process error") if __name__ == '__main__': is_spawn = True attach_process_name = "Navi" package_name = "com.naviapp" script_path = "./hook_conversions.js" main(package_name,script_path, is_spawn)