frida_android
1 环境配置
1.1 安装Parallels Desktop虚拟机
windows可使用VMware虚拟机
滑到最下面有个绿的的下载按钮
Parallels Desktop tools
https://jingyan.baidu.com/article/6b18230989d49dba59e15971.html
1.2 kali
下载成功后解压缩后用Parallels Desktop打开Kali-Linux-2019.4-vmware-amd64.vmx文件,windows也可使用VMware打开.vmx文件
用户名/密码 root/toor
1.2.1 修改时区
kali里面时间老是不对,其实只是时区不对而已,一个命令就搞定: # dpkg-reconfigure tzdata 然后选择Asia→Shanghai,然后重启即可。
1 | root@kali:~# dpkg-reconfigure tzdata |
1.2.2 安装中文字体
KaliLinux默认不带中文,打开个中文网页,或者抓包时包里面有中文都看不了,其实只要安装个中文字体就可以,就可以看中文了。
千万不要把系统改成中文的!~~会出很大问题~
如果还是没有中文就更新下apt-get
1 | sudo apt-get update |
1.2.3 proxychains设置代理
我使用的v2rayU
https://github.com/yanue/V2rayU/releases/tag/2.3.1
获取mac电脑的ip ifconfig
开启sock端口监听 修改sock监听端口为局域网ip
添加proxychains代理到kali
vim /etc/proxychains.conf
socks5 192.168.xx.xx 1080
proxychains curl ip.sb 测试连接
1.2.4 htop
- htop工具 装个看
CPU
、内存、缓存的htop
apt install htop
使用:htop
1.2.5 jnettop
网络监听
安装方式一
apt install jnettop
安装方式二
wget http://ftp.us.debian.org/debian/pool/main/j/jnettop/jnettop_0.13.0-1+b3_amd64.deb
dpkg -i jnettop_0.13.0-1+b3_amd64.deb
使用:jnettop
提示下面就要全屏幕使用
Could not read/find config file /root/.jnettop: No such file or directory.
Could not get HW address of interface any: No such device
Could not get HW address of interface bluetooth-monitor: No such device
Could not get HW address of interface nflog: No such device
Could not get HW address of interface nfqueue: No such device
Could not get HW address of interface dbus-system: No such device
Could not get HW address of interface dbus-session: No such device
Too small terminal (detected size: 75x25), minimum required size: 80x20
1.2.6 tmux
- 装个窗口分屏软件
tmux
1 | apt install tmux |
http://www.ruanyifeng.com/blog/2019/10/tmux.html
进入 tmux
退出 exit
新建会话 tmux new -s
查询会话 tmux ls
切换会话 tmux switch -t 0
杀死会话 tmux kill-session
1 | # 划分上下两个窗格 |
1 | # 光标切换到上方窗格 |
1 | # 当前窗格上移 |
1.2.6 pyenv
安装依赖
https://github.com/pyenv/pyenv/wiki/Common-build-problems
sudo apt-get install -y build-essential libssl-dev zlib1g-dev libbz2-dev \
libreadline-dev libsqlite3-dev wget curl llvm libncurses5-dev libncursesw5-dev \
xz-utils tk-dev libffi-dev liblzma-dev python-openssl git
- 安装
https://github.com/pyenv/pyenv#installation
1 | git clone https://github.com/pyenv/pyenv.git ~/.pyenv |
下载不成功需要连接代理哦
proxychains pyenv install 3.8.6
1.2.7 vscode
搜索vscode保存文件后安装
~/Downloads# dpkg -i code_1.45.1-1589445302_amd64.deb
1.2.8 node
1 | curl -sL https://deb.nodesource.com/setup_10.x | sudo -E bash |
1.2.9 安装adb
google platform tools
wget https://dl.google.com/android/repository/platform-tools-latest-linux.zip
修改名字
mv platform-tools-latest-linux.zip xx.zip
解压
7z x platform-tools-latest-linux.zip
添加环境变量
1 | root@kali:~/Downloads/platform-tools# cat ~/.bashrc |grep export |
1.2.10 jadx
https://github.com/skylot/jadx
proxychains wget https://github.com/skylot/jadx/releases/download/v1.1.0/jadx-1.1.0.zip
mkdir jadx
unzip jadx-1.1.0.zip -d /root/Downloads/jadx
cd jadx/bin
./jadx-gui
1.2.11 夜神模拟器
模拟器设置桥接模式
1.2.12 Postern
https://github.com/postern-overwal/postern-stuff
下载
http://www.appchina.com/app/com.tunnelworkshop.postern
配置参考
https://mp.weixin.qq.com/s/ahPbBSfkkBsv4oy265rI2Q
1.2.13 010 editor
https://www.sweetscape.com/010editor/
tar zxvf 010EditorLinux64Installer.tar.gz
1.2.14 android studio
- android studio 开发IDE
下载
tar zxvf android-studio-ide-193.6514223-linux.tar.gz
打开android stuido 一路默认 不设置代理 要等android stuido完全打开 要不然会有问题
1 | /root/Desktop/android-studio/bin |
platform-tools目录换成android stuido的
/root/Android/Sdk/platform-tools
设置环境变量
1 | export PATH="/root/Android/Sdk/platform-tools:$PATH" |
2 手机环境
2.1下载镜像
大佬的刷机教程
https://github.com/r0ysue/AndroidSecurityStudy/blob/master/FRIDA/A01/README.md
官方工厂镜像
https://developers.google.com/android/images
下载pixel镜像8.1.0
wget https://dl.google.com/dl/android/aosp/sailfish-opm1.171019.011-factory-56d15350.zip
解压系统
7z x sailfish-opm1.171019.011-factory-56d15350.zip
cd sailfish-opm1.171019.011-factory-56d15350
下载后校验SHA-256 Checksum
1 | openssl dgst -sha256 bullhead-opm7.181205.001-factory-5f189d84.zip |
首先将手机进入fastboot
状态,操作流程如下:
- 将
USB
线断开,并确保手机有80%
左右的电量; - 将手机完全关机;
- 同时按住音量向下键和开机键;
- 手机将进入
fastboot
状态;
连接手机
运行 ./flash-all.sh
2.2安装twrp
建议使用twrp 3.3.0
https://dl.twrp.me/sailfish/twrp-3.3.0-0-sailfish.img.html
使用twrp3.3.0 不会乱码
复制粘贴到虚拟机上就可以
手机关机
音量键下和关机键同时按进入fastboot
fastboot boot twrp-3.3.1-0-sailfish.img
2.3magisk
wget https://github.com/topjohnwu/Magisk/releases/download/v20.4/Magisk-v20.4.zip
adb push Magisk-v20.4.zip /sdcard
sailfish刷twrp遇到这种乱码文件夹的,先进Wipe里把Internal Storage 给wipe了,再reboot之后,fastboot boot twrp.img进入临时twrp就可以了。后续adb push都没有问题。
第一遍刷入临时TWRP老是会出现/sdcard/下面显示类似加密的多个文件,进TWRP(Advanced Wipe/Format)后重新flash-all也没效果 # Wipe - Advanced Wipe - 选Internal Storage - Swipe to Wipe(一定要确认/sdcard/下面没有任何内容,有时候wipe后下面还有一个文件需要再wipe) - 后退到TWRP8选项界面 - Reboot - Bootloader- 重进bootloader - 再临时刷入TWRP
https://dl.twrp.me/sailfish/twrp-3.3.0-0-sailfish.img.html
使用twrp3.3.0 不会乱码
3 frida环境
3.1 frida-server
1 | adb shell getprop ro.product.cpu.abi #查看手机cpu |
根据你的手机架构下载frida-server
推荐12.8.0
https://github.com/frida/frida/releases
这是我下载的版本
frida-server-12.8.0-android-arm64.xz
1 | 解压frida-server |
3.2 frida安装
实用FRIDA进阶:内存漫游、hook anywhere、抓包
https://www.anquanke.com/post/id/197657
1 | pip install frida==12.8.0 |
objection 插件 Wallbreaker
https://github.com/hluwa/Wallbreaker
git clone https://github.com/hluwa/Wallbreaker.git
1 | ./fs1280arm64 |
objection+DEXDump脱壳
https://github.com/hluwa/FRIDA-DEXDump
git clone https://github.com/hluwa/FRIDA-DEXDump.git
1 | ./fs1280arm64 |
3.3 frida 开发环境
1 | 目前最新正确的Frida环境搭建方法: |
3.4 免ROOT使用frida
对于签名校验和文件校验就不行了
https://www.52pojie.cn/thread-1181471-2-1.html
3.5 编写frida脚本
MainActivity.java
1 | public class MainActivity extends AppCompatActivity { |
activity_main.xml
1 | <?xml version="1.0" encoding="utf-8"?> |
frida.js
1 | console.log("[*] Starting script"); |
注入
1 | frida -U -l frida.js com.demo.android_frida |
点击按钮
1 | [*] Starting script |
按钮文字改成ffff