1. 前言
最近在看吾爱论坛的2023年的新春红包题目,碰巧有个Android用到了Frida hook,顺手跟大佬学习了下。
2. Frida介绍
Frida是一款基于python+JavaScript
的hook框架,本质是一种动态插桩技术。可以用于Android
、Windows
、IOS
等各大平台,其执行脚本基于python
或者Node.js
写成。
3. Frida组成
Frida大致由以下三部分组成
- Frida-server: 运行在设备上
- Frida: Python模块
- Frida-tools: 提供cli工具命令你个跟Frida-server交互
4. 官方文档
1 | Frida官网:https://www.frida.re/ |
5. 安装方法
安装方法很简单,只需要在Windows
端安装Frida
客户端,在Android
端安装Frida
服务端
5.1 Windows端
1 | python3 -m pip install frida |
1 | frida --version |
5.2 Android端
1 | adb shell |
查看手机设备的cpu
版本,这里我用的是模拟器,所以是x86
根据对应cpu
版本去下载相应的server端
1 | https://github.com/frida/frida/releases |
下载下来后放入手机,可自行选择目录(有权限赋值运行即可)
1 | adb push frida-server-16.0.8-android-x86 /data/local/tmp |
同时还需要我们进行端口转发
1 | adb forward tcp:27042 tcp:27042 //27042为默认端口 |
之后使用adb
进入手机shell
模式,运行Frida Server
端
另起一个cmd
,查看是否运行成功
1 | frida-ps -U |
5.3 升级方法
1 | python3 -m pip install -U frida |
6. 例题讲解
这里用到的例子是吾爱上2023年的新春红包题目解题领红包之四 {Android 初级题}
直接上jadx
分析MainActivity
看看
从代码中可以看到,关键点在A类的B方法中
分析代码可得,str
和str2
分别为MainActivity
中传来的UID
和flag
在A类的B方法中,讲我们的UID
和Wuaipojie2023
拼接在了一起,然后分别进行encode加密、base64加密、md5哈希。一系列的加密算法过于麻烦,我们不去一个一个的写,采用Frida直接hook我们最终的返回值。
这里采用了师傅的hook脚本
1 | function main(){ |
Android端先开启app,等待附加
先用Frida查下进程
1 | frida-ps -U |
1 | 1885 mediaserver |
得到我们的进程名字为【2023春节】解题领红包之四
直接上Frida附加脚本hook
1 | frida -U -l solve-frida.js 【2023春节】解题领红包之四 |
脚本加载成功,这时我们只需点击app中的验证,然后即可成功hook到我们需要的参数。
参数2即为我们的flag
1 | flag{919i22ki913ji27ig30871hh7g90h0j5} |
7. 参考链接
1 | 安卓逆向:Frida安装配置及使用 |
发布时间: 2023-01-31
最后更新: 2023-02-12
本文标题: Frida学习
本文链接: https://foxcookie.github.io/2023/01/31/Frida学习/
版权声明: 本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明出处!