为了账号安全,请及时绑定邮箱和手机立即绑定

Frida hook 最终原生

Frida hook 最终原生

慕姐8265434 2021-07-16 18:00:03
我有这个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 部分内。


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


查看完整回答
反对 回复 2021-07-23
?
慕的地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;

    };

});

查看文档和此备忘单以获取更常见的示例。


查看完整回答
反对 回复 2021-07-23
  • 2 回答
  • 0 关注
  • 165 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信