Linux+Windows安装r2Frida环境的配置及使用方法
0x01 Linux 安装radare2+r2frida 【推荐】
Linux 系统安装,此处安装的系统为Ubuntu(我用得Ubuntu 18,不太推荐用Kali Linux,我这里使用Kali 2022版本的有些源依赖找不到或更新源容易出问题,以前版本没遇到过这种问题,大家看着来吧,如果Kali 用如下方法失败,建议用个干净点的Ubuntu系统来安装),步骤如下:
安装radare2
sudo apt install nodejs
sudo apt install python3
sudo apt install python3-pip
sudo apt install git
sudo apt install frida//提前配置个科学上网的代理,因为要下载github上的东西,可能会下载失败export http_proxy="http://192.168.6.23:7890"export https_proxy="http://192.168.6.23:7890"// 接着git下载代系统中运行安装sudo git clone https://github.com/radareorg/radare2radare2/sys/install.sh
或自行下载好后丢到虚拟机中并运行安装,下面是解压和安装的命令
unzip radare2-master.zip
mv radare2-master radare2
radare2/sys/install.sh
在快安装好的结尾,会提示输入密码,然后自动配置一些环境变量等配置,此时就代表已安全好了
安装r2frida依赖
sudo apt install -y make gcc libzip-dev nodejs npm curl pkg-config git
依然优先推荐使用
r2pm -ci r2frida
命令自动化安装,如果失败的话再自行下载源码make install
编译安装
安装成功将提示:
mkdir -p /"/home/ww/.local/share/radare2/plugins"rm -f "//home/ww/.local/share/radare2/plugins/io_frida.so"cp -f io_frida.so* /"/home/ww/.local/share/radare2/plugins"接着运行r2 frida://?
显示帮助,测试插件是否安装成功,如下:
运行r2 frida://?
显示帮助,测试插件是否安装成功,如下:
打开开发者选项里的USB调试
设置里面,关于本机,然后狂点系统版本号,即可开启开发者模式
返回设置的关于本机界面,会多一个开发者选项(有些是狂点版本号后直接跳转到开发者选项界面)
点击开启USB调试开关按钮
获取当前模拟器的CPU,好选择frida-server的版本
AndroidCPU架构:
CPU架构 | 描述 |
---|---|
armeabi | 第5代 ARM v5TE,使用软件浮点运算,兼容所有ARM设备,通用性强,速度慢 |
armeabi-v7a | 第7代 ARM v7,使用硬件浮点运算,具有高级扩展功能 |
arm64-v8a | 第8代,64位,包含 Aarch32、Arch64两个执行状态对应32、64bit |
x86 | intel32位,一般用于平板电脑 |
x86_64 | intel64位,一般用于平板电脑 |
mips | 少接触 |
mips64 | 少接触 |
在手机上运行Frida服务端:
su
cd /data/local/tmp/chmod 777 frida-server-15.2.2-android-x86./frida-server-15.2.2-android-x86
注:有些APP会检测本地是否启动了frida-server,以及监听是否开启了27042端口。有反调试的话,可以将名字重新改成别的,fshbbx86之类的,以及更改端口,此处不介绍反检测绕过的知识,感兴趣的同学可以私下自行了解
./data/local/tmp/fshbbx86 -l 0.0.0.0:8080 (8080为自定义端口)启动frida并修改监听端口(防止部分app监测默认端口)【可选】
转发frida端口
frida-ls-devices
查看USB的设备的名称或IP
对于USB调试
iOS/Android
应用程序,使用如下操作。需要注意,spawn 可以替换为OR,并且名称可以是应用程序名称或PID
要使用r2frida的命令,得在命令的前面加上 \
或 =!
,比如获取 help:=!?
或 \?
,此处的命令前面加\
运行失败了,用的=!
正常运行成功
如果想要获取某个字母有哪些命令只需要在其后面加 ?
即可,如下:
这里用到的匹配符~
,这个符号类似grep
命令;也可以以radare的格式输出,只需要在命令后面加个*
符号,如下:
如果你想更方便的把获取到的数据直接使用,可以输出为JSON格式,只需要在命令后面加j
,如下:
0x02 Windows 安装radare2+r2frida【不推荐】
提前准备环境:Visual Studio 2019、Node.js 14.17.4、Cygwin 3.2.0(记得选择wget)、Frida 15.1.2
(提前安装好以上环境,VS版本至少为2015)
在Linux和Windows上安装r2frida:https://blog.xhyeax.com/2021/10/01/r2frida-install-on-linux-and-win/
下载radare2的radare2-5.7.6-w64.zip,解压到任意目录,将..\radare2\bin目录添加到PATH环境变量后,执行r2 -v
查看版本号
下载r2frida,然后编辑build.bat
,修改frida_version
为frida安装版本,修改R2_BASE为radare2安装目录(不需要bin)
将..\radare2\include\libr\r_cons.h
以UTF-8 with BOM
编码重新保存
在cmd中打开该目录,使用vcvarsall.bat
初始化环境,然后执行安装脚本
安装成功将提示(我这里安装失败了
Installing...Copying 'io_frida.dll' to C:\Users\xhy\.local\share\radare2\plugins 1 file(s) copied.参考链接:
https://blog.xhyeax.com/2021/10/01/r2frida-install-on-linux-and-win/
https://ckcat.github.io/2019/12/21/r2Frida环境配置及使用/
APP逆向分析/渗透测试/安全检测/隐私合规如何选择手机机型或系统