转载请标明出处https://www.jianshu.com/p/e19c566736fb
接着前面的文章搭建好frida的环境之后,我们来尝试Android手机app的操作。
1. 在确保手机和电脑都已经配置好Frida的情况下,以及手机和电脑已经连接正常的情况下。
执行adb shell su -c '/data/local/tmp/frida-server' 。运行手机的frida-server。(已经开启运行的就跳过这步吧)
2. 现在,一切环境准备完毕,为了测试Frida是否准备正常
执行:frida-ps -U
如果出现进程列表,就表示准备正常了。
3. 尝试 : 跟踪App里的Open()函数
在我们的Android手机上启动我们要操作的APP,之后在电脑输入指令
frida-trace -U -i open xxx(后面这个是你要操作的app的包名)
会看到如下图输出:
到此为止你可以任意的在App里面操作了,可以看到主控端的命令行关于 open() 的输出了
现在可以实时的修改JavaScript脚本,并且在Android的App里面深挖了。
3.1 frida出现的问题
这里我就遇到了:
Failed to attach: unexpected error while attaching to process with pid 19267。
这里我们还需要对selinux(完全不知道什么情况但是还好找到了办法解决)操作一下。
adb shell su,进入到root权限之后,输入getenforce我们看到的是Enforcing,这里我们需要输入echo 0 > /sys/fs/selinux/enforce。
之后再输入getenforce就会出现Permissive,问题就解决了。如下图(下图是我修改之后的所以是Permissive):
4. 原文档提到:
像是 Frida,Frida-trace 等这些工具确实很有用,但是有时候你会发现你还是需要定制自己更加个性化的功能,那就最好去读一下 Functions 和 Messages 这两章,比如当你使用到 frida.attach() 的时候,其实底层调用的就是 frida.getusbdevice().attach()。
最后,很感谢看雪大神翻译的Frida中文文档,感谢!