• [免费专栏] Android安全之Linux+Windows安装r2Frida环境配置及使用



    也许每个人出生的时候都以为这世界都是为他一个人而存在的,当他发现自己错的时候,他便开始长大

    少走了弯路,也就错过了风景,无论如何,感谢经历


    转移发布平台通知:将不再在CSDN博客发布新文章,敬请移步知识星球

    感谢大家一直以来对我CSDN博客的关注和支持,但是我决定不再在这里发布新文章了。为了给大家提供更好的服务和更深入的交流,我开设了一个知识星球,内部将会提供更深入、更实用的技术文章,这些文章将更有价值,并且能够帮助你更好地解决实际问题。期待你加入我的知识星球,让我们一起成长和进步


    Android安全付费专栏长期更新,本篇最新内容请前往:

    真心推荐优先Ubuntu 或Linux安装,Windows安装容易出错,安装真的是重灾区,呜呜呜… …

    0x01 Linux 安装radare2+r2frida 【推荐】

    Linux 系统安装,此处安装的系统为Ubuntu(我用得Ubuntu 18,不太推荐用Kali Linux,我这里使用Kali 2022版本的有些源依赖找不到或更新源容易出问题,以前版本没遇到过这种问题,大家看着来吧,如果Kali 用如下方法失败,建议用个干净点的Ubuntu系统来安装),步骤如下:

    • 安装radare2
    // 需要提前安装好需要的环境
    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
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20

    在快安装好的结尾,会提示输入密码,然后自动配置一些环境变量等配置,此时就代表已安全好了

    在这里插入图片描述
    在这里插入图片描述

    • 安装r2frida依赖
    sudo apt-get update && sudo apt-get upgrade -y
    sudo apt install -y make gcc libzip-dev nodejs npm curl pkg-config git
    
    • 1
    • 2
    • 依然优先推荐使用r2pm -ci r2frida命令自动化安装,如果失败的话再自行下载源码make install编译安装
    r2pm -ci r2frida
    
    • 1

    在这里插入图片描述

    安装成功将提示:

    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"
    
    • 1
    • 2
    • 3

    接着运行r2 frida://?显示帮助,测试插件是否安装成功,如下:

    在这里插入图片描述

    运行r2 frida://?显示帮助,测试插件是否安装成功,如下:

    • 打开开发者选项里的USB调试

      • 设置里面,关于本机,然后狂点系统版本号,即可开启开发者模式
      • 返回设置的关于本机界面,会多一个开发者选项(有些是狂点版本号后直接跳转到开发者选项界面)
      • 点击开启USB调试开关按钮
    • 获取当前模拟器的CPU,好选择frida-server的版本

    adb shell getprop ro.product.cpu.abi
    
    • 1

    AndroidCPU架构:

    CPU架构描述
    armeabi第5代 ARM v5TE,使用软件浮点运算,兼容所有ARM设备,通用性强,速度慢
    armeabi-v7a第7代 ARM v7,使用硬件浮点运算,具有高级扩展功能
    arm64-v8a第8代,64位,包含 Aarch32、Arch64两个执行状态对应32、64bit
    x86intel32位,一般用于平板电脑
    x86_64intel64位,一般用于平板电脑
    mips少接触
    mips64少接触
    • 在手机上运行Frida服务端:
    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
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6

    :有些APP会检测本地是否启动了frida-server,以及监听是否开启了27042端口。有反调试的话,可以将名字重新改成别的,fshbbx86之类的,以及更改端口,此处不介绍反检测绕过的知识,感兴趣的同学可以私下自行了解

    ./data/local/tmp/fshbbx86 -l 0.0.0.0:8080  (8080为自定义端口)
    
    • 1
    • 启动frida并修改监听端口(防止部分app监测默认端口)【可选】
    adb shell /data/local/tmp/frida-server-15.2.2-android-x86 -l 0.0.0.0:8080
    
    • 1
    • 转发frida端口
    adb forward tcp:27042 tcp:27042
    adb forward tcp:27043 tcp:27043
    adb forward tcp:38089 tcp:38089
    
    • 1
    • 2
    • 3
    • frida-ls-devices查看USB的设备的名称或IP
    frida-ls-devices
    
    • 1

    在这里插入图片描述

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

    在这里插入图片描述

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

    =!?
    
    • 1

    在这里插入图片描述
    在这里插入图片描述

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

    =!dm?
    
    • 1

    在这里插入图片描述

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

    $ =!dm*~sg.vantagepoint.helloworldjni
    
    • 1

    在这里插入图片描述

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

    $ =!dmj~sg.vantagepoint.helloworldjni
    
    • 1

    在这里插入图片描述

    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)

    frida --version
    
    • 1

    在这里插入图片描述
    在这里插入图片描述

    ..\radare2\include\libr\r_cons.hUTF-8 with BOM编码重新保存

    在这里插入图片描述

    在cmd中打开该目录,使用vcvarsall.bat初始化环境,然后执行安装脚本

    "[Visual Studio安装位置]\VC\Auxiliary\Build\vcvarsall.bat" x64
    .\build.bat install
    
    • 1
    • 2

    在这里插入图片描述

    安装成功将提示(我这里安装失败了,((((ToT)†~~~):

    Installing...
    Copying 'io_frida.dll' to C:\Users\xhy\.local\share\radare2\plugins
            1 file(s) copied.
    
    • 1
    • 2
    • 3

    参考链接

    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/


    你以为你有很多路可以选择,其实你只有一条路可以走


  • 相关阅读:
    关于Linux命令的使用
    FastDFS在centos7上的配置
    基于http的protobuf服务实现
    matlab simulink 四旋翼跟拍无人机仿真
    python
    Hive SQL 开发指南(三)优化及常见异常
    c# - - - Application.StartupPath(程序安装目录)和Environment.CurrentDirectory(程序工作目录)
    Armv8/Armv9的VIPT的别名问题是如何解决的
    总结:Tomcat的IO模型
    系统结构设计原则、聚合与耦合
  • 原文地址:https://blog.csdn.net/Ananas_Orangey/article/details/126601729