1

我试图在一个类中挂钩一些函数它工作正常,但我想查看一个作为类实例的参数,并且这个类具有String类型的字段,但是当我尝试获取这个字段时,我得到了一些非常奇怪的类型字符串的

这是代码: var someclass = Java.use('com.myapp.classes.someclass.a');

// String (Object, String, Boolean)
someclass.getData.overload('com.myapp.classes.ClassContext', 
        'java.lang.String', 'java.lang.Boolean').implementation = function (a, b, c) {

    console.log('com.myapp.classes.ClassContext.stringify: ', 
        JSON.stringify(a.fieldWithStringData), '\r\n');
}

但是当我在这个对象上使用时,我得到了一些奇怪的对象,而不是字符串,我得到了这样的JSON.stringify字符串(对于这个问题很漂亮):

{
    "_p": ["<instance: com.myapp.classes.ClassContext>", 2, {
            "className": "java.lang.String",
            "name": "Ljava/lang/String;",
            "type": "pointer",
            "size": 1,
            "defaultValue": "0x0"
        }, "0xa3144614", "0xc2aaa8b0", "0xc2aace70"]
}

这个对象是什么以及如何从中获取实际的字符串,有人可以帮忙吗?

4

1 回答 1

0

你可以这样使用:a.fieldWithStringData.value

于 2022-02-05T11:18:56.837 回答