Frida开发和调试环境搭建
本章记录在kali上配置Frida开发和调试环境,这个环境配置真的相当麻烦,不同版本很容易碰到不兼容的问题需要多注意一下。
下面的安装流程仅限于kali 2023.3
版本
安装kali虚拟机
直接下载Get Kali | Kali Linux 的VMware压缩包省去安装流程
默认账号密码都是kali
打开之后先设置一下root密码、修改一下默认字体大小(kali默认的字体都太小了修改一下 ), 安装的时候使用kali账户安装不要使用root账户
检查一下时间如果不对的话也修改一下
sudo dpkg-reconfigure tzdata
安装配置clash
这里选择安装桌面版
前两天clash删库了,回头可能还得换v2ray
下载解压到/opt/clash/
目录下运行
./cfw
- 有时候网络环境不好订阅地址下载失败的话,可以直接把主机的配置文件拷贝一份导入进去也行
浏览器科学上网配置:修改浏览器代理为手动
终端科学上网配置:这是临时的关闭终端就没有了
export http_proxy=http://127.0.0.1:7890
export https_proxy=http://127.0.0.1:7890
clash配置好了,开始配置Frida开发调试环境
配置调试环境
网络配置
依次执行下列命令,一个一个执行。
更新apt
sudo apt update sudo apt upgrade # 这个可以不用安装太慢了,不影响使用
2023自带的有中文字符集可以不用安装, 其它版本可能还需要安装中文字符集
安装中文字体
sudo apt install xfonts-intl-chinese
安装微软雅黑sudo apt install ttf-wqy-microhei
安装htop性能监测工具
sudo apt install htop
安装网络检测工具sudo apt install jnettop
设置代理
sudo nano /etc/proxychains4.conf
需要注释掉这几行
#socks4 127.0.0.1 9050
#proxy_dns
#strict_chain
需要去掉这行注释
dynamic_chain
增加一行
socks5 {IP} 1080 #这里是给jnettop使用
如果需要VPN代理,可以再下面依次写入,会自动切换不能使用的代理。clash这种订阅链接的话不用设置
安装pyenv
安装依赖
sudo apt install -y make build-essential libssl-dev zlib1g-dev libbz2-dev \
libreadline-dev libsqlite3-dev wget curl llvm libncurses-dev \
xz-utils tk-dev libffi-dev liblzma-dev python3-openssl git
安装pyenv
curl https://pyenv.run | bash
执行完之后还需要手动配置一下环境变量
将
pyenv
添加到你的 shell 配置文件中(例如~/.bashrc
或~/.zshrc
):export PATH="$HOME/.pyenv/bin:$PATH" eval "$(pyenv init --path)" eval "$(pyenv init -)" eval "$(pyenv virtualenv-init -)"
重新加载shell配置
source ~/.bashrc # 或 source ~/.zshrc
检查一下是否安装成功
pyenv versions which pyenv
pyenv的常用命令
pyenv version # 查看当前系统使用的python版本
pyenv versions # 查看当前系统拥有的python版本(system代表当前系统的python版本号)!!!
pyenv install –list # 查看可以安装的版本 !!!
pyenv install 3.8.0 # 安装版本3.8.0 ,可以使用-v看详细输出 !!!
pyenv uninstall 3.8.0 # 卸载
pyenv local 3.8.0 # local仅对当前目录及其子目录生效,告诉目录使用版本3.8.0 !!!
pyenv global 3.8.0 # 告诉全局环境使用3.8.0 ,为了不破坏系统默认环境, 不建议使用global命令
pyenv rehash # 重建环境变量,每当你增删python版本或增删带可执行性的包(如pip)以后,都应该执行一次本命令
pyenv which # 显示pyenv在运行给定命令时将调用的可执行文件的绝对路径
PS:使用
pyenv install XXX
命令安装python的时候可能会显示缺少一些库文件,需要先安装了之后再安装python安装frida自动提示补全
git clone https://github.com/oleavr/frida-agent-example.git cd frida-agent-example/ npm install
安装frida、objection、frida-dexdump
pip install frida==12.8.0 pip install frida-tools==5.3.0 pip install objection==1.8.4 pip install frida-dexdump
安装adb
sudo apt install google-android-platform-tools-installer
安装VSCODE
导入 Microsoft GPG 密钥: 运行以下命令导入 Microsoft 的 GPG 密钥:
wget -qO- https://packages.microsoft.com/keys/microsoft.asc | gpg --dearmor > microsoft.gpg sudo mv microsoft.gpg /etc/apt/trusted.gpg.d/microsoft.gpg
添加 VSCode 存储库: 运行以下命令添加 VSCode 存储库:
sudo sh -c 'echo "deb [arch=amd64] https://packages.microsoft.com/repos/vscode stable main" > /etc/apt/sources.list.d/vscode.list'
安装 VSCode: 更新包列表并安装 VSCode:
sudo apt update sudo apt install code
运行 VSCode: 安装完成后,你可以通过命令行运行
code
或者在应用程序菜单中找到 Visual Studio Code 并启动它。
安装frida-server端到手机
安装frida-server最好跟主机上安装的frida版本一致比较好
在官网下载安装包,官网地址 。真机下载frida-server-12.8.0-android-arm64.xz
版的,手机需要有root权限,刷机教程可以参考Android刷机+抓包环境配置
将下载的安装包解压,把解压后的文件push到手机/data/local/tmp/
目录下
测试是否连接成功
可以安装一个
WIFI ADB
方便多个终端链接启动手机端frida-server
┌──(kali㉿kali)-[~] └─$ adb shell marlin:/ $ su marlin:/ # cd /data/local/tmp/ marlin:/data/local/tmp # ./fs-12 -l 0.0.0.0:8888 & [1] 28392 marlin:/data/local/tmp #
测试:通过
WIFI ADB
连接frida
frida-ps -H 192.168.1.8:8888
测试:js脚本注入
function main(){ Java.perform(function(){ console.log("Inside Frida Java Perform !"); }); } setImmediate(main);
frida -H 192.168.1.8:8888 -f com.android.settings -l /path/0530.js
┌──(kali㉿kali)-[~/Documents] └─$ frida -H 192.168.1.8:8888 -f com.android.settings -l 0530.js ____ / _ | Frida 12.8.0 - A world-class dynamic instrumentation toolkit | (_| | > _ | Commands: /_/ |_| help -> Displays the help system . . . . object? -> Display information about 'object' . . . . exit/quit -> Exit . . . . . . . . More info at https://www.frida.re/docs/home/ Spawning `com.android.settings`... Inside Frida Java Perform ! Spawned `com.android.settings`. Use %resume to let the main thread start executing! [Remote::com.android.settings]->
测试:objection注入
┌──(kali㉿kali)-[~/Documents] └─$ objection -N -h 192.168.1.8 -p 8888 -g com.android.settings explore Using networked device @`192.168.1.8:8888` A newer version of objection is available! You have v1.8.4 and v1.11.0 is ready for download. Upgrade with: pip3 install objection --upgrade For more information, please see: https://github.com/sensepost/objection/wiki/Updating Agent injected and responds ok! _ _ _ _ ___| |_|_|___ ___| |_|_|___ ___ | . | . | | -_| _| _| | . | | |___|___| |___|___|_| |_|___|_|_| |___|(object)inject(ion) v1.8.4 Runtime Mobile Exploration by: @leonjza from @sensepost [tab] for command suggestions com.android.settings on (google: 10) [net] # frid Unknown or ambiguous command: `frid`. Try `help frid`. com.android.settings on (google: 10) [net] # frida -------------------- ----------- Frida Version 12.8.0 Process Architecture arm64 Process Platform linux Debugger Attached False Script Runtime DUK Script Filename /script1.js Frida Heap Size 16.9 MiB -------------------- ----------- com.android.settings on (google: 10) [net] #
其它参考链接:
看雪2W课-Frida逆向与利用自动化 Frida开发和调试环境搭建 课时1_frida自动化-CSDN博客
- 标题: Frida开发和调试环境搭建
- 作者: xiaoeryu
- 创建于 : 2023-11-04 10:42:31
- 更新于 : 2024-05-26 23:04:54
- 链接: https://github.com/xiaoeryu/2023/11/04/看雪2W课-Frida开发和调试环境搭建/
- 版权声明: 本文章采用 CC BY-NC-SA 4.0 进行许可。