Frida hook 最终原生

我有这个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();

        });

    },

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


慕姐8265434
浏览 166回答 2
2回答

慕的地6264312

定义导出时,不必重载该方法。例如,在您的情况下:rpc.exports = {  testfunction: function () {    Java.perform(function() {      var es_class = Java.use("es");      return es_class.b();    });  }}此外,检查您的函数(testfunction)是否在 rpc.export 部分内。如果这能解决您的问题,请告诉我。

慕的地10843

目前您的代码没有挂钩任何东西。要挂钩函数,您需要按如下方式覆盖其实现: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;    };});查看文档和此备忘单以获取更常见的示例。
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Java