matrix icon indicating copy to clipboard operation
matrix copied to clipboard

android demo在 matrix hook时出现Fail to do hook common pre-hook initialize

Open TomesVWhite opened this issue 3 years ago • 1 comments

异常类型:app 运行时异常

手机型号:魅族E3

手机系统版本:Android 7.1.1

matrix版本:最新版本2.0.5?

gradle版本:如: 4.1.0

问题描述:android demo在执行 matrix hook时出现Fail to do hook common pre-hook initialize

堆栈/日志:
2022-03-23 11:16:02.678 2733-2733/? W/System.err: com.tencent.matrix.hook.HookManager$a: Fail to do hook common pre-hook initialize.
2022-03-23 11:16:02.679 2733-2733/? W/System.err:     at com.tencent.matrix.hook.HookManager.b(HookManager.java:14)
2022-03-23 11:16:02.679 2733-2733/? W/System.err:     at sample.tencent.matrix.hooks.TestHooksActivity.onCreate(TestHooksActivity.java:34)
2022-03-23 11:16:02.679 2733-2733/? W/System.err:     at android.app.Activity.performCreate(Activity.java:6766)
2022-03-23 11:16:02.679 2733-2733/? W/System.err:     at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1123)
2022-03-23 11:16:02.679 2733-2733/? W/System.err:     at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2786)
2022-03-23 11:16:02.679 2733-2733/? W/System.err:     at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2894)
2022-03-23 11:16:02.679 2733-2733/? W/System.err:     at android.app.ActivityThread.-wrap12(ActivityThread.java)
2022-03-23 11:16:02.679 2733-2733/? W/System.err:     at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1613)
2022-03-23 11:16:02.679 2733-2733/? W/System.err:     at android.os.Handler.dispatchMessage(Handler.java:102)
2022-03-23 11:16:02.679 2733-2733/? W/System.err:     at android.os.Looper.loop(Looper.java:154)
2022-03-23 11:16:02.679 2733-2733/? W/System.err:     at android.app.ActivityThread.main(ActivityThread.java:6371)
2022-03-23 11:16:02.679 2733-2733/? W/System.err:     at java.lang.reflect.Method.invoke(Native Method)
2022-03-23 11:16:02.679 2733-2733/? W/System.err:     at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:936)
2022-03-23 11:16:02.679 2733-2733/? W/System.err:     at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:826)

但该demo却可以正常在红米k40 Android11上运行,并导出memory_hook.log

TomesVWhite avatar Mar 23 '22 03:03 TomesVWhite

跟了一下源码,发现在SoLoadMonitor.cpp里,只要是android 7.0,7.1.1的就返回失败

    bool InstallSoLoadMonitor() {
        std::lock_guard lock(sInstalledMaskMutex);
        if (sInstalled) {
            return true;
        }

        int sdkVer = android_get_device_api_level();

//判断时24,25的android系统7.0,7.1.1的就返回false
        if (sdkVer == 24 || sdkVer == 25) {
            LOGE(LOG_TAG, "Does not support N and N_MR1 so far.");
            return false;
        }

        ......
    }

这里不太清楚在7.0,7.1.1返回失败的原因,如果真的因为某些特殊的原因如hook不支持,建议官方在readme上标识一下

TomesVWhite avatar Mar 23 '22 06:03 TomesVWhite