项目场景:
需要用frida去hook一个app的内部函数,frida服务端启动正常,但是客户端用frida去hook的时候,却发现Failed to load script:script(line 1):SyntaxError:unexpected character报错,提示语法错误。可是我根本没有加入调用脚本的参数。
我的手机是安卓11,所以对应的frida版本是15比较适配。选择的是15.0.0.📢注意:frida服务端跟客户端的版本要求一致。
问题描述
没有引入脚本,但是却有报错脚本的语法错误。这看起来是一个很玄学的报错。
原因分析:
原因我觉得大概就是我的frida-tools安装的是最新版,我电脑是macos,所以我是用pip3安装的frida-tools,但是我的frida-tools版本比较新,原版里面是frida16.0的版本,我是卸载了16.0,重装15.0,但是其他依赖的东西还是以16.0为主的。所以可能这个问题导致我本地frida一直报script错误。
后来,我github上面找 到底哪一个frida-tool版本默认自带原配15.0.0,后来找到了,是frida-tools==10.0.0。
解决方案:
sudo pip3 uninstall setuptools && sudo pip3 install setuptools==68.0.0 && sudo pip3 uninstall frida-tools && sudo pip3 install frida-tools==10.0.0 && sudo pip3 uninstall frida && sudo pip3 install frida==15.0.0
一条命令直接解决!然后frida就可以完美运行了。
其实就是重装了frida-tools的版本,选择了个完整适配frida15.0.0的版本。