frida 在主动调用一个函数时报错。我是完全初学者,不知怎么解决。
Java.choose("com.chillyroom.sdk.agent.PingXXPayAgent", {
onMatch: (i) => {
a.sendPaySuccess()
console.log();
}, onComplete: () => { }
})
可以看到我只是单纯的调用这个函数,并没有修改它的实现
Error: sendPaySuccess(): argument types do not match any of:
.overload('java.lang.String', 'java.lang.String', 'java.lang.String')
at X (frida/node_modules/frida-java-bridge/lib/class-factory.js:622)
at value (frida/node_modules/frida-java-bridge/lib/class-factory.js:1141)
at e (frida/node_modules/frida-java-bridge/lib/class-factory.js:606)
at onMatch (c:\Users\DealD\Desktop\hook.js:13)
at _chooseObjectsArtLegacy (frida/node_modules/frida-java-bridge/lib/class-factory.js:376)
at <anonymous> (frida/node_modules/frida-java-bridge/lib/class-factory.js:303)
at kt (frida/node_modules/frida-java-bridge/lib/android.js:586)
我试着去搜索原因,但无功而返。搜到的都是叫你如何在修改函数实现时遇到重载怎么办。
请教各位
【以下回答由 GPT 生成】
根据错误信息看,调用的sendPaySuccess函数需要传入三个字符串参数。你可以按照下面的方式来尝试修复这个问题:
首先,确定sendPaySuccess函数需要的参数类型和顺序。可以通过查看代码或者文档来获取这些信息。
在调用sendPaySuccess函数之前,准备好三个字符串参数。
修改你的代码,将三个字符串参数传递给sendPaySuccess函数。下面是一个示例代码:
```javascript Java.choose("com.chillyroom.sdk.agent.PingXXPayAgent", { onMatch: function(i) { // 准备三个字符串参数 var param1 = "参数1"; var param2 = "参数2"; var param3 = "参数3";
// 调用sendPaySuccess函数,并传入参数
i.sendPaySuccess(param1, param2, param3);
},
onComplete: function() {}
}) ```