首页 > 解决方案 > 如何使用 Frida 在 Android 中从挂钩的本机函数中打印变量

问题描述

我有一个加载mylib.so. 这个库有一个函数decryptChar,我想钩住并打印一个在那里计算的字符串变量。我为此目的使用frida 。我做了一些尝试,但考虑到我在这方面的经验不足,一切都失败了。我想Key在离开函数之前打印变量,以便获得它的最终值。

我使用的代码如下

Interceptor.attach(Module.findExportByName("mylib.so", "decryptChar"), {
    onEnter: function (args) {
        console.log(this.Key.value);
    }
});

这样做的正确方法是什么?

标签: reverse-engineeringfrida

解决方案


你混合了几件事

onLeave 参数是返回值,this用于从 onEnter 传递数据

如果要打印静态方法的第一个参数,假设它是指向字符串的指针

Interceptor.attach(Module.findExportByName("mylib.so", "decryptChar"), {
    onEnter: function (args) {
        console.log(args[0].readCString());
    }
});

阅读文档@https ://www.frida.re/docs/javascript-api/#instruction


推荐阅读