Frida开发环境搭建
pyenv环境配置
科学上网:pyenv/pyenv: Simple Python version management (github.com)
直连:pyenv-installer: pyenv(gitee的地址)
首先下载依赖包(参考:Common build problems · pyenv/pyenv Wiki (github.com)):
1 | |
在这之前,可能需要更新apt-get。
之后下载pyenv:
1 | |
因为raw.githubusercontent.com域名被污染的原因,需要我们修改/etc下的hosts文件,指定域名跟ip的映射(ip通过ipaddress.com查询):
1 | |
为了加快访问外网的速度,需要修改/etc下的proxychains.conf文件(我这里是proxychains4.conf),禁掉第一行,添加第二行(ip为宿主机ip,端口是宿主机开启的代理端口)
1 | |
这样就将流量代理到宿主机上,从而实现虚拟机依靠宿主机的翻墙软件达到翻墙目的。
安装结束后,提示我们缺少pyenv的加载路径,如图所示:

即我们需要将以下命令添加到
/root下的.bash_profile文件中,如果没有该文件,则添加到.profile文件和.bashrc文件中。
1
2
3export PYENV_ROOT="$HOME/.pyenv"
command -v pyenv >/dev/null || export PATH="$PYENV_ROOT/bin:$PATH"
eval "$(pyenv init -)"同时还需要将下面的命令添加到
.bashrc文件中。
1eval "$(pyenv virtualenv-init -)"之后重新启动shell窗口,说是执行
1source ~/.bashrc如果你这样做了,就会遇到很多麻烦,比如执行
source ~/.bashrc时找不到命令 “shopt”,这个好说,可以执行以下指令解决:
1
2
3exec bash //将命令行从zsh切换为bash
source ~/.bashrc
exec zsh //重新运行zsh命令行工具而且新开的shell窗口并不能识别
pyenv指令,而且除pyenv所在用户以外的其他用户不能使用pyenv指令简而言之,不要按照提示来操作!!!
正确的操作是,将以下指令写入root目录和home/kali目录下(kali是我的虚拟机的用户名)的.zshrc文件中:
1 | |
分别对各自用户目录下的.zshrc文件执行source /.zshrc命令。最后执行exec $SHELL。这样随便启动shell窗口都可以识别pyenv指令。
(虽然写的这么简洁,但是费了好长时间才解决的,惨痛的教训)
然后是pyenv的基本用法:
1 | |
下载时需要更改/etc/proxychain4.conf配置,注释掉proxy_dns。
frida环境配置
首先是给我们的虚拟机配置frida环境。选定好pyenv中的python版本后,执行如下指令来安装frida和frida-tools:
1 | |
建议使用proxychain代理。
安装完成后,在终端中输入frida-ps命令查看,如果能显示当前系统进程则证明安装成功

然后是给我们的手机配置frida环境。在Releases · frida/frida (github.com)中下载frida-server。需要注意版本!比如我的虚拟机下载的frida版本是16.1.3,Android手机是arm64架构,则应该下载frida-server-16.1.3-android-arm64.xz 文件。
查看手机cpu架构的指令如下:
1 | |
下载后解压,可以将得到的文件重命名为frida-server,通过adb push传入手机里:
1 | |
执行frida-server使用如下指令:
1 | |
正常启动后,另开一个终端,使用frida-ps -U命令检查frida是否正常运行,如果正常运行则会列出Android设备上当前正在运行的进程。

然后是frida的其他命令
1 | |
objection配置
执行如下指令代理下载objection:
1 | |
然后在使用的时候,会出错:
1 | |
这时候需要安装相应的依赖:
1 | |
执行完后需要重新编译安装python环境,也就是卸载重装python。
(参考ModuleNotFoundError: No module named ‘_lzma’ - 知乎 (zhihu.com))
使用objection来连接frida-server,成功的情况如下图所示:

frida脚本编写的环境配置
下载vscode安装包,参考:vscode官方下载太慢解决办法_vscodeusersetup-x64-1.79.2.exe_luffy5459的博客-CSDN博客
下载完后,进入到所在目录,执行如下指令安装vscode:
1 | |
之后代理下载frida-agent-example:
1 | |
如果文件图标加锁了,就需要修改权限:
1 | |
为了获取代码提示,下载Node.js:
1 | |
(不过下不了版本10.x的,直接给下最新的了)
然后是到frida-agent-example目录下执行npm install,可惜报错:
1 | |
但是在vscode中仍然可以有代码提示!!!
环境配置好了。接下来就写个脚本试一试。
使用vscode打开frida-agent-example目录下的agent目录,创建一个js脚本,代码如下所示:
1 | |
然后在vscode中开启Terminal,执行指令
1 | |
可是报错:
1 | |
去掉--no-pause就可以执行了(原因参考frida: error: unrecognized arguments: –no-pause · Issue #2277 · frida/frida (github.com))

(这可不是我加上去的)
接下来就利用python的firda库尝试批量化处理。(python的firda没有代码提示!!),创建一个python脚本,代码如下所示:
1 | |
在控制台中输入python loader.py,成功了!

如果没有成功,则可能是pyenv环境没有配置对。