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
3
export PYENV_ROOT="$HOME/.pyenv"
command -v pyenv >/dev/null || export PATH="$PYENV_ROOT/bin:$PATH"
eval "$(pyenv init -)"同时还需要将下面的命令添加到
.bashrc
文件中。
1
eval "$(pyenv virtualenv-init -)"
之后重新启动shell窗口,说是执行
1
source ~/.bashrc
如果你这样做了,就会遇到很多麻烦,比如执行
source ~/.bashrc
时找不到命令 “shopt”
,这个好说,可以执行以下指令解决:
1
2
3
exec 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
环境没有配置对。