java 弗丽达为什么不找个班?

qhhrdooz  于 2023-02-28  发布在  Java
关注(0)|答案(1)|浏览(117)

我需要对ancw. intercept方法执行跟踪。但是我找不到类"ancw",只找到了它的父类"agzn"。

public final class ancw extends agzn implements Interceptor {

    ...

    public final OkHttpResponse intercept(Chain aVar) {
        ...
    }

    ...
}

public abstract class agzn {
    ...
}

弗里达文:

setTimeout(function() {
    Java.performNow(function() {
        console.log('searching...')
        var pattern = 'ancw'
        Java.enumerateLoadedClasses({
            onMatch: function(aClass) {
                if (aClass.match(pattern)) {
                    console.log(aClass)
                }
            },
            onComplete: function() {
                console.log('end')
            }
        });
    });   
}, 5000);

是什么造成了这样的影响?

    • 更新**

这是构造函数前面的代码文件的一小部分。我不得不添加额外的文本以便stackoverflow允许这个编辑。

.class public final Lancw;
.super Lagzn;

.implements Lbatx;

.field private final a:Lbaiz;
.field private final b:Lbaiz;

.method public constructor <init>(Lazcn;Lbait;)V
 .annotation system Ldalvik/annotation/Signature;
     value = {
            "(",
            "Lazcn<",
            "Lrqr;",
            ">;",
            "Lbait<",
            "Landj;",
            ">;)V"
     }
 .end annotation

...
bpsygsoo

bpsygsoo1#

迟回复,但希望这对将来的人有帮助
首先,确保您的代码位于Java.perform中,并且在启动frida时使用了-U
如果是,则有两种可能性:类未被调用,因为Java仅加载类,直到它们被使用为止(这可以包括应用程序操作或特定屏幕);或者用于加载类的类加载器不同于Java通常使用的have a look here
其中的一个example是shape security sdk,它使用特殊的类加载器加载类

相关问题