故障排查
本页为社区译文;如有疑义,请以英文原文为准。
英文原文
如果安装或使用 Frida 时遇到问题,下面这些提示或许能提供帮助。如果你的问题未在下文涵盖,请报告问题,以便 Frida 社区改善所有人的使用体验。
ValueError: ambiguous name; it matches:
这表示你在 frida.attach() 中指定的进程名称匹配了多个进程。可以改用 PID:
session = frida.attach(12345)SystemError: attach_to_process PTRACE_ATTACH failed: 1
这(很可能)意味着你没有权限附加到目标进程。该进程可能属于另一名用户,而你并非 root。也可能是你忘记启用对非子进程的 ptrace。请尝试:
sudo sysctl kernel.yama.ptrace_scope=0此问题也可能是 Magisk Hide 所致。请尝试禁用它并重启设备,然后再运行命令。
Failed to spawn: unexpected error while spawning child process ‘XXX’ (task_for_pid returned ‘(os/kern) failure’)
在 macOS 上,这很可能意味着你没有正确签名 Frida,或者缺少某项权限。例如,你通过 SSH 运行 Frida,无法响应正常使用时会弹出的身份验证对话框。
如果是签名问题,请按照此流程操作;否则,请尝试:
**WARNING: This may weaken security**
sudo security authorizationdb write system.privilege.taskport allow要对系统二进制文件进行插桩,你可能还需要禁用系统完整性保护;但再次提醒,*/!\ 这会削弱系统安全性 /!*。
ImportError: dynamic module does not define init function (init_frida)
如果尝试在 Python 3.x 中使用为 Python 2.x 编译的 frida-python,或者反过来,就会看到此错误或其他类似的错误消息。请检查当前运行的是哪个 Python 解释器,以及使用的是哪个 PYTHONPATH / sys.path。