1

我使用以下 java 脚本来学习在 frida (windows 7) 中的挂钩。

Java.perform(function () { 
            console.log("prepare hook...");
            var application = Java.use("android.app.Application");
            console.log("get application...");
            application.attach.overload("android.app.Context").implementation = function(Context){
                console.log("get context...");
                var classloader = Context.getClassLoader();
                Java.classFactory.loader = classloader;
                console.log("get classloader");
            }
        });

在本练习中,我想做的是获取受保护 APK 的类加载器。在frida -R -f com.xxxx.xxx -l myjs1.js,弹出attach()参数类型错误:

在此处输入图像描述 我的 javascript 有什么问题以及如何解决?非常感谢你。

4

2 回答 2

1

您正在尝试挂钩一个不存在的方法。

您尝试挂钩的内容:

android.app.Application.attach(android.app.Context)

attach此类中唯一的方法具有签名

android.app.Application.attach(android.content.Context)

查看源代码:https ://github.com/aosp-mirror/platform_frameworks_base/blob/master/core/java/android/app/Application.java#L350

于 2020-04-10T09:43:48.393 回答
0

如果您尝试使用 Context 进行访问,这里是使其工作的替代方法

Java.perform(function () { 
    var context = Java.use('android.app.ActivityThread').currentApplication().getApplicationContext();

    console.log("get context...");
    var classloader = context.getClassLoader();
    Java.classFactory.loader = classloader;
    console.log("get classloader");

});

只需删除应用程序实现。

于 2020-05-22T20:09:39.570 回答