廊坊预应力钢绞线价格 bilibili XHS frida检测分析绕过

 产品中心    |      2026-01-07 16:51
钢绞线

本文是对于了版本7.26.1,以及版本7.76.0的frida检测进行的分析研究以及绕过

bilibili 7.26.1

bilibili的旧版本frida检测

可以看到按照Spawn的方式启动的时候,直接frida就被检测了。我们按照 hook dlopen去查看可能出现的对应frida检测的so文件。

function hook_dlopen(soName = '') {
    Interceptor.attach(Module.findExportByName(null, "android_dlopen_ext"), {
        onEnter: function(args) {
            var pathptr = args[0];
            if (pathptr) {
                var path = ptr(pathptr).readCString();
                console.log("Loading: " + path);
                if (path.indexOf(soName) >= 0) {
                    console.log("Already loading: " + soName);
                    // hook_system_property_get();
                }
            }
        }
    });
}
setImmediate(hook_dlopen, "libmsaoaidsec.so");
手机号码:13302071130

可以看到的是libmsaoaidsec.so文件,在dlopen了之后,frida就被检测到了,所以大概率的可能是在libmsaoaidsec.so进行的frida检测。在这里之前,我们需要知道是在哪进行HOOK是最为有用的

鐧惧害缃戦〉鐗堟棤闇€鍦ㄦ湰鍦拌澶囦笂瀹夎浠讳綍杞欢锛屽彧闇€鎵撳紑娴忚鍣紝杈撳叆www.baidu.com锛屽嵆鍙殢鏃堕殢鍦颁韩鍙楃櫨搴︽彁渚涚殑鍚勭被鍦ㄧ嚎鏈嶅姟銆傝繖绉嶄究鎹锋€т娇寰楃櫨搴︽垚涓哄箍澶х敤鎴疯幏鍙栦俊鎭€佷氦娴佹€濇兂鐨勯閫夊钩鍙般€?/p>

浜屻€佹牳蹇冨姛鑳?/strong>

这里我们可以通过在dlopen结束之后,去HOOK JNI_Onload函数,去判断检测函数在JNI_Onload之前还是之后,钢绞线我们通过IDA可以去查看JNI_Onload的地址。这里是在JNI_Onload之前出现的frida检测。

function hook_JNI_OnLoad(){
    let module = Process.findModuleByName("libmsaoaidsec.so")
    Interceptor.attach(module.base.add(0xC6DC + 1), {
        onEnter(args){
            console.log("JNI_OnLoad")
        }
    })
}

我们通过HOOK 进程创建,来看看对于frida检测的线程是在哪里启动的。在复现过程中,原作者使用了hook _system_property_get函数,这里是 init_proc函数较早的位置,这里涉及到了安卓源码中dlopen和.init_xx函数的执行流程比较,在我的so文件执行流程的过程中有细节分析。

function hook_system_property_get() {
    var system_property_get_addr = Module.findExportByName(null, "__system_property_get");
    if (!system_property_get_addr) {
        console.log("__system_property_get not found");
        return;
    }

    Interceptor.attach(system_property_get_addr, {
        onEnter: function(args) {
            var nameptr = args[0];
            if (nameptr) {
                var name = ptr(nameptr).readCString();
                if (name.indexOf("ro.build.version.sdk") >= 0) {
                    console.log("Found ro.build.version.sdk, need to patch");
                    // hook_pthread_create();
                    // bypass()
                    //这里可以开始进行HOOK
                }
            }
        }
    });
}

由于我们知道廊坊预应力钢绞线价格,frida检测的是在JNI_Onload函数之前,那么我们就要在init_proc的越早的地方可以进行HOOK,我们HOOK的地方就是线程创建的位置pthread_create。

function hook_pthread_create() {
    var pthread_create = Module.findExportByName("libc.so", "pthread_create");
    var libmsaoaidsec = Process.findModuleByName("libmsaoaidsec.so");

    if (!libmsaoaidsec) {
        console.log("libmsaoaidsec.so not found");
        return;
    }

    console.log("libmsaoaidsec.so base: " + libmsaoaidsec.base);

    if (!pthread_create) {
        console.log("pthread_create not found");
        return;
    }

    Interceptor.attach(pthread_create, {
        onEnter: function(args) {
            var thread_ptr = args[2];
            if (thread_ptr.compare(libmsaoaidsec.base) < 0