我有这个Java代码:final String b() throws Exception {} ..... return v0;public final void b(Application arg6) {}如何获得第一个函数的返回值?这是我的 javascript 代码,我将它与 frida 挂钩,但它不起作用。testfunction: function () { Java.perform(function () { var encrypter = Java.use("es"); return encrypter.b(); }); },任何人都可以告诉我如何解决这个问题。非常感谢。
2 回答
慕的地6264312
TA贡献1817条经验 获得超6个赞
定义导出时,不必重载该方法。例如,在您的情况下:
rpc.exports = {
testfunction: function () {
Java.perform(function() {
var es_class = Java.use("es");
return es_class.b();
});
}
}
此外,检查您的函数(testfunction)是否在 rpc.export 部分内。
如果这能解决您的问题,请告诉我。
慕的地10843
TA贡献1785条经验 获得超8个赞
目前您的代码没有挂钩任何东西。要挂钩函数,您需要按如下方式覆盖其实现:
Java.perform(function () {
var encrypter = Java.use("es");
// Overload needed because two 'b' functions exist:
var b = encrypter.b.overload();
b.implementation = function() {
const retVal = b.call(this);
console.log("hook succeeded! Return value: " + retVal);
return retVal;
};
});
查看文档和此备忘单以获取更常见的示例。
添加回答
举报
0/150
提交
取消