Frida报错:Implementation for e expected return value compatible with void 求助
解决Frida脚本错误:
Implementation for e expected return value compatible with void 问题原因
你要Hook的br.com.vr.beneficios.ui.activities.CreateNewPasswordActivity类中的e方法返回类型是void(无返回值),但脚本里写了return true;,类型不匹配导致报错。
修正后的脚本
Java.perform(function() { let TargetActivity = Java.use("br.com.vr.beneficios.ui.activities.CreateNewPasswordActivity"); TargetActivity.e.overload('java.lang.Boolean').implementation = function(status) { console.log('Status =>', status); // 若需要保留原方法的功能,必须调用这行,否则原逻辑不会执行 this.e(status); // 注意:void方法不能返回任何值,删掉return true; } });
额外说明
- 验证原方法返回类型:可以用以下Frida命令确认:
frida -U -f 你的APP包名 --no-pause -e "Java.perform(()=>{console.log(Java.use('br.com.vr.beneficios.ui.activities.CreateNewPasswordActivity').e.overload('java.lang.Boolean').returnType)})"
执行后会输出方法的返回类型,确认是void。
- 如果不需要保留原方法逻辑,直接去掉
this.e(status);即可,但不要添加任何带返回值的语句。
内容的提问来源于stack exchange,提问作者Theus zNth
相关产品推荐
相关产品推荐

