frida安装和使用方法

frida是一个轻量级别的hook框架。官网介绍:Dynamic instrumentation toolkit for developers, reverse-engineers, and security researchers.

frida由两部分组成:一部分是运行在系统上的交互工具frida CLI,另一部分是运行在目标机器上的代码注入工具frida-server。

推荐使用 python3 来安装frida。

github项目:https://github.com/frida/frida

官方文档:https://frida.re/docs/home/

0x01 windows上安装frida

请使用pip3.exe来安装

pip3 install frida-tools
# 或使用国内源
pip3 install frida-tools -i https://pypi.tuna.tsinghua.edu.cn/simple/

其中,

Running setup.py install for frida ...

会卡住,静候一阵子会好的。

windows的frida目前只支持python2.7和python3.7

如果非要用python2.7来安装,经pcat测试后,frida的版本最高只能到11.0.13,高于这个版本安装后不会在Scripts目录生成exe文件。

pip install frida==11.0.13

同样的,国内环境安装实在是很慢。

安装后,使用frida如若报错如下:

from prompt_toolkit.shortcuts import create_prompt_application, create_output, create_eventloop
ImportError: cannot import name 'create_prompt_application'

重装下prompt-toolkit

pip install prompt-toolkit==1.0.15

0x02 linux上安装firda

同样的步骤:

pip3 install frida-tools
# 或使用国内源
pip3 install frida-tools -i https://pypi.tuna.tsinghua.edu.cn/simple/

但是会报错:

  Running setup.py bdist_wheel for frida ... error
  Complete output from command /usr/bin/python3 -u -c "import setuptools, tokenize;__file__='/tmp/pip-install-abaq78bw/frida/setup.py';f=getattr(tokenize, 'open', open)(__file__);code=f.read().replace('\r\n', '\n');f.close();exec(compile(code, __file__, 'exec'))" bdist_wheel -d /tmp/pip-wheel-q8tuqk3t --python-tag cp37:
  running bdist_wheel
  running build
  running build_py
  creating build
  creating build/lib.linux-x86_64-3.7
  creating build/lib.linux-x86_64-3.7/frida
  copying frida/core.py -> build/lib.linux-x86_64-3.7/frida
  copying frida/__init__.py -> build/lib.linux-x86_64-3.7/frida
  running build_ext
  looking for prebuilt extension in home directory, i.e. /root/frida-12.8.14-py3.7-linux-x86_64.egg
  prebuilt extension not found in home directory, will try downloading it
  querying pypi for available prebuilds
  error: <urlopen error [Errno 101] Network is unreachable>

这里关键是这句

i.e. /root/frida-12.8.14-py3.7-linux-x86_64.egg

我打开https://pypi.org/project/frida/#files (国内打开较慢)

发现只有frida-12.8.14-py3.6-linux-x86_64.egg,而没有py3.7的文件,于是安装肯定报错。

解决法子:

把frida-12.8.14-py3.6-linux-x86_64.egg下载到本地,然后

python3 /usr/lib/python3/dist-packages/easy_install.py frida-12.8.14-py3.6-linux-x86_64.egg

当进行到:

Installed /usr/local/lib/python3.7/dist-packages/frida-12.8.14-py3.6-linux-x86_64.egg
Processing dependencies for frida==12.8.14
Searching for frida==12.8.14
Reading https://pypi.org/simple/frida/

就按ctrl+c进行中断,因为这个网址的内容很长,国内加载会特别地慢,然后

pip3 install frida-tools -i https://pypi.tuna.tsinghua.edu.cn/simple/

顺利安装上,就可以使用以下命令:

frida
frida-kill
frida-ps
frida-discover
frida-ls-devices
frida-trace

0x03 frida-server

Releases:https://github.com/frida/frida/releases

注意一点:frida-server版本要和frida版本一致。

v=12.8.14
os=android-arm64
wget "https://github.com/frida/frida/releases/download/${v}/frida-server-${v}-${os}.xz"

0x04 frida使用方法

等pcat有空再补上。