目录
目录
5. 将frida-server 通过adb push指令推送到木木浏览器下的/data/local/tmp目录下,然后开启权限并启动
介绍:
Frida 是一个动态检测框架,并且一直是安全研究人员、渗透测试人员甚至不良行为者中最受欢迎的逆向工程工具。与其他挂钩框架(例如 Xposed 及其变体)相比,Frida 更加健壮,因为它有助于检测从不同语言(例如 Java、Objective-C、C、C++、C#)生成的二进制文件。由于 Frida 允许检测应用程序,因此企业、银行和政府应用程序等安全敏感应用程序部署了各种机制来检测 Frida 的存在。与 xposed 框架不同,frida 特定的工件仅在应用程序被挂钩时才会出现在应用程序的进程内存中。Frida 以多种模式运行,例如嵌入式模式和注入模式。
1.安装frida
一定要配置环境变量
⚠️这个还有一坑,就是Mac的配置文件需要修改和shell路径对应才生效。比如默认是zsh,如果只配置了bash,用zsh是不识别的。
vim ~/.zshrc
把环境变量写里,保存退出
source ~/.zshrc
vim ~/.bash_profile
export PATH=/usr/local/bin:$PATH(举例)
wq保存后编译一下环境变量
source ~/.bash_profile
本机环境mac 或者win10 (AMD64)都一样、python3。如果没更新pip,更具系统提示更新。例如:
python3 -m pip install --upgrade pip
pip install frida
安装完成后frida后,再pip安装frida-tools
pip install frida-tools
2.安装木木模拟器
直接去官网下载. http://mumu.163.com/
此过程省略… 下载后首先:
开启模拟器的root权限
打开模拟器USB调试,在开发者选项中。
3.下载frida服务端
到 https://github.com/frida/frida/releases 下载相应的版本
这里是给木木模拟器安装Android版本,所以下载下面这个:
frida-server-12.8.20-android-x86_64.xz
解压缩上面的文件,并且重命名为frida-server
====》❗️❗️❗️这里有坑,如果下载x86可能导致最后启动frida-ps -U时出现错误
Failed to enumerate processes: unable to handle 64-bit processes due to build configuration
getprop ro.product.cpu.abi---查看Android手机设备设置,找到对应下载版本
4. 安装adb工具
1、安装brew
/bin/zsh -c "$(curl -fsSL https://gitee.com/cunkai/HomebrewCN/raw/master/Homebrew.sh)"
2、安装adb,可能有点慢,请耐心等待
brew install android-platform-tools
3、检查是否安装成功,在终端输入
adb version
4 、使用adb查看app的包名
后续使用objection的时候会用到包名
adb shell pm list packages -3
5. 将frida-server 通过adb push指令推送到木木浏览器下的/data/local/tmp目录下,然后开启权限并启动
frida-server文件路径要写对
adb root # might be required
adb push frida-server /data/local/tmp/
adb shell "chmod 777 /data/local/tmp/frida-server"
adb shell "/data/local/tmp/frida-server &"
6.查看是否启动成功
重新打开一个终端窗口, 执行下面的命令, 查看当前运行的进程. 有输出则说明启动成功.
mac本:
adb shell
cd /data/local/tmp/
./frida-server
另一个窗口输入
frida-ps -U(显示包名)
frida-ps -Ua(显示软件名)
7.报错问题解决
7.1断开或无法找到模拟器解决
报错如下:
adb: no devices/emulators found
可能是adb功能异常,需要重启adb,从启命令如下:
(1)把adb服务杀死:adb kill-server
(2)重启adb服务:adb reconnect
7.2 显示有多个设备
报错如下:
error: more than one device and emulator
首先要查一下,是不是真的有多个设备或模拟器。
# adb devices
List of devices attached
emulator-5554 device
4dfadcb86 device
如果有多个设备,那就需要为ADB命令指定设备的序列号了。
#adb -s emulator-5554 shell
也就是如上所示,给命令加上-s的参数就可以了!
如果实际上只有一个设备或模拟器,并且查到有offline的状态;
那就说明是ADB本身的BUG所导致的,就需要用如下的方法处理下了:
# adb kill-server
# taskkill /f /im adb.exe
第一条命令是杀ADB的服务,第二条命令是杀ADB的进程!
如果第一条没有用,才考虑用第二条命令再试试看的!