安装

本页为社区译文;如有疑义,请以英文原文为准。 英文原文

安装 Frida 并做好使用准备应该只需要几分钟。如果这个过程变得麻烦,请提交 issue(或提交拉取请求),说明你遇到的问题,以及我们可以怎样让这个过程更简单。

Frida CLI 工具的要求

安装 Frida 的 CLI 工具简单直接,但开始之前需要确认系统满足以下几项要求。

  • Python——强烈建议使用最新的 3.x 版本
  • Windows、macOS 或 GNU/Linux

使用 pip 安装

安装 Frida CLI 工具的最佳方式是通过 PyPI:

$ pip install frida-tools

如果安装 Frida 时遇到问题,请查看故障排除页面或报告问题,以便 Frida 社区改善所有人的使用体验。

手动安装

你也可以从 Frida 的 GitHub releases 页面获取其他二进制文件。

测试安装

启动一个可供我们注入的进程:

$ cat

让它保持运行并等待输入即可。在 Windows 上,你可以改用 notepad.exe。

请注意,此示例无法在 macOS El Capitan 及更高版本上直接运行,因为系统会拒绝针对系统二进制文件的这类操作。详情请参阅此处。不过,如果将 cat 二进制文件复制到 /tmp/cat 等位置,再运行副本,此示例应该就能正常工作:

$ cp /bin/cat /tmp/cat
$ /tmp/cat

在另一个终端中创建文件 example.py,内容如下:

import frida

def on_message(message, data):
    print("[on_message] message:", message, "data:", data)

session = frida.attach("cat")

script = session.create_script("""
rpc.exports.enumerateModules = () => {
  return Process.enumerateModules();
};
""")
script.on("message", on_message)
script.load()

print([m["name"] for m in script.exports_sync.enumerate_modules()])

如果你使用 GNU/Linux,请执行:

$ sudo sysctl kernel.yama.ptrace_scope=0

以允许对非子进程执行 ptrace。

现在,我们已经可以开始试用 Frida 了!运行 example.py 脚本,见证它的魔力:

$ python example.py

输出应该与下面类似(具体取决于你的平台和库版本):

['cat', …, 'ld-2.15.so']