也许每个人出生的时候都以为这世界都是为他一个人而存在的,当他发现自己错的时候,他便开始长大
少走了弯路,也就错过了风景,无论如何,感谢经历
转移发布平台通知:将不再在CSDN博客发布新文章,敬请移步知识星球
感谢大家一直以来对我CSDN博客的关注和支持,但是我决定不再在这里发布新文章了。为了给大家提供更好的服务和更深入的交流,我开设了一个知识星球,内部将会提供更深入、更实用的技术文章,这些文章将更有价值,并且能够帮助你更好地解决实际问题。期待你加入我的知识星球,让我们一起成长和进步
Android安全付费专栏长期更新,本篇最新内容请前往:
注:真心推荐优先Ubuntu 或Linux安装,Windows安装容易出错,安装真的是重灾区,呜呜呜… …
Linux 系统安装,此处安装的系统为Ubuntu(我用得Ubuntu 18,不太推荐用Kali Linux,我这里使用Kali 2022版本的有些源依赖找不到或更新源容易出问题,以前版本没遇到过这种问题,大家看着来吧,如果Kali 用如下方法失败,建议用个干净点的Ubuntu系统来安装),步骤如下:
// 需要提前安装好需要的环境
sudo apt install curl
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/radare2
radare2/sys/install.sh
或自行下载好后丢到虚拟机中并运行安装,下面是解压和安装的命令
unzip radare2-master.zip
mv radare2-master radare2
radare2/sys/install.sh
在快安装好的结尾,会提示输入密码,然后自动配置一些环境变量等配置,此时就代表已安全好了


sudo apt-get update && sudo apt-get upgrade -y
sudo apt install -y make gcc libzip-dev nodejs npm curl pkg-config git
r2pm -ci r2frida命令自动化安装,如果失败的话再自行下载源码make install编译安装r2pm -ci r2frida

安装成功将提示:
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调试
获取当前模拟器的CPU,好选择frida-server的版本
adb shell getprop ro.product.cpu.abi
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 | 少接触 |
adb push frida-server-15.2.2-android-x86 /data/local/tmp/
adb shell
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为自定义端口)
adb shell /data/local/tmp/frida-server-15.2.2-android-x86 -l 0.0.0.0:8080
adb forward tcp:27042 tcp:27042
adb forward tcp:27043 tcp:27043
adb forward tcp:38089 tcp:38089
frida-ls-devices查看USB的设备的名称或IPfrida-ls-devices

iOS/Android应用程序,使用如下操作。需要注意,spawn 可以替换为OR,并且名称可以是应用程序名称或PID$ r2 frida://spawn/usb/ # 枚举设备
$ r2 frida://spawn/usb// # 枚举第一个设备的应用程序
$ r2 frida://spawn/usb//HelloWorldJNI # 运行 HelloWorldJNI 应用程序

要使用r2frida的命令,得在命令的前面加上 \ 或 =!,比如获取 help:=!?或 \?,此处的命令前面加\运行失败了,用的=!正常运行成功
=!?


如果想要获取某个字母有哪些命令只需要在其后面加 ? 即可,如下:
=!dm?

这里用到的匹配符~,这个符号类似grep命令;也可以以radare的格式输出,只需要在命令后面加个* 符号,如下:
$ =!dm*~sg.vantagepoint.helloworldjni

如果你想更方便的把获取到的数据直接使用,可以输出为JSON格式,只需要在命令后面加j,如下:
$ =!dmj~sg.vantagepoint.helloworldjni

提前准备环境: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)
frida --version


将..\radare2\include\libr\r_cons.h以UTF-8 with BOM编码重新保存

在cmd中打开该目录,使用vcvarsall.bat初始化环境,然后执行安装脚本
"[Visual Studio安装位置]\VC\Auxiliary\Build\vcvarsall.bat" x64
.\build.bat install

安装成功将提示(我这里安装失败了,((((ToT)†~~~):
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%E7%8E%AF%E5%A2%83%E9%85%8D%E7%BD%AE%E5%8F%8A%E4%BD%BF%E7%94%A8/
你以为你有很多路可以选择,其实你只有一条路可以走