方案一、安装python环境
参考:https://bbs.pediy.com/thread-263852.htm
termux 版本103
下载地址
设置国内源(可以手机浏览器打开此文章,复制粘贴)
sed -i 's@^\(deb.*stable main\)$@#\1\ndeb https://mirrors.tuna.tsinghua.edu.cn/termux/termux-packages-24 stable main@' $PREFIX/etc/apt/sources.list
sed -i 's@^\(deb.*games stable\)$@#\1\ndeb https://mirrors.tuna.tsinghua.edu.cn/termux/game-packages-24 games stable@' $PREFIX/etc/apt/sources.list.d/game.list
sed -i 's@^\(deb.*science stable\)$@#\1\ndeb https://mirrors.tuna.tsinghua.edu.cn/termux/science-packages-24 science stable@' $PREFIX/etc/apt/sources.list.d/science.list
pkg update -y
可以设置ssh远程操作,(如果只是手机敲,可以跳过这一步)
手机:
pkg install openssh

从手机截图可知 路径 、用户名、 和存在.ssh文件夹
因为termux只支持免密登录 所以需要传公钥。
电脑:(电脑有公钥,不需要第一条命令)
# 生成公钥
ssh-keygen -t rsa
adb push ~/.ssh/id_rsa.pub /sdcard/
adb shell
su
mv /sdcard/id_rsa.pub /data/data/com.termux/files/home/.ssh/
cat ./id_rsa.pub >> authorized_keys
找到手机ip地址,截图得知用户名为 u0_a173
ssh u0_a173@192.168.0.150 -p 8022
就能连上了。
安装python frida等
我这里是电脑运行的下面命令,有点问题,而且还慢。后来重新设置了上面的国内源和pkg update -y
就好了
过程中可能有问题,文章下方有说明。
安装
pkg update -y
pkg install -y python
pkg install -y tsu
pkg install -y root-repo
cp /data/data/com.termux/files/usr/bin/pip3.9 /data/data/com.termux/files/usr/bin/pip3.8
pkg install -y frida-tools
tsu
# 此文件夹自己建的
cd /sdcard/LocalFrida/
unset LD_PRELOAD
frida -f app包名 -l 你自己写的脚本.js --no-pause --runtime=v8
可能出现的问题:
- 1、安装frida-tools巨慢,最后我给手机fan 强了。
- 2、不要使用su,那样就没有环境了,相当于电脑adb敲命令。 要使用tsu。
- 3、 如果报了
CANNOT LINK EXECUTABLE "/data/local/tmp/frida-xxxxx/frida-helper-32": "/data/data/com.termux/files/usr/lib/libtermux-exec.so" is 64-bitFailed to spawn: unexpectedly timed out while spawning helper process
的话。就敲一下unset LD_PRELOAD
就好了exit
方案二、frida-inject
https://github.com/iGio90/FridaAndroidInjector 现成的方案
https://github.com/langgithub/FridaInject 另一个现成的方案
————————————————更新———————————————
方案三、重打包
就是下面这个链接的方式
https://www.jianshu.com/p/d2d7da75990a
大概原理就是把app重打包,把frida_gadget.so塞到app里,然后会读特定一个目录里的js脚本
塞入的方式有多种
1、修改small 人话就是:添加一些java层代码直接加载那个so(实际是small代码,不能直接改java)
2、通过so linker 人话就是: 修改app自己的so,让那个so引用frida的so。导致frida的so被加载。
3、xpatch 他是一个免root使用xposed框架,原理是解包->把xposed、sandkook之类的塞进去->保存之前的签名到一个目录->hook签名验证的方法指向刚才那个目录->重打包。能用xposed了,就可以用xposed模块取加载那个so,当然用原生xposed也中
大概原理是这个样子,具体操作可以到那个链接里看
网友评论