我有一个被混淆的android程序。在这个程序中,类具有同名的属性。这样的反编译代码
public class d implements c
{
public int a;
public Cache$Entry a;
public Cache a;
public volatile a a;
public e a;
public ByteArrayOutputStream a;
public volatile AtomicBoolean a;
或像这样的smali代码
# interfaces
.implements Le/a/x/c;
# instance fields
.field public a:I
.field public a:Lanetwork/channel/cache/Cache$Entry;
.field public a:Lanetwork/channel/cache/Cache;
.field public volatile a:Ld/a/w/a;
.field public a:Le/a/x/e;
.field public a:Ljava/io/ByteArrayOutputStream;
.field public volatile a:Ljava/util/concurrent/atomic/AtomicBoolean;
我为一个方法 asd() 创建了一个钩子,我需要访问此类的属性“a”。但我需要类型为“eaxe”的属性“a”
Java.perform(function () {
var var_ddd = Java.use("e.a.x.d");
var_ddd.asd.implementation = function() {
this.asd();
console.log("e.a.x.d.asd()",Java.cast(this.a.value,Java.use("e.a.x.e")));
};
});
当我尝试写 this.a.value - 我得到一个错误的属性。当我写 Java.cast(this.a.value,Java.use("eaxe")) 我收到消息
TypeError: cannot read property 'hasOwnProperty' of undefined
请告诉我如何使用正确的类型获得正确的属性