我有以下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();
        });
    },任何人都可以告诉我如何解决这个问题。非常感谢。
发布于 2019-02-10 04:54:23
定义导出时,不必重载该方法。例如,在您的情况下:
rpc.exports = {
  testfunction: function () {
    Java.perform(function() {
      var es_class = Java.use("es");
      return es_class.b();
    });
  }
}此外,检查您的函数( rpc.export函数)是否在testfunction部分中。
如果这解决了你的问题,请告诉我。
发布于 2019-02-15 14:39:18
目前,您的代码没有挂接任何内容。要挂钩一个函数,您需要覆盖其实现,如下所示:
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;
    };
});有关更常见的示例,请查看documentation和此cheat sheet。
https://stackoverflow.com/questions/51862548
复制相似问题