Javascript 弗里达胡克最终母语

Javascript 弗里达胡克最终母语,javascript,java,frida,Javascript,Java,Frida,我有以下Java代码: final String b() throws Exception {} ..... return v0; public final void b(Application arg6) {} 如何获得第一个函数的返回值? 这是我的javascript代码,我用frida钩住了它,但它不起作用 testfunction: function () { Java.perform(function () { var encrypter =

我有以下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();
        });
    },

任何人都可以告诉我如何解决这个问题。非常感谢。

定义导出时,不必重载该方法。例如,在您的情况下:

rpc.exports = {
  testfunction: function () {
    Java.perform(function() {
      var es_class = Java.use("es");
      return es_class.b();
    });
  }
}
此外,检查您的函数(testfunction)是否在rpc.export部分内


如果这能解决您的问题,请告诉我。

当前您的代码没有挂接任何东西。要钩住函数,需要按如下方式覆盖其实现:

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;
    };
});
有关更常见的示例,请查看和