0x00 背景
Android上使用frida比iOS稍微麻烦些,这里仅说一下一些坑。另外再贴一个使用cydia substrate进行hook的文章链接。
0x01 注意点
- windows上安装frida时要用
easy_install frida
,pip install frida
的frida无法正常工作,frida-ps -U
时会显示"failed to create process"。 -
启动frida-server后还要进行端口转发。
adb forward tcp:27042 tcp:27042 adb forward tcp:27043 tcp:27043
- frida使用了ptrace进行hook,如果要hook的程序有本身就attach了ptrace进程,则frida无法正常工作,此时我们采取以下策略:
- 在app启动前使用while循环一直尝试attach gdb debugger,然后启动app,这样可以保证app启动后我们的gdb先attach上,app自己的ptrace会attach失败。
- 把gdb detach掉,此时app已经没有任何ptrace attach了。
- 启动frida hook脚本,可以正常hook了。
0x02 使用Cydia Substrate
有些人不知道,其实cydia substrate不光能在iOS上用,还能在安卓上用。
非常好的文章:https://koz.io/android-substrate-c-hooking/