Linux+Windows安装r2Frida环境配置及使用

原创 橙留香Park 2022-10-04 00:17

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

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


本篇文章遇到排版混乱的地方,可点击文末阅读原文或前往该地址:https://orangey.blog.csdn.net/article/details/126601729

更多关于Android安全的知识,可前往:https://blog.csdn.net/ananasorangey/category11955914.html



真心推荐优先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

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

 

  • 安装r2frida依赖

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调试

    • 设置里面,关于本机,然后狂点系统版本号,即可开启开发者模式

    • 返回设置的关于本机界面,会多一个开发者选项(有些是狂点版本号后直接跳转到开发者选项界面)

    • 点击开启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
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

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

./data/local/tmp/fshbbx86 -l 0.0.0.0:8080 (8080为自定义端口)

  • 启动frida并修改监听端口(防止部分app监测默认端口)【可选】

adb shell /data/local/tmp/frida-server-15.2.2-android-x86 -l 0.0.0.0:8080

  • 转发frida端口

adb forward tcp:27042 tcp:27042
adb forward tcp:27043 tcp:27043
adb forward tcp:38089 tcp:38089

  • frida-ls-devices查看USB的设备的名称或IP

frida-ls-devices

  • 对于USB调试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



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

 

..\radare2\include\libr\r_cons.hUTF-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环境配置及使用/


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



橙留香Park 橙留香来自一位三流剑客之乡,担任威胁猎手,脑子不会转弯,属于安全特学脑。橙留香同学[小菜鸟],定期分享从零入门车联网安全(包括基础知识储备)技术。只为你呈现有价值的信息,专注于车联网安全领域之Android终端反入侵技术研究。
评论
  • 在智能家居领域中,Wi-Fi、蓝牙、Zigbee、Thread与Z-Wave等无线通信协议是构建短距物联局域网的关键手段,它们常在实际应用中交叉运用,以满足智能家居生态系统多样化的功能需求。然而,这些协议之间并未遵循统一的互通标准,缺乏直接的互操作性,在进行组网时需要引入额外的网关作为“翻译桥梁”,极大地增加了系统的复杂性。 同时,Apple HomeKit、SamSung SmartThings、Amazon Alexa、Google Home等主流智能家居平台为了提升市占率与消费者
    华普微HOPERF 2025-01-06 17:23 145浏览
  • 彼得·德鲁克被誉为“现代管理学之父”,他的管理思想影响了无数企业和管理者。然而,关于他的书籍分类,一种流行的说法令人感到困惑:德鲁克一生写了39本书,其中15本是关于管理的,而其中“专门写工商企业或为企业管理者写的”只有两本——《为成果而管理》和《创新与企业家精神》。这样的表述广为流传,但深入探讨后却发现并不完全准确。让我们一起重新审视这一说法,解析其中的矛盾与根源,进而重新认识德鲁克的管理思想及其著作的真正价值。从《创新与企业家精神》看德鲁克的视角《创新与企业家精神》通常被认为是一本专为企业管
    优思学院 2025-01-06 12:03 124浏览
  • By Toradex 秦海1). 简介嵌入式平台设备基于Yocto Linux 在开发后期量产前期,为了安全以及提高启动速度等考虑,希望将 ARM 处理器平台的 Debug Console 输出关闭,本文就基于 NXP i.MX8MP ARM 处理器平台来演示相关流程。 本文所示例的平台来自于 Toradex Verdin i.MX8MP 嵌入式平台。  2. 准备a). Verdin i.MX8MP ARM核心版配合Dahlia载板并
    hai.qin_651820742 2025-01-07 14:52 48浏览
  • 根据环洋市场咨询(Global Info Research)项目团队最新调研,预计2030年全球无人机锂电池产值达到2457百万美元,2024-2030年期间年复合增长率CAGR为9.6%。 无人机锂电池是无人机动力系统中存储并释放能量的部分。无人机使用的动力电池,大多数是锂聚合物电池,相较其他电池,锂聚合物电池具有较高的能量密度,较长寿命,同时也具有良好的放电特性和安全性。 全球无人机锂电池核心厂商有宁德新能源科技、欣旺达、鹏辉能源、深圳格瑞普和EaglePicher等,前五大厂商占有全球
    GIRtina 2025-01-07 11:02 74浏览
  • 这篇内容主要讨论三个基本问题,硅电容是什么,为什么要使用硅电容,如何正确使用硅电容?1.  硅电容是什么首先我们需要了解电容是什么?物理学上电容的概念指的是给定电位差下自由电荷的储藏量,记为C,单位是F,指的是容纳电荷的能力,C=εS/d=ε0εrS/4πkd(真空)=Q/U。百度百科上电容器的概念指的是两个相互靠近的导体,中间夹一层不导电的绝缘介质。通过观察电容本身的定义公式中可以看到,在各个变量中比较能够改变的就是εr,S和d,也就是介质的介电常数,金属板有效相对面积以及距离。当前
    知白 2025-01-06 12:04 173浏览
  • 本文介绍Linux系统更换开机logo方法教程,通用RK3566、RK3568、RK3588、RK3576等开发板,触觉智能RK3562开发板演示,搭载4核A53处理器,主频高达2.0GHz;内置独立1Tops算力NPU,可应用于物联网网关、平板电脑、智能家居、教育电子、工业显示与控制等行业。制作图片开机logo图片制作注意事项(1)图片必须为bmp格式;(2)图片大小不能大于4MB;(3)BMP位深最大是32,建议设置为8;(4)图片名称为logo.bmp和logo_kernel.bmp;开机
    Industio_触觉智能 2025-01-06 10:43 87浏览
  • 村田是目前全球量产硅电容的领先企业,其在2016年收购了法国IPDiA头部硅电容器公司,并于2023年6月宣布投资约100亿日元将硅电容产能提升两倍。以下内容主要来自村田官网信息整理,村田高密度硅电容器采用半导体MOS工艺开发,并使用3D结构来大幅增加电极表面,因此在给定的占位面积内增加了静电容量。村田的硅技术以嵌入非结晶基板的单片结构为基础(单层MIM和多层MIM—MIM是指金属 / 绝缘体/ 金属) 村田硅电容采用先进3D拓扑结构在100um内,使开发的有效静电容量面积相当于80个
    知白 2025-01-07 15:02 76浏览
  • 大模型的赋能是指利用大型机器学习模型(如深度学习模型)来增强或改进各种应用和服务。这种技术在许多领域都显示出了巨大的潜力,包括但不限于以下几个方面: 1. 企业服务:大模型可以用于构建智能客服系统、知识库问答系统等,提升企业的服务质量和运营效率。 2. 教育服务:在教育领域,大模型被应用于个性化学习、智能辅导、作业批改等,帮助教师减轻工作负担,提高教学质量。 3. 工业智能化:大模型有助于解决工业领域的复杂性和不确定性问题,尽管在认知能力方面尚未完全具备专家级的复杂决策能力。 4. 消费
    丙丁先生 2025-01-07 09:25 83浏览
  • 每日可见的315MHz和433MHz遥控模块,你能分清楚吗?众所周知,一套遥控设备主要由发射部分和接收部分组成,发射器可以将控制者的控制按键经过编码,调制到射频信号上面,然后经天线发射出无线信号。而接收器是将天线接收到的无线信号进行解码,从而得到与控制按键相对应的信号,然后再去控制相应的设备工作。当前,常见的遥控设备主要分为红外遥控与无线电遥控两大类,其主要区别为所采用的载波频率及其应用场景不一致。红外遥控设备所采用的射频信号频率一般为38kHz,通常应用在电视、投影仪等设备中;而无线电遥控设备
    华普微HOPERF 2025-01-06 15:29 131浏览
  • 根据Global Info Research项目团队最新调研,预计2030年全球封闭式电机产值达到1425百万美元,2024-2030年期间年复合增长率CAGR为3.4%。 封闭式电机是一种电动机,其外壳设计为密闭结构,通常用于要求较高的防护等级的应用场合。封闭式电机可以有效防止外部灰尘、水分和其他污染物进入内部,从而保护电机的内部组件,延长其使用寿命。 环洋市场咨询机构出版的调研分析报告【全球封闭式电机行业总体规模、主要厂商及IPO上市调研报告,2025-2031】研究全球封闭式电机总体规
    GIRtina 2025-01-06 11:10 104浏览
  • PLC组态方式主要有三种,每种都有其独特的特点和适用场景。下面来简单说说: 1. 硬件组态   定义:硬件组态指的是选择适合的PLC型号、I/O模块、通信模块等硬件组件,并按照实际需求进行连接和配置。    灵活性:这种方式允许用户根据项目需求自由搭配硬件组件,具有较高的灵活性。    成本:可能需要额外的硬件购买成本,适用于对系统性能和扩展性有较高要求的场合。 2. 软件组态   定义:软件组态主要是通过PLC
    丙丁先生 2025-01-06 09:23 85浏览
我要评论
0
点击右上角,分享到朋友圈 我知道啦
请使用浏览器分享功能 我知道啦